@font-face{font-family:Kanit;src:url(assets/kanit-300.woff2);font-weight:300;font-display:swap}@font-face{font-family:Kanit;src:url(assets/kanit-400.woff2);font-weight:400;font-display:swap}@font-face{font-family:Kanit;src:url(assets/kanit-500.woff2);font-weight:500;font-display:swap}@font-face{font-family:Kanit;src:url(assets/kanit-600.woff2);font-weight:600;font-display:swap}@font-face{font-family:Kanit;src:url(assets/kanit-700.woff2);font-weight:700;font-display:swap}@font-face{font-family:Kanit;src:url(assets/kanit-800.woff2);font-weight:800;font-display:swap}@font-face{font-family:Kanit;src:url(assets/kanit-900.woff2);font-weight:900;font-display:swap}
:root{--bg:#0c0c0c;--text:#d7e2ea;--line:#d7e2ea35}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:30px;background:var(--bg)}body{background:var(--bg);color:var(--text);font-family:Kanit,Arial,sans-serif;font-weight:300}main{overflow-x:clip}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid #cf9eff;outline-offset:6px}[hidden]{display:none!important}.skip{position:fixed;top:-90px;left:15px;background:white;color:black;padding:15px;z-index:90}.skip:focus{top:10px}.reading-progress{position:fixed;top:0;height:3px;width:0;background:linear-gradient(90deg,#b600a8,#7721b1,#be4c00);z-index:60}.hero{height:100svh;min-height:740px;position:relative;display:flex;flex-direction:column;overflow-x:clip;padding:0 3vw}.nav{display:flex;justify-content:space-between;align-items:center;padding-top:30px;position:relative;z-index:12}.nav a{text-transform:uppercase;font-weight:500;letter-spacing:1.5px;font-size:clamp(12px,1.6vw,23px);transition:opacity .2s}.nav a:hover{opacity:.7}.hero-title{margin-top:12px;position:relative;z-index:1}.hero-heading{background:linear-gradient(180deg,#646973 0%,#bbccd7 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.hero-title h1{font-size:12.85vw;line-height:1;font-weight:900;letter-spacing:-.065em;white-space:nowrap;text-align:center}.hero-surname{display:block;font-size:10px;letter-spacing:3px;text-align:center;margin-top:10px;color:#8f99a7}.portrait-position{position:absolute;left:50%;bottom:58px;transform:translateX(-50%);width:clamp(280px,36vw,520px);z-index:5}.magnet{position:relative;transition:transform .6s ease-in-out;will-change:transform;perspective:1200px}.magnet img{width:100%;height:min(61vh,610px);min-height:360px;object-fit:cover;object-position:46% center;display:block;border-radius:48% 48% 36px 36px;filter:saturate(.55);box-shadow:0 35px 60px #0009}.portrait-ring{position:absolute;inset:-16px -16px 16px;border:1px solid #899db94a;border-radius:48% 48% 45px 45px;transform:rotate(-5deg);pointer-events:none;z-index:-1}.portrait-tag{position:absolute;bottom:16px;left:16px;right:16px;background:#0c0c0c70;backdrop-filter:blur(15px);border:1px solid #ffffff20;border-radius:25px;padding:12px 18px;font-size:9px;letter-spacing:2px;display:flex;justify-content:space-between}.portrait-tag i{font-style:normal;font-size:18px}.hero-bottom{margin-top:auto;display:flex;align-items:end;justify-content:space-between;padding:0 0 62px;position:relative;z-index:8;pointer-events:none}.hero-bottom>*{pointer-events:auto}.hero-bottom p{font-size:clamp(12px,1.4vw,21px);font-weight:300;line-height:1.35;text-transform:uppercase;letter-spacing:.7px;max-width:260px}.contact-button{display:inline-flex;gap:22px;align-items:center;justify-content:center;border-radius:50px;background:linear-gradient(123deg,#18011f 7%,#b600a8 37%,#7621b0 72%,#be4c00 100%);box-shadow:0 4px 4px #b501a740,inset 4px 4px 12px #7721b1;outline:2px solid white;outline-offset:-3px;color:#fff;font-weight:500;text-transform:uppercase;letter-spacing:1.5px;padding:18px 38px;font-size:14px;border:0;transition:transform .3s,box-shadow .3s;white-space:nowrap}.contact-button:hover{transform:translateY(-3px);box-shadow:0 12px 25px #7721b145,inset 4px 4px 12px #7721b1}.contact-button span{font-size:20px}.scroll-cue{position:absolute;bottom:15px;left:3vw;font-size:8px;letter-spacing:2px;opacity:.6;z-index:8}.scroll-cue span{margin-left:15px;font-size:15px}.marquee{padding-top:140px;padding-bottom:40px;overflow:hidden;position:relative}.marquee-track{display:flex;gap:12px;width:max-content;will-change:transform;margin-bottom:12px}.marquee-tile{width:420px;height:270px;flex:0 0 auto;position:relative;background:#171717;overflow:hidden;border-radius:16px;border:0;text-align:left;color:#fff}.marquee-tile img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.marquee-tile:hover img{transform:scale(1.04)}.marquee-tile span{position:absolute;bottom:14px;left:18px;font-size:10px;letter-spacing:2px;text-shadow:0 2px 6px black}.archive-caption{display:flex;justify-content:space-between;padding:25px 3vw 0;font-size:10px;letter-spacing:1.5px}.archive-caption>a{color:#c6add9}.about{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;padding:120px 5vw;isolation:isolate}.about-content{text-align:center;max-width:750px;position:relative;z-index:2}.eyebrow{display:block;font-size:10px;letter-spacing:2px;color:#929ca7;font-weight:400}.about h2,.services h2,.projects h2{font-size:clamp(48px,12vw,160px);line-height:1;font-weight:900;letter-spacing:-.04em;margin:20px 0 65px}.animated-text{max-width:560px;margin:auto;font-size:clamp(17px,2vw,22px);line-height:1.75;font-weight:500}.animated-text .word{display:inline-block;white-space:nowrap}.animated-text .char{opacity:.2;transition:opacity .1s}.about .contact-button{margin-top:75px}.object{position:absolute;pointer-events:none;z-index:1}.object-moon{top:8%;left:5%;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle at 28% 22%,#ececf6,#8893aa 35%,#343348 65%,#111 90%);box-shadow:inset -18px -10px 20px #05050b,20px 20px 40px #0008;transform:rotate(-20deg)}.object-moon:after{content:'';position:absolute;inset:35px;border:2px solid #d7e2ea18;border-radius:50%;box-shadow:20px 30px 0 -18px #ffffff20}.object-block{right:5%;top:8%;width:140px;height:140px;border-radius:20px;background:linear-gradient(135deg,#e879cf,#905bd5 50%,#3f266f);box-shadow:inset 8px 8px 12px #f9bcff60,15px 20px 0 #251344;transform:perspective(500px) rotateX(25deg) rotateY(-25deg) rotateZ(10deg);display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:25px}.object-block i{border-radius:50%;background:linear-gradient(135deg,#e2a9f5,#6f409c);box-shadow:4px 8px 0 #5b337d}.object-lens{left:8%;bottom:10%;width:140px;height:140px;border-radius:50%;background:repeating-radial-gradient(circle,#161619 0 6px,#555365 7px 8px,#131318 9px 12px);box-shadow:15px 12px 0 #292833;transform:perspective(600px) rotateY(35deg) rotateX(10deg)}.object-lens i{position:absolute;inset:35px;background:radial-gradient(circle at 35% 20%,#94aade,#673a94 25%,#162541 60%,#030407);border-radius:50%;box-shadow:inset 0 0 20px black}.object-orbit{right:8%;bottom:10%;width:150px;height:150px;border:20px solid #8694b5;border-radius:50%;box-shadow:inset 5px 4px 8px #dbe7fa,10px 15px 15px #0008;transform:perspective(400px) rotateY(50deg) rotateZ(-30deg)}.services{background:white;color:#0c0c0c;border-radius:60px 60px 0 0;padding:100px 5vw 140px}.services>.eyebrow,.services h2{text-align:center}.services h2{margin-bottom:70px}.service-list{max-width:1024px;margin:auto}.service{display:grid;grid-template-columns:160px 1fr 35px;align-items:center;gap:40px;padding:38px 0;border-top:1px solid #0c0c0c26}.service:last-child{border-bottom:1px solid #0c0c0c26}.service-number{font-size:clamp(65px,9vw,125px);font-weight:900;letter-spacing:-5px;line-height:1}.service h3{font-size:clamp(22px,2.2vw,34px);font-weight:500;margin-bottom:8px}.service p{font-size:clamp(15px,1.6vw,20px);font-weight:300;line-height:1.65;opacity:.6;max-width:650px}.service-arrow{font-size:30px;transition:transform .3s}.service:hover .service-arrow{transform:translate(5px,-5px)}.service-tail{max-width:1024px;margin:40px auto 0;display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px}.projects{background:#0c0c0c;border-radius:60px 60px 0 0;margin-top:-55px;position:relative;z-index:3;padding:90px 3vw 70px}.projects>.eyebrow,.projects>h2{text-align:center}.projects h2{margin-bottom:65px}.stack-shell{position:relative;padding-bottom:45px}.project-card{position:sticky;top:var(--top);border:2px solid #d7e2ea;border-radius:50px;background:#0c0c0c;padding:28px;margin-bottom:55px;transform-origin:top center;transition:border-color .3s;will-change:transform}.project-top{display:grid;grid-template-columns:110px 1fr auto;gap:25px;align-items:center;margin-bottom:28px}.project-number{font-size:90px;line-height:1;font-weight:900;letter-spacing:-5px}.project-title small{font-size:9px;letter-spacing:2px;color:#969eab}.project-title h3{font-size:clamp(22px,3.8vw,50px);font-weight:500;letter-spacing:-1px;text-transform:uppercase}.ghost-button{border:2px solid #d7e2ea;border-radius:50px;background:none;color:#d7e2ea;text-transform:uppercase;letter-spacing:1px;font-weight:500;font-size:12px;padding:14px 24px;display:inline-flex;align-items:center;gap:20px;transition:background .3s}.ghost-button:hover{background:#d7e2ea1a}.project-images{display:grid;grid-template-columns:40% 1fr;gap:18px;height:clamp(330px,37vw,550px)}.project-images>div{display:grid;grid-template-rows:42% 1fr;gap:18px;min-height:0}.project-image{border:0;background:#151515;border-radius:32px;overflow:hidden;min-height:0;position:relative}.project-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s}.project-image:hover img{transform:scale(1.04)}.project-image:after{content:'↗';position:absolute;right:15px;bottom:15px;font-size:18px;background:#0c0c0c60;border:1px solid #fff5;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;color:white}.archive{padding:60px 5vw 100px}.archive-head{display:flex;align-items:end;justify-content:space-between;gap:25px}.archive-head h2{font-size:clamp(40px,7vw,95px);font-weight:900;line-height:1;letter-spacing:-.04em;margin-top:20px}.archive-head p{font-size:14px;line-height:1.6;color:#8d98a5}.filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:40px 0}.filters button{background:none;border:1px solid var(--line);border-radius:50px;padding:10px 20px;font-size:12px;color:var(--text)}.filters button.active{background:var(--text);color:#0c0c0c;border-color:var(--text)}.filters .motion-toggle{margin-left:auto;color:#989eab;border:0;font-size:10px}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:28px 20px}.gallery-photo{padding:0;border:0;background:none;color:var(--text);text-align:left}.gallery-photo img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;border-radius:18px;transition:filter .4s,transform .4s}.gallery-photo:hover img{filter:brightness(1.1);transform:translateY(-4px)}.gallery-photo>span{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;margin-top:12px}.gallery-photo i{font-style:normal;color:#7d8693}.gallery-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:25px;margin-top:40px;font-size:11px;color:#909ba8}.gallery-switch{animation:galleryFade .45s ease}.contact{background:linear-gradient(140deg,#17121c,#12151c);padding:90px 6vw;border-radius:60px 60px 0 0}.contact h2{font-size:clamp(60px,10vw,140px);font-weight:900;letter-spacing:-.04em;line-height:1;margin:25px 0 65px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:12vw}.contact-layout>div>p{font-size:21px;line-height:1.6;color:#a8b3c2}.contact-link{display:block;border-top:1px solid var(--line);padding:22px 0;margin-top:30px}.contact-link>span{font-size:27px}.contact-link small{display:block;font-size:13px;color:#8f9bab;margin-top:6px}form{display:grid;gap:25px}label{display:grid;gap:8px;font-size:11px;letter-spacing:.5px;color:#afbbc9}input,textarea,select{color:var(--text);background:none;border:0;border-bottom:1px solid var(--line);padding:10px 0 15px;width:100%;border-radius:0;font-size:15px}input::placeholder,textarea::placeholder{color:#6c7787}select option{background:#17151e}form>.contact-button{justify-self:start}form>small,#form-status{font-size:10px;line-height:1.6;color:#8e9aaa}footer{padding:55px 5vw 25px}footer>a{font-size:clamp(35px,7.6vw,115px);font-weight:900;letter-spacing:-.04em;display:flex;justify-content:space-between;align-items:center}footer>a>span{font-weight:300;font-size:.6em}footer>div{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;margin-top:30px;font-size:9px;letter-spacing:1px;color:#8f99a6}dialog{border:0;margin:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;padding:20px;background:#080808;color:var(--text)}dialog::backdrop{background:#080808}.viewer-top,.viewer-bottom{display:flex;justify-content:space-between;align-items:center;height:40px;font-size:11px}.viewer-top button,.viewer-image button{background:none;border:1px solid var(--line);border-radius:40px;padding:12px 16px;color:var(--text)}.viewer-image{height:calc(100% - 80px);display:flex;align-items:center;justify-content:space-between;gap:20px}.viewer-image img{max-width:calc(100% - 150px);max-height:100%;object-fit:contain}.viewer-bottom{font-size:9px;color:#8f99a6}.reveal{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s cubic-bezier(.25,.1,.25,1)}.reveal.visible{opacity:1;transform:none}.paused .reveal{opacity:1;transform:none}.paused .magnet{transform:none!important}.paused *{animation:none!important;transition:none!important}.paused .animated-text .char{opacity:1!important}@keyframes galleryFade{from{opacity:.3;transform:translateY(12px)}to{opacity:1;transform:none}}@media(min-width:1800px){.hero{max-height:1100px}.hero-title h1{font-size:230px}}
@media(max-width:1000px){.hero{min-height:700px}.hero-bottom p{max-width:180px;font-size:12px}.hero-bottom .contact-button{padding:16px 25px;font-size:12px}.portrait-position{width:350px}.object-moon,.object-block{width:110px;height:110px}.object-lens,.object-orbit{width:110px;height:110px}.object-block{padding:20px;gap:12px}.service{grid-template-columns:110px 1fr 30px;gap:25px}.project-top{grid-template-columns:85px 1fr auto}.project-number{font-size:70px}.gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:639px){.hero{height:100svh;min-height:780px;padding:0 6vw}.nav{padding-top:24px}.nav a{font-size:10px;letter-spacing:.8px}.hero-title{margin-top:35px}.hero-title h1{font-size:12vw;letter-spacing:-.055em}.hero-surname{font-size:7px;letter-spacing:2px}.portrait-position{bottom:170px;width:270px}.magnet img{height:355px;min-height:0;border-radius:45% 45% 24px 24px}.portrait-ring{inset:-12px -12px 12px}.hero-bottom{padding-bottom:65px;align-items:end;gap:15px}.hero-bottom p{font-size:10px;line-height:1.5;max-width:145px}.hero-bottom .contact-button{font-size:10px;padding:13px 18px;gap:12px}.scroll-cue{left:6vw;bottom:20px;font-size:7px}.marquee{padding-top:60px}.marquee-tile{width:270px;height:180px;border-radius:14px}.archive-caption{padding:20px 6vw 0;gap:15px;font-size:7px;letter-spacing:.5px}.about{min-height:850px;padding:150px 6vw}.about h2{font-size:18vw;margin-bottom:38px}.animated-text{font-size:17px;line-height:1.7}.about .contact-button{margin-top:45px;font-size:11px;padding:17px 24px}.object-moon{width:70px;height:70px;top:5%;left:7%}.object-block{width:65px;height:65px;top:6%;right:8%;border-radius:12px;padding:13px;gap:10px;box-shadow:inset 4px 4px 8px #ffffff40,6px 9px 0 #251344}.object-block i{box-shadow:2px 4px 0 #5b337d}.object-lens{width:65px;height:65px;left:7%;bottom:5%;box-shadow:7px 7px 0 #292833}.object-lens i{inset:16px}.object-orbit{width:70px;height:70px;border-width:10px;right:10%;bottom:5%}.services{border-radius:40px 40px 0 0;padding:60px 6vw 95px}.services h2{font-size:17vw;margin:20px 0 40px}.service{grid-template-columns:65px 1fr 20px;gap:15px;padding:28px 0}.service-number{font-size:58px;letter-spacing:-3px}.service h3{font-size:20px}.service p{font-size:14px;line-height:1.55}.service-arrow{font-size:22px}.service-tail{font-size:8px;gap:15px;letter-spacing:.3px}.projects{border-radius:40px 40px 0 0;margin-top:-35px;padding:60px 4vw 35px}.projects h2{font-size:18vw;margin:20px 0 40px}.stack-shell{padding-bottom:0}.project-card{position:relative;top:auto!important;border-radius:28px;padding:16px;margin-bottom:28px;transform:none!important}.project-top{grid-template-columns:50px 1fr;gap:15px;margin-bottom:18px}.project-number{font-size:50px;letter-spacing:-3px}.project-title h3{font-size:24px}.project-title small{font-size:7px;letter-spacing:1px}.project-top .ghost-button{grid-column:1/-1;justify-self:start;font-size:9px;padding:10px 17px}.project-images{height:330px;grid-template-columns:40% 1fr;gap:10px}.project-images>div{gap:10px}.project-image{border-radius:16px}.project-image:after{width:25px;height:25px;font-size:14px;bottom:8px;right:8px}.archive{padding:40px 6vw 65px}.archive-head{align-items:start;flex-direction:column;gap:20px}.archive-head h2{font-size:13vw}.archive-head p{font-size:12px}.filters{gap:8px;margin:30px 0}.filters button{font-size:10px;padding:9px 13px}.filters .motion-toggle{margin:0;width:100%;text-align:left;padding-left:0;font-size:9px}.gallery{grid-template-columns:repeat(2,1fr);gap:25px 14px}.gallery-photo img{border-radius:12px}.gallery-photo>span{font-size:7px;letter-spacing:.5px}.gallery-footer{font-size:9px}.ghost-button{font-size:10px;padding:11px 17px;gap:12px}.contact{padding:60px 6vw;border-radius:40px 40px 0 0}.contact h2{font-size:15vw;margin:25px 0 40px}.contact-layout{grid-template-columns:1fr;gap:40px}.contact-layout>div>p{font-size:18px}.contact-link{margin-top:20px;padding:18px 0}.contact-link>span{font-size:23px}.contact-link small{font-size:12px}form>.contact-button{font-size:11px;padding:17px 24px}footer{padding:35px 6vw 25px}footer>a{font-size:8vw}footer>div{font-size:8px;flex-wrap:wrap;gap:15px}.viewer-image{gap:4px}.viewer-image img{max-width:calc(100% - 82px)}.viewer-image button{padding:8px 10px}.viewer-bottom span:last-child{display:none}dialog{padding:12px}.eyebrow{font-size:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}.animated-text .char{opacity:1!important}.magnet{transform:none!important}.project-card{transform:none!important}}@media(max-width:350px){.hero{min-height:750px}.portrait-position{width:235px}.magnet img{height:320px}.hero-bottom .contact-button{padding:13px 15px;font-size:9px}.gallery{grid-template-columns:1fr}}

/* Personaje 3D original del modelo, sin marco ni recorte. */
.portrait-position{bottom:0;width:clamp(280px,36vw,520px)}.magnet img{height:auto;min-height:0;max-height:72svh;object-fit:contain;object-position:center bottom;border-radius:0;filter:none;box-shadow:none}.magnet{filter:drop-shadow(0 25px 30px #0007)}@media(max-width:639px){.portrait-position{bottom:150px;width:280px}.magnet img{height:auto;max-height:55svh;min-height:0;border-radius:0}}@media(max-width:350px){.portrait-position{width:245px}}

/* Encuadre del personaje completo con cámara. */
.portrait-position{width:clamp(280px,34vw,500px);bottom:12px}.magnet img{width:100%;height:min(73svh,780px);max-height:none;object-fit:contain}@media(max-width:639px){.portrait-position{width:280px;bottom:140px}.magnet img{height:440px;max-height:57svh}}@media(max-width:350px){.portrait-position{width:245px}.magnet img{height:410px}}

/* Empilhamento do portfolio também em telas touch. */
@media(max-width:639px){.stack-shell{padding-bottom:10vh}.project-card{position:sticky;top:var(--top)!important;transform:scale(var(--card-scale,1))!important;border-radius:25px;padding:14px;margin-bottom:28px}.project-card:nth-child(1){--top:18px!important}.project-card:nth-child(2){--top:30px!important}.project-card:nth-child(3){--top:42px!important}.project-card:nth-child(4){--top:54px!important}.project-top{margin-bottom:14px}.project-images{height:clamp(220px,45svh,380px)}.project-title h3{font-size:22px}.project-top .ghost-button{padding:8px 14px}.project-number{font-size:46px}}@media(prefers-reduced-motion:reduce){.project-card{transform:none!important}}.paused .project-card{transform:none!important}
/* Hero mobile compacto: título, personagem e contatos em fluxo. */
@media(max-width:639px){.hero{height:auto;min-height:0;padding:0 6vw 44px;display:flex;flex-direction:column}.nav{padding-top:24px}.hero-title{margin-top:30px}.hero-surname{margin-top:8px}.portrait-position{position:relative;left:auto;bottom:auto;transform:none;width:100%;display:flex;justify-content:center;margin:18px 0 12px}.magnet{width:280px;max-width:78vw}.magnet img{width:100%;height:auto;max-height:57svh;object-fit:contain}.hero-bottom{margin-top:0;padding:0;gap:14px;align-items:center}.scroll-cue{left:6vw;bottom:12px}.marquee{padding-top:40px}}@media(max-width:350px){.magnet{width:245px}.hero-title{margin-top:25px}.portrait-position{margin-top:15px}}
