@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=DM+Sans:wght@400;500;600;700;800&display=swap');
:root{--black:#101011;--cream:#f0efea;--light:#fff;--line:#363639;--acid:#d7fa48;--panel:326px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--black);color:var(--cream);font:500 14px/1.4 'DM Sans',Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--acid);outline-offset:3px}img{display:block;max-width:100%}.skip-link{position:fixed;z-index:40;top:-70px;left:15px;padding:15px;background:var(--acid);color:#111}.skip-link:focus{top:15px}[hidden]{display:none!important}
/* A interface é composta por apenas duas colunas permanentes. */
.app-shell{height:100dvh;min-height:340px;overflow:hidden;--panel-live:var(--panel)}.app-shell.panel-hidden{--panel-live:0px}.identity-panel{position:fixed;z-index:9;left:0;top:0;bottom:0;width:var(--panel);background:var(--cream);color:var(--black);display:flex;flex-direction:column;transform:translateX(0);transition:transform .42s cubic-bezier(.2,.8,.2,1);border-right:1px solid #c9c8c3}.panel-hidden .identity-panel{transform:translateX(-100%)}.side-top{padding:27px 25px 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:124px}.brand-slot{display:flex;align-items:start;max-width:205px;max-height:88px;overflow:hidden}.brand-slot.has-logo{min-height:64px;align-items:center}.brand-slot.has-logo img{max-height:86px;max-width:205px;object-fit:contain;object-position:left center}.brand-fallback{font:900 49px/.77 'Archivo Black',Impact,Arial,sans-serif;letter-spacing:-.088em;padding-top:4px;white-space:nowrap}.brand-fallback span{display:block}.brand-fallback span+span{margin-top:6px}.side-index{font-size:10px;letter-spacing:.08em;font-weight:800;writing-mode:vertical-rl;margin-left:auto;color:#60605b}
.side-close{display:none}.identity-inner{padding:0 25px;display:flex;flex-direction:column;flex:1;min-height:0;justify-content:center;gap:13px}.portrait-block{position:relative;width:100%;height:min(43vh,380px);min-height:160px;overflow:hidden;background:#b3b2ac}.portrait-block img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}.portrait-corner{position:absolute;right:9px;top:4px;color:var(--acid);font:400 30px/1 Arial;mix-blend-mode:difference}.identity-caption{display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:800;letter-spacing:.09em}.identity-dot{width:7px;height:7px;background:var(--black);border-radius:50%}.identity-bottom{padding:20px 25px 22px;flex-shrink:0}.identity-actions{display:grid;gap:7px}.action-primary,.action-secondary{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;border:0;border-radius:0;font-size:11px;letter-spacing:.02em;font-weight:800;padding:17px 17px;min-height:53px}.action-primary{background:var(--black);color:var(--cream)}.action-primary:hover{background:#29292c}.action-secondary{background:transparent;border:1px solid #b5b5af}.action-secondary:hover{background:#e5e4de}.action-secondary[aria-disabled="true"]{opacity:.5;cursor:not-allowed;pointer-events:none}.action-primary span,.action-secondary span{font-size:20px;line-height:1;font-weight:400}.side-footer{border-top:1px solid #c3c2bc;margin-top:26px;padding-top:13px;display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:9px;font-weight:800;letter-spacing:.07em}
.portfolio-stage{position:fixed;top:0;bottom:0;left:var(--panel-live);right:0;display:flex;flex-direction:column;min-width:0;transition:left .42s cubic-bezier(.2,.8,.2,1)}.filter-toolbar{height:74px;min-height:74px;display:flex;align-items:stretch;background:#131314;border-bottom:1px solid #39393a}.panel-toggle{width:78px;min-width:78px;background:transparent;border:0;border-right:1px solid #343436;color:#eee;display:grid;place-items:center}.panel-toggle:hover{background:#242427}.toggle-lines{display:flex;flex-direction:column;gap:6px;transform:rotate(0);transition:transform .3s}.toggle-lines i{display:block;width:20px;height:2px;background:var(--cream);transition:background .2s}.panel-hidden .toggle-lines{transform:rotate(90deg)}.category-nav{flex:1;display:flex;gap:0;align-items:stretch;min-width:0;overflow-x:auto;scrollbar-width:none}.category-nav::-webkit-scrollbar{display:none}.category-btn{flex-shrink:0;border:0;border-bottom:3px solid transparent;background:transparent;color:#98989c;white-space:nowrap;padding:6px clamp(12px,1.35vw,29px) 2px;font-size:11px;letter-spacing:.03em;font-weight:800}.category-btn:hover{color:var(--cream)}.category-btn[aria-pressed="true"]{color:var(--cream);border-bottom-color:var(--acid)}.toolbar-end{width:60px;min-width:60px;border-left:1px solid #343436;display:grid;place-items:center}.toolbar-cross{font-size:27px;color:var(--acid);line-height:1}
.gallery-scroll{min-height:0;overflow-x:hidden;overflow-y:auto;flex:1;scrollbar-color:#555 #101011;scrollbar-width:thin}.project-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:row dense;gap:5px;padding:5px;align-items:stretch;min-height:60vh}.project-tile{position:relative;display:block;grid-column:span 4;height:clamp(245px,24vw,430px);background:#262626;overflow:hidden;isolation:isolate}.project-tile:nth-child(7n+1){grid-column:span 7;height:clamp(290px,30vw,530px)}.project-tile:nth-child(7n+2){grid-column:span 5;height:clamp(290px,30vw,530px)}.project-tile:nth-child(7n+6){grid-column:span 5;height:clamp(280px,27vw,485px)}.project-tile:nth-child(7n+7){grid-column:span 7;height:clamp(280px,27vw,485px)}.project-tile img{width:100%;height:100%;object-fit:cover;transform:scale(1.002);transition:transform .6s cubic-bezier(.16,1,.3,1),filter .4s}.project-tile:hover img,.project-tile:focus-visible img{transform:scale(1.05);filter:brightness(.77)}.tile-caption{position:absolute;z-index:1;left:0;bottom:0;right:0;background:linear-gradient(0deg,rgba(0,0,0,.82),transparent);display:flex;align-items:end;justify-content:space-between;gap:12px;padding:48px 22px 20px;color:white;transform:translateY(100%);transition:transform .32s}.project-tile:hover .tile-caption,.project-tile:focus-visible .tile-caption{transform:translateY(0)}.tile-name{font-size:clamp(14px,2vw,24px);font-weight:800;line-height:1.1;text-transform:uppercase}.tile-arrow{font-size:24px}.grid-end{display:flex;justify-content:space-between;gap:20px;margin:5px;padding:24px 21px 29px;border-top:1px solid #343435;color:#7c7c80;font-size:10px;letter-spacing:.08em;font-weight:800}.empty-state{grid-column:1/-1;min-height:300px;display:grid;place-items:center;color:#85858a;font-weight:800;letter-spacing:.07em;font-size:12px;text-align:center;padding:35px}
/* O contato só aparece quando a pessoa solicita. */
.contact-dialog{color:var(--cream);background:#171718;border:1px solid #484849;border-radius:0;width:min(590px,calc(100vw - 26px));max-height:min(90dvh,940px);overflow:auto;padding:28px clamp(24px,4vw,46px) 30px;box-shadow:0 25px 150px rgba(0,0,0,.55)}.contact-dialog::backdrop{background:rgba(0,0,0,.75);backdrop-filter:blur(5px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:800;letter-spacing:.1em;color:#999}.dialog-close{background:transparent;border:1px solid #535357;color:var(--cream);width:39px;height:39px}.dialog-close:hover{background:var(--acid);color:#111}.contact-dialog h1{font:900 clamp(43px,6vw,76px)/.88 'Archivo Black',Impact,sans-serif;letter-spacing:-.075em;margin:27px 0 28px}.contact-dialog h1 em{font-style:normal;color:var(--acid)}.field{display:grid;gap:9px;margin-top:18px;font-size:10px;font-weight:800;color:#97979a;letter-spacing:.05em}.field input,.field textarea{width:100%;background:transparent;color:var(--cream);border:0;border-bottom:1px solid #5d5d5f;padding:9px 2px 13px;outline:0;border-radius:0;resize:vertical;font-size:16px;font-weight:500}.field input:focus,.field textarea:focus{border-color:var(--acid)}.field input::placeholder,.field textarea::placeholder{color:#636368}.submit-contact{width:100%;background:var(--acid);color:var(--black);border:0;padding:18px 16px;font-weight:800;display:flex;justify-content:space-between;align-items:center;margin-top:26px}.submit-contact span{font-size:21px}.submit-contact:hover{background:#eefbbd}.submit-contact:disabled{opacity:.5}.dialog-alternatives{display:flex;gap:18px;padding-top:10px;font-size:11px;font-weight:800}.dialog-alternatives a:hover{color:var(--acid)}.form-status{font-size:11px;color:var(--acid);min-height:14px;margin:10px 0 0}.honeypot{position:absolute!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;height:1px!important;width:1px!important;margin:-1px!important;padding:0!important;border:0!important}
/* Páginas de projeto: sequência de imagens sem textos longos. */
.detail-body{overflow:auto}.detail-header{position:sticky;z-index:10;top:0;min-height:76px;display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;padding:10px clamp(16px,3vw,45px);background:#111113;border-bottom:1px solid #444}.back-to-grid{font-size:11px;font-weight:800;letter-spacing:.04em}.back-to-grid:hover,.detail-footer a:hover{color:var(--acid)}.back-to-grid::first-letter{color:var(--acid)}.detail-heading{display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center}.detail-heading strong{font-size:15px;letter-spacing:.02em}.detail-heading span{font-size:9px;color:#8c8c90;letter-spacing:.06em}.detail-counter{justify-self:end;color:#888;font-size:11px}.detail-main{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:6px;margin:0 auto;width:min(1640px,100%);align-items:stretch}.detail-image{margin:0;min-width:0;aspect-ratio:5/4;background:#202022;overflow:hidden;position:relative}.detail-open{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;position:relative;cursor:zoom-in;color:var(--cream)}.detail-open:focus-visible{outline:3px solid var(--acid);outline-offset:-3px}.detail-thumbnail{width:100%;height:100%;object-fit:contain;display:block;transition:filter .25s ease}.detail-open:hover .detail-thumbnail{filter:brightness(.80)}.detail-image-number{position:absolute;right:11px;top:11px;padding:6px 9px;background:rgba(10,10,12,.8);color:#d5d5d7;font-size:10px;letter-spacing:.05em;font-weight:800}.detail-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;display:grid;place-items:center;background:var(--acid);color:#101011;font-size:20px;pointer-events:none}.detail-footer{display:flex;justify-content:space-between;gap:20px;padding:29px clamp(16px,3vw,45px) 45px;border-top:1px solid #424243;font-size:12px;font-weight:800}.thanks-body{min-height:100dvh;display:grid;place-items:center;padding:20px}.thanks{width:min(700px,100%)}.thanks>span{font-size:12px;color:#aaa;font-weight:800}.thanks h1{font:900 clamp(56px,10vw,140px)/.9 'Archivo Black',Impact,sans-serif;letter-spacing:-.06em;margin:30px 0}.thanks h1 span{color:var(--acid)}.thanks p{color:#aaa}.thanks a{display:inline-block;margin-top:36px;background:var(--acid);padding:18px 25px;color:#111;font-weight:800;font-size:12px}
@media(min-width:1650px){:root{--panel:365px}.side-top{padding-left:30px;padding-right:30px}.identity-inner{padding-left:30px;padding-right:30px}.identity-bottom{padding-left:30px;padding-right:30px}}
@media(max-height:720px) and (min-width:761px){.side-top{min-height:105px;padding-top:18px}.brand-fallback{font-size:40px}.portrait-block{height:35vh;min-height:130px}.identity-bottom{padding-top:10px;padding-bottom:10px}.side-footer{margin-top:13px}.action-primary,.action-secondary{min-height:42px;padding-top:11px;padding-bottom:11px}}
@media(max-width:1100px){:root{--panel:285px}.side-top,.identity-bottom{padding-left:20px;padding-right:20px}.identity-inner{padding-left:20px;padding-right:20px}.category-btn{padding-left:12px;padding-right:12px;font-size:10px}.toolbar-end{display:none}.project-tile{height:clamp(230px,27vw,360px)}}
@media(max-width:760px){.app-shell{--panel-live:0px}.portfolio-stage,.panel-hidden .portfolio-stage{left:0!important}.identity-panel{z-index:22;width:min(355px,calc(100vw - 44px));border-right:0;box-shadow:12px 0 60px rgba(0,0,0,.36)}.drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:21}.side-close{display:grid;place-items:center;position:absolute;right:19px;top:22px;height:34px;width:34px;background:transparent;border:1px solid #bbb;color:#111}.side-index{margin-right:46px}.filter-toolbar{height:67px;min-height:67px}.panel-toggle{width:57px;min-width:57px}.category-btn{font-size:10px;padding:6px 15px 2px}.project-grid{gap:4px;padding:4px}.project-tile,.project-tile:nth-child(n){grid-column:span 6;height:clamp(180px,46vw,380px)}.project-tile:nth-child(5n+1){grid-column:1/-1;height:clamp(260px,84vw,530px)}.tile-caption{padding:35px 12px 12px}.tile-name{font-size:12px}.tile-arrow{font-size:18px}.grid-end{padding:20px 10px;font-size:9px}.identity-inner{justify-content:center}.portrait-block{height:min(46vh,415px)}.detail-header{grid-template-columns:1fr auto;gap:14px;min-height:65px}.detail-heading{grid-column:1/-1;grid-row:2;align-items:start;text-align:left;padding-bottom:9px}.detail-counter{grid-column:2;grid-row:1}.detail-main{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px}.detail-image{aspect-ratio:4/5}.detail-image-number{top:7px;right:7px;padding:4px 6px;font-size:9px}}
@media(max-width:400px){.project-tile,.project-tile:nth-child(n){grid-column:span 6;height:45vw}.project-tile:nth-child(5n+1){grid-column:1/-1;height:75vw}.category-btn{padding-left:12px;padding-right:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Visualização individual: a mídia inteira fica visível, sem crop nem zoom forçado. */
.media-viewer{position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#101011;color:#f0efea;overflow:hidden}
.media-viewer::backdrop{background:#050505}
.viewer-shell{display:flex;flex-direction:column;height:100%;min-height:0}
.viewer-toolbar{height:65px;min-height:65px;display:grid;grid-template-columns:minmax(0,1fr) auto 60px;align-items:center;padding:0 12px 0 clamp(14px,3vw,42px);border-bottom:1px solid #353538;gap:16px}
.viewer-title{font-weight:800;font-size:12px;letter-spacing:.03em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.viewer-count{font-size:11px;font-weight:800;color:#9c9ca2;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.viewer-close{width:51px;height:51px;display:grid;place-items:center;background:transparent;border:0;color:#fff;font-size:32px;font-weight:300;line-height:1}
.viewer-close:hover,.viewer-nav:hover:not(:disabled){color:var(--acid)}
.viewer-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:clamp(7px,1.5vw,18px)}
.viewer-media{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;background:#080809}
.viewer-stage video.viewer-media{width:100%;height:100%;background:#050505}
.viewer-navigation{height:65px;min-height:65px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 clamp(14px,3vw,42px);border-top:1px solid #353538}
.viewer-nav{background:transparent;border:0;color:#f0efea;font-size:28px;width:55px;height:55px;font-weight:400}
.viewer-nav:disabled{opacity:.20;cursor:default}.viewer-hint{font-size:10px;color:#7e7e82;font-weight:700;letter-spacing:.07em}
@media(max-width:1100px) and (min-width:761px){.detail-main{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.viewer-toolbar{height:56px;min-height:56px;grid-template-columns:minmax(0,1fr) auto 42px;gap:8px}.viewer-close{width:42px;height:42px}.viewer-stage{padding:5px}.viewer-navigation{height:55px;min-height:55px;padding:0 12px}.viewer-nav{height:48px;width:48px}}
@media(prefers-reduced-motion:reduce){.detail-thumbnail{transition:none}}

