:root{--blue:#005691;--navy:#003a63;--orange:#e86a00;--orange-dark:#a34c00;--paper:#efe6cf;--paper-light:#fffaf0;--ink:#1d1812;--muted:#62594c;--desk:#2b241c;--tape:#dcc48c99}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0;color:var(--ink);background-color:var(--desk);background-image:repeating-linear-gradient(16deg,#ffffff05 0 1px,transparent 1px 5px),repeating-linear-gradient(-38deg,#00000012 0 1px,transparent 1px 7px);font:16px/1.6 Nunito,Arial,sans-serif}::selection{color:var(--paper-light);background:var(--blue)}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:#211b15}::-webkit-scrollbar-thumb{background:var(--orange);border:3px solid #211b15}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:"Special Elite",Georgia,serif;text-wrap:balance}h2{color:var(--navy);font-size:clamp(2rem,4.2vw,3.75rem);line-height:1.08}.skip-link{position:fixed;z-index:20;top:8px;left:8px;padding:8px 12px;color:var(--paper-light);background:var(--navy);transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{position:fixed;z-index:10;top:0;display:flex;align-items:center;justify-content:space-between;width:100%;padding:19px clamp(18px,5vw,72px);color:var(--paper);transition:background .18s ease,box-shadow .18s ease}.site-header.is-scrolled{background:#211b15ed;box-shadow:0 4px 14px #0006}.wordmark,.portfolio-link{color:inherit;text-decoration:none}.wordmark{font:1rem "Special Elite",serif;letter-spacing:.08em}.portfolio-link{font:700 .72rem "IBM Plex Mono",monospace;letter-spacing:.03em}.dossier-section{width:min(1140px,calc(100% - 40px));margin:auto}.hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.55fr);gap:clamp(34px,7vw,110px);width:100%;min-height:720px;padding:158px clamp(24px,7vw,110px) 116px;color:var(--paper-light);background:linear-gradient(180deg,#1c1610 0%,#241d15 42%,var(--desk) 100%);border-bottom:1px solid #756047;box-shadow:0 18px 32px #090705a8}.hero:before{position:absolute;inset:90px 0 45px;z-index:-1;content:"";border:1px solid #756047;background:#211a13b8;box-shadow:0 18px 32px #090705a8;transform:rotate(-.7deg)}.department,.section-label,.act-number,.case-code{font:700 .72rem "IBM Plex Mono",monospace;letter-spacing:.075em;text-transform:uppercase}.department{max-width:490px;margin-bottom:21px;color:#ffa15a}h1{max-width:670px;margin-bottom:24px;font-size:clamp(3rem,7vw,6rem);line-height:.98;letter-spacing:-.035em}h1 span{position:relative;color:#ffd2a5;white-space:nowrap}h1 span:after{position:absolute;right:-3px;bottom:-8px;left:-3px;height:8px;content:"";background:var(--orange);opacity:.8;transform:rotate(-1.5deg)}.hero-lede{max-width:61ch;margin-bottom:30px;color:#f1e3cc;font-size:clamp(1rem,1.5vw,1.2rem)}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.button{display:inline-flex;gap:10px;align-items:center;justify-content:center;min-height:46px;padding:11px 15px;font:700 .77rem "IBM Plex Mono",monospace;letter-spacing:.03em;text-decoration:none;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.button-primary{color:var(--paper-light);background:var(--orange);border:1px solid var(--orange-dark);box-shadow:0 4px 0 var(--orange-dark),0 8px 18px #0005}.button-primary:hover{background:#cb5d00;transform:translateY(-2px);box-shadow:0 6px 0 var(--orange-dark),0 11px 20px #0006}.button-quiet{color:var(--paper-light);border:1px solid #d5c09b}.button-quiet:hover{color:var(--ink);background:var(--paper)}.hero-file{position:relative;align-self:center;min-height:330px;padding:37px 30px 28px;color:var(--ink);background:var(--paper);border:1px solid #b9aa8e;box-shadow:12px 18px 22px #0008;transform:rotate(3.1deg)}.hero-file:after,.editor-sheet:after,.act-file:after{position:absolute;top:-11px;left:calc(50% - 39px);width:78px;height:22px;content:"";background:var(--tape);transform:rotate(-4deg)}.file-tab{position:absolute;top:-29px;left:-1px;padding:7px 16px;color:var(--paper-light);background:var(--navy);font:.65rem "IBM Plex Mono",monospace;letter-spacing:.1em}.file-holes{height:12px;margin-bottom:14px;background-image:radial-gradient(circle,#655847 0 3px,transparent 3.6px);background-size:24px 12px}.case-code{color:var(--muted)}.stamp{position:absolute;right:19px;bottom:71px;padding:7px;color:#a33a2b;border:4px double currentColor;font:1rem/1.1 "Special Elite",serif;letter-spacing:.06em;text-align:center;transform:rotate(-7deg)}.vault-mark{display:block;width:122px;margin:23px auto;color:var(--blue)}.file-note{margin:0;font-size:.9rem;font-weight:800}.stat-strip{position:absolute;right:clamp(20px,6vw,80px);bottom:66px;left:clamp(20px,6vw,80px);display:flex;flex-wrap:wrap;color:#f4e5c7;border-top:1px solid #a28965;border-bottom:1px solid #a28965}.stat-strip span{padding:9px 15px;border-right:1px solid #a28965;font:700 .67rem "IBM Plex Mono",monospace;letter-spacing:.04em;text-transform:uppercase}.case-section{display:grid;grid-template-columns:minmax(0,.8fr) minmax(350px,1.15fr);gap:clamp(40px,8vw,125px);align-items:center;padding:110px clamp(8px,4vw,48px);background:var(--paper);box-shadow:0 16px 30px #07050394;transform:rotate(.25deg)}.section-copy{max-width:500px}.section-label,.act-number{color:var(--orange-dark)}.section-copy p:not(.section-label){color:#3d3327}.clue-list{padding:0;margin:28px 0 0;list-style:none;font:700 .88rem "IBM Plex Mono",monospace}.clue-list li{padding:10px 0 10px 28px;border-top:1px dashed #9c8b70}.clue-list li:before{display:inline-block;width:13px;height:13px;margin-left:-27px;margin-right:14px;content:"";border:2px solid var(--orange-dark);transform:rotate(45deg)}.editor-scene{position:relative;padding-top:50px}.speech-bubble{position:absolute;z-index:1;top:0;right:-16px;max-width:275px;padding:12px 14px;color:var(--paper-light);background:var(--navy);box-shadow:4px 6px 12px #251d14aa;font:.76rem/1.45 "IBM Plex Mono",monospace;transform:rotate(2deg)}.speech-bubble:after{position:absolute;right:35px;bottom:-11px;border-width:12px 10px 0 0;border-style:solid;border-color:var(--navy) transparent transparent;content:""}.editor-sheet{position:relative;padding:25px;background:#fffdf6;border:1px solid #8a7a64;box-shadow:8px 10px 18px #3327184f;transform:rotate(-1.3deg)}.editor-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:2px solid var(--navy)}.editor-heading span{color:var(--blue);font:700 .62rem "IBM Plex Mono",monospace;letter-spacing:.08em}.editor-heading strong{color:var(--navy);font:1rem "Special Elite",serif}.editor-sheet pre{min-height:123px;margin:0;padding:16px 12px;background:repeating-linear-gradient(to bottom,transparent 0 27px,#a9c4d455 27px 28px);background-position:0 10px;color:#19130e;font:.85rem/28px "IBM Plex Mono",monospace;white-space:pre;overflow-x:auto}.sql-keyword{color:var(--blue);font-weight:700}.sql-string{color:var(--orange-dark)}.execute-sample{padding:9px 12px;color:#fff8ea;background:var(--orange);border:1px solid var(--orange-dark);box-shadow:0 3px 0 var(--orange-dark);font:700 .7rem "IBM Plex Mono",monospace}.sample-result{display:grid;grid-template-columns:1fr 1fr;margin-top:20px;border:2px double #31291f;font:.7rem "IBM Plex Mono",monospace}.sample-result>*{padding:7px}.sample-result span{color:#fff;background:var(--blue)}.sample-result b{font-weight:500;background:#f0e6d2}.operation-section{padding:125px 4vw 105px;color:var(--paper)}.operation-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.55fr);gap:70px;align-items:end;margin-bottom:58px}.operation-heading h2{margin:0;color:var(--paper-light)}.operation-heading p{margin:0;color:#e4d3b8}.act-files{display:grid;grid-template-columns:1fr 1.05fr .9fr;gap:31px;align-items:start}.act-file{position:relative;min-height:232px;padding:26px 25px 22px;color:var(--ink);background:var(--paper);border:1px solid #b9aa8e;box-shadow:8px 11px 16px #0806048c}.act-file h3{margin-bottom:10px;color:var(--navy);font-size:1.4rem;line-height:1.1}.act-file p:not(.act-number){margin-bottom:19px;font-size:.9rem}.act-file code{color:var(--orange-dark);font:700 .8rem "IBM Plex Mono",monospace}.act-file strong{position:absolute;right:19px;bottom:16px;color:var(--orange-dark);font:.75rem "IBM Plex Mono",monospace}.act-one{transform:rotate(-2.1deg)}.act-two{margin-top:55px;transform:rotate(1.3deg)}.act-three{transform:rotate(-.8deg)}.act-four{grid-column:2/4;width:64%;justify-self:end;margin-top:-2px;transform:rotate(2deg)}.assessment-section{display:grid;grid-template-columns:minmax(0,.8fr) minmax(300px,1fr);gap:40px 80px;padding:95px clamp(24px,6vw,92px);background:#ded0b0;border:1px solid #b6a17d;box-shadow:0 14px 28px #0806048a;transform:rotate(-.35deg)}.assessment-intro{max-width:36ch;color:#42372a}.assessment-list{margin:0;border-top:2px solid var(--navy)}.assessment-list div{display:grid;grid-template-columns:1fr 1.25fr;gap:14px;padding:13px 0;border-bottom:1px dashed #8c795d}.assessment-list dt{color:var(--navy);font:700 .76rem "IBM Plex Mono",monospace}.assessment-list dd{margin:0;font-size:.9rem}.certificate-note{grid-column:1/-1;margin:0;padding-top:20px;color:var(--navy);border-top:1px solid #8c795d;font:700 .84rem "IBM Plex Mono",monospace}.faq-section{padding:120px clamp(8px,5vw,74px);color:var(--ink)}.faq-section h2{margin-bottom:35px;color:var(--paper-light)}.faq-section details{max-width:780px;padding:15px 0;color:var(--ink);background:var(--paper);border-bottom:1px solid #a39070}.faq-section details:first-of-type{border-top:1px solid #a39070}.faq-section summary{padding:0 18px;cursor:pointer;color:var(--navy);font:1.1rem "Special Elite",serif}.faq-section summary::marker{color:var(--orange-dark)}.faq-section details p{max-width:65ch;padding:9px 18px 0;margin:0;color:#44382a;font-size:.92rem}.final-cta{position:relative;padding:95px clamp(24px,10vw,140px);margin-bottom:68px;overflow:hidden;text-align:center;background:var(--paper);border:3px double var(--navy);box-shadow:0 16px 30px #050403a1}.final-cta h2{max-width:780px;margin:0 auto 30px}.button-large{min-height:56px;padding-right:22px;padding-left:22px}.seal{position:absolute;top:22px;right:5%;width:90px;color:var(--orange-dark);opacity:.55;transform:rotate(17deg)}.seal svg{display:block}footer{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:center;padding:0 20px 30px;color:#d7c6a8;text-align:center;font:.7rem "IBM Plex Mono",monospace}footer p{margin:0}footer a{color:#ffe1bd}.copyright{opacity:.7}.reveal{opacity:0;transform:translateY(12px);transition:opacity .45s cubic-bezier(.2,.8,.2,1),transform .45s cubic-bezier(.2,.8,.2,1)}.reveal.is-visible{opacity:1;transform:translateY(0)}
/* MASCOTE — gato detetive no hero, piscando (sprite por steps) */
.hero-mascot{position:absolute;right:clamp(6px,3vw,46px);bottom:96px;z-index:1;width:clamp(150px,17vw,250px);aspect-ratio:1;background-size:contain;background-repeat:no-repeat;background-position:center bottom;filter:drop-shadow(0 14px 22px #0007);animation:cat-float 6.5s ease-in-out infinite;pointer-events:none}
.cat-blink{background-image:url("../img/gato-olho-aberto.webp");animation:cat-float 6.5s ease-in-out infinite}
@keyframes cat-float{0%,100%{translate:0 0}50%{translate:0 -9px}}
@media(prefers-reduced-motion:reduce){.hero-mascot{animation:none}}
/* CASES (act-files) — polimento */
.act-file{transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease}
.act-file:hover{transform:rotate(0) translateY(-6px);box-shadow:12px 16px 24px #06050499}
.act-file .act-number{border-bottom:2px solid #d8c8a4;padding-bottom:8px;margin-bottom:14px}
.act-file strong{padding:4px 9px;background:#f4e9d2;border:1px solid #c9b892;transition:background .25s ease,color .25s ease}
.act-file:hover strong{color:#fff8ea;background:var(--orange-dark);border-color:var(--orange-dark)}
/* FAQ — seta animada */
.faq-section summary{display:flex;gap:10px;align-items:center;list-style:none}
.faq-section summary::-webkit-details-marker{display:none}
.faq-section summary:after{content:"\25B8";margin-left:auto;color:var(--orange-dark);font-size:1.2rem;transition:transform .25s ease}
.faq-section details[open] summary:after{transform:rotate(90deg)}
.faq-section details{transition:background .25s ease}
.faq-section details:hover{background:#fff6e2}
/* Editor demo — cursor piscando */
.editor-sheet pre:after{display:inline-block;width:8px;height:17px;margin-left:2px;content:"";background:var(--orange);vertical-align:-3px;animation:pulse 1.1s steps(2) infinite}
/* Botões — feedback tátil */
.button:active{transform:translateY(1px)}
/* Wordmark com acento detetive */
.wordmark:before{content:"🔎 ";font-size:.85rem}

@media(max-width:780px){.hero{grid-template-columns:1fr;min-height:0;padding-top:135px}.hero:before{inset:74px 0 35px}.hero-file{max-width:340px;justify-self:end;margin-bottom:42px}.stat-strip{position:relative;right:auto;bottom:auto;left:auto;grid-column:1/-1;margin-top:-48px}.stat-strip span{flex:1 1 40%;text-align:center}.case-section,.assessment-section{grid-template-columns:1fr}.editor-scene{max-width:620px;width:100%;justify-self:center}.operation-heading{grid-template-columns:1fr;gap:8px}.act-files{grid-template-columns:1fr 1fr;gap:28px}.act-four{grid-column:auto;width:auto;margin-top:30px}.assessment-section{gap:25px}.certificate-note{grid-column:auto}.faq-section{padding-top:90px}}@media(max-width:510px){.site-header{padding:16px}.portfolio-link{font-size:.63rem}.dossier-section{width:calc(100% - 28px)}.hero{gap:21px;padding-right:20px;padding-left:20px}.department{font-size:.63rem}h1{font-size:clamp(2.65rem,15vw,4rem)}.hero-file{width:calc(100% - 12px);min-height:0;margin-right:6px}.stat-strip span{padding:8px 4px;font-size:.58rem}.case-section{gap:30px;padding:62px 20px}.speech-bubble{right:-8px;max-width:228px}.editor-sheet{padding:16px}.editor-sheet pre{padding-right:0;padding-left:0;font-size:.72rem}.act-files{grid-template-columns:1fr}.act-file,.act-two,.act-three,.act-four{width:100%;margin-top:0;transform:none}.operation-section{padding:86px 19px}.assessment-section{padding:65px 22px}.assessment-list div{grid-template-columns:1fr;gap:2px}.seal{top:12px;right:8px;width:55px}.final-cta{padding:74px 20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}
