@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=IBM+Plex+Sans+Thai:wght@400;500;600&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--bg:#111113;--panel:#1b1b1e;--text:#f2f0eb;--muted:#aaa9b1;--lime:#c3fa60;--purple:#ae91ff;--line:#363639}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font-family:'Space Grotesk','IBM Plex Sans Thai',sans-serif;font-size:16px}a{color:inherit;text-decoration:none}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--purple);outline-offset:5px}header{height:90px;display:flex;align-items:center;padding:0 5%;gap:16px;border-bottom:1px solid var(--line)}.brand{font-weight:900;font-size:45px;letter-spacing:-7px}.brand span{color:var(--lime);font-size:30px}.brand-name{font-size:12px;line-height:1.3;letter-spacing:1px}nav{display:flex;gap:36px;margin:auto}nav a,.header-cta{font-size:14px}.header-cta{border:1px solid #666;padding:12px 20px}.hero{padding:30px 5% 0;overflow:hidden}.eyebrow{font-size:12px;letter-spacing:1.5px;font-weight:500}.hero>.eyebrow{display:flex;justify-content:space-between;color:var(--muted)}.hero-layout{display:grid;grid-template-columns:1.15fr 1fr;min-height:610px;align-items:center}.intro{font-size:13px;letter-spacing:2px;color:var(--muted);margin:36px 0 20px}h1{font:800 clamp(64px,6.9vw,115px)/.94 'Barlow Condensed',Impact,sans-serif;letter-spacing:-1px;margin:0}.lime{color:var(--lime)}.outline{-webkit-text-stroke:1px #b9b7bf;color:transparent}.hero-thai{font-size:16px;line-height:1.8;color:#bcbac2;margin:27px 0}.primary,.secondary{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;padding:18px 24px;font-weight:600;font-size:14px;border:1px solid var(--line);background:var(--lime);color:#111}.primary:hover{background:#d9ff95}.secondary{background:transparent;color:var(--text)}.secondary:hover{border-color:var(--lime)}.hero-art{position:relative;height:520px;isolation:isolate}.art-back{position:absolute;inset:55px 30px 45px;background:var(--purple);border-radius:50%;background-image:linear-gradient(transparent 49.5%,#705ca850 50%,transparent 50.5%),linear-gradient(90deg,transparent 49.5%,#705ca850 50%,transparent 50.5%);background-size:45px 45px;transform:rotate(-12deg)}.hero-person{position:absolute;width:100%;height:100%;object-fit:contain;z-index:1;filter:grayscale(1)}.orbit-label{position:absolute;right:0;top:23px;font-size:12px;letter-spacing:2px}.float-label{position:absolute;z-index:2;padding:15px 20px;color:#161318;box-shadow:8px 8px 0 #0005;font-size:14px;font-weight:bold}.game-label{top:115px;left:0;background:var(--purple);transform:rotate(-8deg)}.design-label{right:-5px;bottom:140px;background:var(--lime);transform:rotate(7deg)}.hero-stamp{position:absolute;bottom:10px;left:10px;font:800 100px 'Barlow Condensed';z-index:2;transform:rotate(-10deg)}.hero-stamp span{color:var(--lime)}.art-caption{position:absolute;right:0;bottom:23px;font-size:12px;line-height:1.5}.hero-foot{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:23px 0;font-size:12px;color:var(--muted);letter-spacing:1px}.ticker{display:flex;align-items:center;justify-content:space-around;gap:40px;overflow:hidden;white-space:nowrap;border-block:1px solid var(--line);padding:22px 0;margin-top:28px;font:700 30px 'Barlow Condensed';color:var(--muted)}.ticker b{color:var(--lime);font-size:38px}.section{padding:100px 5%;scroll-margin-top:20px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:40px}h2{font-size:clamp(32px,4vw,58px);line-height:1.1;letter-spacing:-2px;font-weight:500;margin:20px 0 0}.section-head h2 span{color:var(--muted)}.section-head>p{color:var(--muted);line-height:1.8;font-size:15px}.mode-controls{display:flex;border-bottom:1px solid var(--line);margin-bottom:35px;gap:8px}.mode-controls button{border:0;background:none;color:#999;padding:20px 22px;font-size:14px;display:flex;gap:45px;flex:1;justify-content:space-between}.mode-controls .active{background:var(--lime);color:#111}.mode-controls [data-mode=game].active{background:var(--purple)}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 28px}.project{border:0;background:transparent;color:inherit;text-align:left;padding:0}.project-cover{height:350px;position:relative;overflow:hidden;background:#252527}.project-cover img{height:100%;width:100%;object-fit:cover;transition:transform .5s}.project:hover img{transform:scale(1.035)}.project:nth-child(3n) .project-cover{background:#d0cdd5}.project-cover .tag{position:absolute;top:16px;left:16px;background:#111d;color:#fff;padding:8px 12px;font-size:12px;letter-spacing:1px}.project-cover .plus{position:absolute;bottom:16px;right:16px;background:var(--lime);color:#111;border-radius:50%;width:42px;height:42px;display:grid;place-items:center;font-size:26px}.project-meta{display:flex;justify-content:space-between;gap:15px;padding-top:18px;align-items:baseline}.project h3{font-size:24px;margin:0;font-weight:500}.project-meta>span{font-size:12px;color:var(--muted)}.project p{color:var(--muted);font-size:14px;line-height:1.6;margin:8px 0}.archive{background:#19191c}.archive-controls{display:flex;align-items:center;gap:20px;margin-bottom:24px}.archive-controls label{font-size:14px}.archive-controls select{background:#27272b;color:#fff;border:1px solid #555;padding:12px;max-width:50%}#count{margin-left:auto;color:var(--muted);font-size:14px}.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.artwork{background:none;border:0;padding:0;color:#ccc;text-align:left}.artwork img{width:100%;height:210px;object-fit:contain;background:#252528;transition:background .2s}.artwork:hover img{background:#38383d}.artwork span{font-size:13px;display:block;margin-top:10px;overflow-wrap:anywhere}.archive>.secondary{margin-top:35px}.about{display:grid;grid-template-columns:1fr 1fr;gap:10%}.about-copy{color:#bab8c0;line-height:2;margin:30px 0}.skills{display:flex;flex-wrap:wrap;gap:10px}.skills span{padding:10px 14px;border:1px solid var(--line);font-size:13px}.experience article{padding:22px 0;border-bottom:1px solid var(--line)}.experience article:first-child{padding-top:0}.experience article>span{font-size:12px;color:var(--purple);letter-spacing:1px}.experience h3{font-size:23px;font-weight:500;margin:16px 0}.experience p{color:var(--muted);line-height:1.8;font-size:15px}.resume{border-block:1px solid var(--line);padding-top:55px;padding-bottom:55px}.resume h2{font-size:36px}.resume>div{display:flex;gap:15px;margin-top:30px;flex-wrap:wrap}footer{padding:80px 5% 25px}footer h2{font:800 clamp(48px,7vw,105px)/1 'Barlow Condensed';letter-spacing:0}footer h2 span{color:var(--lime)}.email{display:inline-block;border-bottom:1px solid #777;padding:18px 0;font-size:clamp(17px,2.5vw,30px);margin:25px 0 70px}.footer-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding-top:25px;font-size:12px;color:var(--muted)}dialog{background:#171719;color:var(--text);border:1px solid #555;width:min(1000px,94vw);max-height:90vh;padding:40px}dialog::backdrop{background:#000c;backdrop-filter:blur(8px)}#close{position:sticky;top:0;float:right;z-index:5;border:1px solid #777;background:#222;color:#fff;width:42px;height:42px;font-size:20px}#detail-body h2{font-size:38px;margin-bottom:20px}#detail-body p{line-height:1.9;color:#bbb;max-width:750px}#detail-body img{display:block;width:100%;max-height:75vh;object-fit:contain;background:#252528;margin:20px 0}#detail-body video{width:100%;max-height:65vh;margin:20px 0}.detail-facts{display:flex;gap:12px;flex-wrap:wrap}.detail-facts span{padding:10px;border:1px solid #444;font-size:13px}.skip{position:fixed;top:-100px;z-index:100;background:var(--lime);color:#111;padding:15px}.skip:focus{top:0}[hidden]{display:none!important}@media(min-width:1600px){main,header{max-width:1800px;margin:auto}}@media(max-width:800px){header{height:75px}.brand-name{display:none}nav{gap:20px}.header-cta{padding:10px}.hero-layout{grid-template-columns:1fr;min-height:auto}.hero-copy{padding-top:10px}h1{font-size:clamp(62px,12vw,100px)}.hero-art{height:410px;max-width:470px;width:100%;margin:20px auto}.hero>.eyebrow span:last-child{display:none}.hero-foot{font-size:10px;gap:20px}.section{padding:65px 5%}.section-head{display:block}.section-head>p{margin-top:20px}h2{letter-spacing:-1px}.mode-controls button{gap:7px;padding:17px 10px;font-size:12px}.project-cover{height:260px}.project-meta{display:block}.project-meta>span{display:block;margin-top:7px}.project h3{font-size:21px}.gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.artwork img{height:170px}.about{grid-template-columns:1fr;gap:45px}.footer-bottom{gap:20px;flex-wrap:wrap}dialog{padding:20px}}@media(max-width:520px){.projects{grid-template-columns:1fr}.project-cover{height:310px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.artwork img{height:180px}.hero-art{height:360px}.float-label{font-size:12px;padding:12px}.hero-stamp{font-size:75px}.hero-thai br{display:none}.art-caption{font-size:10px}.archive-controls{gap:10px;flex-wrap:wrap}.archive-controls label{display:none}.email{font-size:20px}.resume h2{font-size:30px}.intro{letter-spacing:1px;font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.art-caption{z-index:2;background:#111c;padding:8px}.orbit-label{z-index:2}
/* Two creative worlds, one continuous portfolio. */
body{transition:background-color .45s}body[data-world=game]{--bg:#121019;--panel:#211a30;--line:#3a304a}body[data-world=graphic]{--bg:#11150f;--panel:#1c2418;--line:#34412b}.hero{position:relative}.hero-art{perspective:900px}.hero-person{pointer-events:none}.pixel-field{position:absolute;inset:0;z-index:3;pointer-events:none}.pixel-field i{position:absolute;width:10px;height:10px;background:var(--lime);animation:pixel-drift 5s ease-in-out infinite;box-shadow:0 0 22px #c3fa6030}.pixel-field i:nth-child(1){top:10%;left:20%}.pixel-field i:nth-child(2){top:50%;left:3%;animation-delay:-2s;background:var(--purple);width:6px;height:6px}.pixel-field i:nth-child(3){bottom:12%;right:2%;animation-delay:-1s}.pixel-field i:nth-child(4){top:30%;right:2%;animation-delay:-3s;width:16px;height:16px;background:transparent;border:2px solid var(--lime)}.pixel-field i:nth-child(5){bottom:10%;left:35%;animation-delay:-4s;background:var(--purple)}.pixel-field i:nth-child(6){top:1%;left:60%;width:7px;height:7px;animation-delay:-2.5s}.game-label{animation:sticker-game 5s ease-in-out infinite}.design-label{animation:sticker-design 6s ease-in-out infinite}.explore-hud{display:flex;align-items:center;gap:20px;padding:14px 0 24px;color:var(--muted);font-size:12px;letter-spacing:1px}.explore-track{height:5px;background:#333;flex:1;max-width:220px;overflow:hidden}.explore-track span{display:block;height:100%;width:0;background:var(--lime);transition:width .5s}#sound-toggle{margin-left:auto;color:var(--muted);background:none;border:1px solid var(--line);padding:10px 12px;font-size:12px}#sound-toggle[aria-pressed=true]{color:var(--lime);border-color:var(--lime)}.project{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .15s;animation:card-enter .45s both;animation-delay:calc(var(--order)*45ms)}.project-cover{border:1px solid transparent;transition:border-color .25s}.project:hover .project-cover,.project:focus-visible .project-cover{border-color:var(--lime)}body[data-world=game] .project:hover .project-cover{border-color:var(--purple)}.project-cover.game-cover{background:radial-gradient(ellipse at center,#352842,#1a1720);padding:14px}.game-cover img{object-fit:contain}.card-scan{position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#fff1 49%,transparent 65%);transform:translateX(-120%);pointer-events:none}.project:hover .card-scan{transform:translateX(120%);transition:transform .85s}.project.discovered .tag::before{content:'✓ ';color:var(--lime)}.project.discovered .plus{background:var(--purple)}.project-meta{align-items:start}.project-meta h3{max-width:77%;font-size:23px}.project-meta>span{white-space:nowrap;padding-top:5px}.case-study{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;margin:30px 0}.case-study section{border-top:1px solid var(--line);padding:20px 0 0}.case-study section:last-child:nth-child(odd){grid-column:1/-1}.case-study h3,.media-heading{font-size:13px;letter-spacing:1.5px;color:var(--purple)}.case-study p{font-size:15px}.project-links{display:flex;gap:10px;flex-wrap:wrap}.project-links .secondary{padding:13px 16px;gap:20px;font-size:13px;border-color:#666}.project-links a:hover{color:var(--lime);border-color:var(--lime)}#detail-body .link-note{font-size:12px;margin:12px 0 28px;color:#aaa}.video-embed{aspect-ratio:16/9;margin:28px 0 8px;background:#050505}.video-embed iframe{width:100%;height:100%;border:0}.video-fallback{font-size:14px;border-bottom:1px solid #777;display:inline-block;margin-bottom:20px}#detail-body figure{margin:32px 0}#detail-body figure img{margin:0 0 12px}figcaption{font-size:14px;color:var(--muted)}.arcade{display:grid;grid-template-columns:1fr 1fr;gap:8%;background:radial-gradient(ellipse at 80% 50%,#242035,#151419);border-block:1px solid var(--line);align-items:center}.arcade-copy>p{line-height:1.9;color:var(--muted)}.arcade-copy>.eyebrow{color:var(--purple)}.arcade-copy .arcade-help{font-size:14px;max-width:400px;margin:20px 0 28px}.arcade-machine{padding:24px;background:#0c0c10;border:1px solid #5d4d79;box-shadow:8px 8px 0 #060607;position:relative}.arcade-machine:before,.arcade-machine:after{content:'';position:absolute;width:12px;height:12px;background:var(--purple);top:-6px;left:-6px}.arcade-machine:after{inset:auto -6px -6px auto}.arcade-score{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--purple);margin:0 0 20px;letter-spacing:1px}.arcade-score b{color:var(--lime)}#pixel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pixel-cell{aspect-ratio:1.35;border:1px solid #34303f;background:#1c1923;color:#524961;font-size:35px;transition:background .1s,color .1s,box-shadow .1s}.pixel-cell span{opacity:.2}.pixel-cell.target{color:#17131c;background:var(--lime);border-color:var(--lime);box-shadow:0 0 25px #c3fa6026}.pixel-cell.target span{opacity:1}.pixel-cell:not(:disabled):hover{border-color:var(--purple)}.pixel-cell:disabled{cursor:default}#game-status{min-height:24px;font-size:13px;color:var(--muted);margin:20px 0 0;text-align:center}#start-game:disabled{opacity:.5;cursor:default}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,30px);opacity:0;pointer-events:none;z-index:100;background:var(--lime);color:#111;padding:15px 22px;font-size:14px;box-shadow:6px 6px 0 #0005;transition:opacity .2s,transform .3s;max-width:90vw;width:max-content}.toast.visible{opacity:1;transform:translate(-50%,0)}.reward-pixel{position:fixed;bottom:15%;width:9px;height:9px;z-index:100;pointer-events:none;animation:reward-burst 1.2s ease-out forwards}@keyframes pixel-drift{50%{transform:translateY(-15px) rotate(90deg)}}@keyframes sticker-game{50%{transform:translateY(-8px) rotate(-5deg)}}@keyframes sticker-design{50%{transform:translateY(8px) rotate(4deg)}}@keyframes card-enter{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}@keyframes reward-burst{to{transform:translate(var(--dx),var(--dy)) rotate(var(--spin));opacity:0}}@media(max-width:800px){.arcade{grid-template-columns:1fr;gap:40px}.arcade-machine{max-width:520px;width:100%}.project-meta h3{max-width:none}.explore-hud{gap:12px;flex-wrap:wrap}.explore-track{max-width:100px}.case-study{grid-template-columns:1fr}.project-meta>span{white-space:normal}.arcade-score{font-size:12px}}@media(max-width:520px){.explore-hud>span:first-child{display:none}.explore-track{flex:1;min-width:35px}#explore-count{font-size:10px}#sound-toggle{font-size:10px;padding:8px}.arcade-machine{padding:18px}.case-study{gap:0}.project-links .secondary{flex:1;min-width:130px}.project-meta h3{font-size:23px}.pixel-cell{aspect-ratio:1.2}.toast{font-size:12px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.project{transform:none!important}}
/* Cinematic scroll direction */
.scroll-meter{position:fixed;inset:0 0 auto;height:3px;z-index:90;pointer-events:none;background:transparent}.scroll-meter i{display:block;background:linear-gradient(90deg,var(--purple),var(--lime));height:100%;transform-origin:left;transform:scaleX(var(--page-progress,0))}.motion-toggle{position:fixed;bottom:18px;right:18px;z-index:30;border:1px solid #ffffff40;background:#15131ce8;color:#d5c9ec;backdrop-filter:blur(12px);padding:10px 13px;font:500 11px 'Space Grotesk',sans-serif;letter-spacing:1px}.title-line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}.title-line>span{display:block}.motion-enabled.intro-ready .title-line>span{animation:hero-word-in 1.05s cubic-bezier(.16,1,.3,1) both}.motion-enabled.intro-ready .title-line:nth-child(2)>span{animation-delay:.13s}.motion-enabled.intro-ready .title-line:nth-child(3)>span{animation-delay:.26s}.motion-enabled.intro-ready .hero-art{animation:hero-art-in 1.3s cubic-bezier(.16,1,.3,1) both;animation-delay:.2s}.motion-enabled .hero-person{transform:translateY(var(--hero-shift,0px)) scale(var(--hero-scale,1));transform-origin:50% 90%}.motion-enabled .art-back{transform:rotate(var(--hero-spin,-12deg))}.hero-art{overflow:visible}.hero-layout{position:relative}.hero-copy{z-index:4}.hero-person{will-change:transform}.hero:before{content:'';position:absolute;right:-15%;top:-5%;width:65%;aspect-ratio:1;pointer-events:none;background:radial-gradient(ellipse,#ae91ff13,transparent 65%)}.ticker{position:relative}.motion-enabled .ticker>span,.motion-enabled .ticker>b{transform:translateX(var(--ticker-shift,0px))}.world-portal{height:160vh;position:relative;background:#0c0c10}.portal-stage{height:100svh;position:sticky;top:0;overflow:hidden;display:flex;flex-direction:column;justify-content:center;border-bottom:1px solid #ffffff20;isolation:isolate}.portal-stage:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(#0c0c10,transparent 25%,transparent 75%,#0c0c10);z-index:-1}.portal-grid{position:absolute;inset:-30%;z-index:-2;background-image:linear-gradient(#ae91ff10 1px,transparent 1px),linear-gradient(90deg,#ae91ff10 1px,transparent 1px);background-size:70px 70px;transform:rotate(var(--grid-rotate,-12deg)) scale(1.2)}.portal-grid:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse,#8644ee24,transparent 65%)}.portal-label{position:absolute;top:9%;left:5%;font-size:12px;letter-spacing:2px;color:var(--muted)}.portal-words{font:900 clamp(90px,18vw,310px)/.79 'Barlow Condensed',Impact,sans-serif;text-align:center;letter-spacing:-.025em;display:flex;flex-direction:column;gap:.04em}.portal-play{color:var(--purple);transform:translateX(var(--play-x,-17vw))}.portal-design{-webkit-text-stroke:1px var(--lime);color:transparent;transform:translateX(var(--design-x,17vw))}.portal-sound{color:var(--lime);transform:scale(var(--feel-scale,.8))}.portal-bottom{position:absolute;bottom:8%;left:5%;right:5%;display:flex;justify-content:space-between;font-size:12px;letter-spacing:1px;color:var(--muted)}.portal-bottom b{color:var(--lime);font-size:24px;margin-left:15px}.motion-enabled .scroll-reveal{opacity:0;transform:translateY(42px);transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}.motion-enabled .scroll-reveal.revealed{opacity:1;transform:translateY(0)}.sound-stage{background:#100e17;position:relative;overflow:hidden;border-block:1px solid #393045}.sound-heading{text-align:center;position:relative;padding-bottom:45px}.sound-heading .eyebrow{color:var(--purple)}.sound-heading h2{font-size:clamp(42px,6vw,90px);line-height:1.02;position:relative;z-index:1}.sound-heading h2>span{color:var(--purple)}.sound-intro{line-height:1.9;color:#bbb5c7;font-size:16px;margin:25px auto}.sound-wave{display:flex;align-items:center;justify-content:center;gap:6px;height:95px;margin:35px auto;max-width:850px;mask-image:linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent)}.sound-wave i{display:block;height:var(--h);width:5px;flex:1;max-width:7px;background:linear-gradient(var(--lime),var(--purple));opacity:.6;transform:scaleY(.65);transform-origin:center}.motion-enabled .in-view .sound-wave i{animation:eq-wave 1.7s ease-in-out infinite;animation-delay:var(--delay)}.headphone-note{font-size:12px;letter-spacing:2px;color:var(--lime)}.sound-reels{display:grid;grid-template-columns:1fr 1fr;gap:30px}.sound-reel{border:1px solid #51435f;background:#1c1727;padding:0;color:var(--text);text-align:left;position:relative;isolation:isolate}.sound-reel:after{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(250px circle at var(--spot-x,50%) var(--spot-y,50%),#ae91ff25,transparent 80%);opacity:0;transition:opacity .3s}.sound-reel:hover:after{opacity:1}.sound-poster{aspect-ratio:16/9;overflow:hidden;position:relative;background:#08070a}.sound-poster>img{width:100%;height:100%;object-fit:cover;opacity:.7;transform:translateY(var(--poster-y,0px)) scale(1.14);transition:opacity .4s}.sound-reel:hover img{opacity:1}.sound-poster:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 50%,#0a071ac0);pointer-events:none}.play-disc{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:1px solid #fff9;border-radius:50%;width:65px;height:65px;display:grid;place-items:center;padding-left:4px;z-index:2;background:#12101c50;backdrop-filter:blur(8px);transition:background .3s,scale .3s}.sound-reel:hover .play-disc{background:var(--lime);color:#111;scale:1.12;border-color:var(--lime)}.reel-number{position:absolute;left:20px;top:20px;font-size:12px;letter-spacing:2px;background:#111b;padding:8px 10px}.reel-caption{padding:24px}.reel-caption h3{font-size:24px;font-weight:500;margin:0 0 12px}.reel-caption>span{font-size:12px;letter-spacing:1px;color:var(--purple)}.sound-credit{text-align:center;font-size:12px;color:#9a91a8;letter-spacing:1px;line-height:1.8;margin:35px 0 0}.project{position:relative}.project:focus-visible{outline-offset:6px}.section-head h2{max-width:850px}footer{position:relative;overflow:hidden}footer:before{content:'LET’S PLAY';position:absolute;right:-4%;top:40%;font:900 180px 'Barlow Condensed';color:#ffffff03;transform:rotate(-12deg);pointer-events:none}.page-hidden *{animation-play-state:paused!important}.hero:not(.in-view) .pixel-field i,.hero:not(.in-view) .float-label{animation-play-state:paused}.motion-disabled *, .motion-disabled *:before,.motion-disabled *:after{animation:none!important;transition:none!important}.motion-disabled .world-portal{height:75vh}.motion-disabled .portal-stage{position:relative;height:75vh}.motion-disabled .portal-play,.motion-disabled .portal-design,.motion-disabled .portal-sound,.motion-disabled .hero-person{transform:none}.motion-disabled .scroll-reveal{opacity:1;transform:none}.motion-disabled .sound-poster>img{transform:scale(1.14)}@keyframes hero-word-in{from{transform:translateY(115%) rotate(3deg);opacity:0}to{transform:translateY(0) rotate(0);opacity:1}}@keyframes hero-art-in{from{opacity:0;translate:40px 40px;scale:.88;rotate:5deg}to{opacity:1;translate:0 0;scale:1;rotate:0deg}}@keyframes eq-wave{0%,100%{transform:scaleY(.3)}50%{transform:scaleY(1)}}@media(max-width:800px){.world-portal{height:130vh}.portal-words{font-size:25vw;line-height:.88}.portal-label{font-size:10px;letter-spacing:1px}.portal-bottom{font-size:10px}.sound-reels{grid-template-columns:1fr}.sound-heading h2{font-size:clamp(40px,8vw,65px)}.sound-heading{padding-bottom:30px}.sound-intro br{display:none}.sound-intro{max-width:500px}.sound-wave{gap:4px;height:70px}.motion-toggle{font-size:10px;bottom:10px;right:10px;padding:8px}.reel-caption h3{font-size:23px}nav{gap:15px}.hero-person{will-change:auto}}@media(max-width:520px){nav{gap:12px}nav a{font-size:12px}.header-cta{font-size:12px;padding:8px}.brand{font-size:36px}.brand span{font-size:24px}header{gap:8px}.portal-bottom{gap:15px;align-items:end}.portal-bottom>span:last-child{max-width:115px;text-align:right}.sound-heading h2{letter-spacing:-1.5px}.sound-heading .eyebrow{font-size:11px}.reel-caption{padding:20px}.play-disc{width:52px;height:52px}.sound-credit{letter-spacing:0}.hero-stamp{z-index:2}}@media(prefers-reduced-motion:reduce){.world-portal{height:75vh}.portal-stage{height:75vh;position:relative}.portal-words>span,.hero-person{transform:none!important}.scroll-reveal{opacity:1!important;transform:none!important}}
/* Editorial sequence: one project, one moment. */
#work{padding:80px 0 0}#work>.section-head,#work>.mode-controls{margin-left:5%;margin-right:5%}#work>.section-head{align-items:center;margin-bottom:38px}#work>.section-head h2{font-size:clamp(45px,7vw,98px);letter-spacing:-3px}#work .mode-controls{position:sticky;top:0;z-index:15;background:#111113f2;backdrop-filter:blur(16px);margin-bottom:0}.projects{display:block}.project-scene{position:relative;min-height:110svh;padding:50px 5%;border-bottom:1px solid #ffffff14;overflow:clip;background:radial-gradient(ellipse at 75% 50%,#34254132,transparent 60%)}.project-scene[data-kind=graphic]{background:radial-gradient(ellipse at 30% 60%,#37452a24,transparent 60%)}.scene-inner{position:sticky;top:100px;min-height:76svh;display:grid;grid-template-columns:.85fr 1.25fr;gap:7%;align-items:center}.scene-reverse{grid-template-columns:1.25fr .85fr}.scene-reverse .scene-copy{order:2}.scene-reverse .scene-visual{order:1}.scene-copy{position:relative;z-index:2}.scene-index{font:500 44px 'Space Grotesk';color:var(--purple);margin:0 0 40px}.scene-index span{font-size:11px;letter-spacing:2px;color:var(--muted);margin-left:12px}.scene-copy>.eyebrow{font-size:11px;letter-spacing:1.8px;color:var(--muted);line-height:1.6}.scene-copy h3{font:600 clamp(35px,4.4vw,76px)/1.04 'Space Grotesk','IBM Plex Sans Thai',sans-serif;letter-spacing:-2.5px;overflow-wrap:anywhere;margin:22px 0}.scene-description{font-size:17px;line-height:1.8;color:#c1bacb;margin-bottom:23px}.scene-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:32px}.scene-tags span{font-size:12px;color:var(--muted);padding:7px 9px;border:1px solid #ffffff1b}.scene-open{border-color:#747078}.scene-open:hover{background:var(--lime);color:#111}.scene-visual{position:relative;display:grid;place-items:center;min-width:0;width:100%;height:65svh;max-height:730px;border:0;background:transparent;padding:35px;isolation:isolate;color:var(--text)}.scene-orbit{position:absolute;inset:5%;border:1px solid #ae91ff35;transform:rotate(var(--orbit-turn,-8deg));z-index:-1}.scene-orbit:after{content:'';position:absolute;inset:18px;border:1px solid #ae91ff12}.scene-main{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 20px 28px #0005);transform:translateY(var(--scene-y,0px)) scale(var(--scene-scale,1));transition:filter .3s}.scene-visual:hover .scene-main{filter:drop-shadow(0 20px 38px #ae91ff25)}.scene-layer{position:absolute;bottom:3%;right:0;width:35%;height:43%;object-fit:contain;background:#19191c;box-shadow:0 20px 45px #0008;border:5px solid #242329;transform:translateY(var(--layer-y,0px)) rotate(7deg)}.scene-view{position:absolute;bottom:0;left:50%;transform:translateX(-50%);background:#16141de6;border:1px solid #ffffff40;padding:12px 16px;white-space:nowrap;font-size:11px;letter-spacing:1px;backdrop-filter:blur(10px)}.scene-view b{color:var(--lime);font-size:18px;margin-left:15px}.sound-stage{padding-top:100px}.archive{padding:45px 5%;background:#151518}.archive-drawer>summary{cursor:pointer;display:flex;align-items:center;gap:28px;list-style:none;padding:30px 0}.archive-drawer>summary::-webkit-details-marker{display:none}.archive-drawer>summary>span:first-child{color:var(--muted);font-size:12px;letter-spacing:1px}.archive-drawer>summary>strong{font-size:25px;font-weight:500}.archive-drawer>summary>span:last-child{margin-left:auto;color:var(--lime);font-size:30px}.archive-drawer[open]>summary>span:last-child{transform:rotate(45deg)}.archive-inside{padding:40px 0}.archive-inside>.section-head{display:none}#detail-body .paper-image,.artwork .paper-image{background:#fff!important;padding:15px}.credit-note{border-left:2px solid var(--purple);background:#211b2b;padding:18px 20px;margin:25px 0}.credit-note>span{font-size:11px;color:var(--purple);letter-spacing:1px}#detail-body .credit-note p{font-size:14px;margin:9px 0 0;line-height:1.8;color:#c7c0d0}.back-top{position:fixed;right:20px;bottom:20px;z-index:30;background:#19161fe8;border:1px solid #ffffff40;backdrop-filter:blur(10px);padding:12px 16px;display:flex;gap:10px;align-items:center;font-size:20px}.back-top span{font-size:11px;letter-spacing:1px}.contact-direct{display:flex;flex-direction:column;align-items:start;margin:32px 0 42px;gap:15px}.contact-direct .email{margin:0;padding:10px 0}.phone-main{font-size:clamp(25px,3.5vw,48px);letter-spacing:1px;color:var(--lime);padding:8px 0;border-bottom:1px solid #c3fa6040}.portfolio-note{max-width:850px;font-size:14px;line-height:1.9;color:var(--muted);margin:20px 0 45px}.resume .secondary{min-height:56px}.motion-disabled .scene-main,.motion-disabled .scene-layer{transform:none}.motion-disabled .project-scene{min-height:auto}.motion-disabled .scene-inner{position:relative;top:0}.motion-disabled .scene-inner{min-height:70vh}@media(min-width:1600px){.scene-inner{gap:9%}.scene-copy h3{font-size:70px}}@media(max-width:800px){#work{padding-top:55px}#work>.section-head h2{letter-spacing:-2px}.project-scene{min-height:auto;padding:50px 5% 65px}.scene-inner,.scene-reverse{grid-template-columns:1fr;gap:30px;position:relative;top:0;min-height:0}.scene-reverse .scene-copy,.scene-reverse .scene-visual{order:initial}.scene-index{margin-bottom:25px;font-size:30px}.scene-copy h3{font-size:clamp(34px,7vw,54px);letter-spacing:-1.5px;max-width:650px}.scene-visual{height:58svh;min-height:300px;max-height:600px;padding:25px}.scene-copy .scene-description{margin:12px 0 15px;font-size:16px}.scene-tags{margin-bottom:22px}.scene-copy>.eyebrow{margin-bottom:10px}.scene-layer{width:32%;height:38%}.archive-drawer>summary{gap:15px;flex-wrap:wrap}.archive-drawer>summary>span:first-child{width:100%}.archive-drawer>summary>strong{font-size:22px}}@media(max-width:520px){.project-scene{padding-top:40px}.scene-visual{height:430px;max-height:60svh;min-height:280px;padding:20px}.scene-index{font-size:27px;margin-bottom:20px}.scene-index span{font-size:10px}.scene-open{font-size:13px;padding:14px 18px}.scene-view{font-size:10px}.back-top{bottom:12px;right:12px;padding:9px 12px}.contact-direct .email{font-size:19px}.phone-main{font-size:30px}.scene-tags span{font-size:11px}.archive-drawer>summary>strong{font-size:20px}#work .mode-controls button{padding:17px 9px}.resume h2{font-size:30px}}@media(prefers-reduced-motion:reduce){.scene-main,.scene-layer{transform:none!important}.scene-inner{position:relative;top:0}.project-scene{min-height:auto}}
#work .mode-controls button{font-size:14px}.project-scene{scroll-margin-top:80px}#detail-body .image-credit{font-size:14px;line-height:1.8;color:#b9b1c4}
.wipe-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:8%;align-items:center;background:radial-gradient(ellipse at 75% 45%,#342b464d,transparent 65%);border-block:1px solid var(--line)}.wipe-copy>p{color:var(--muted);line-height:1.9}.wipe-copy .eyebrow{color:var(--purple);font-size:12px}.wipe-copy h2{font-size:clamp(36px,4.5vw,65px)}.wipe-instruction{font-size:14px;margin-top:25px}.wipe-meter{margin-top:28px;max-width:340px}.wipe-meter>span{font-size:13px;color:var(--muted)}.wipe-meter b{color:var(--lime);margin-left:12px;font-weight:500}#wipe-progress{height:5px;background:#302b3a;margin-top:12px;overflow:hidden}#wipe-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--purple),var(--lime));transition:width .15s}#wipe-status{font-size:14px;min-height:55px;max-width:380px}.wipe-window{background:#201b2c;border:1px solid #6a5b7d;box-shadow:12px 12px 0 #08070b;border-radius:14px;overflow:hidden;min-width:0}.window-top,.window-bottom{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:17px 20px;color:#bbb0ce;font-size:11px;letter-spacing:1px}.window-top>span:last-child{color:var(--lime);font-size:20px}.window-dots{color:var(--purple);font-size:10px;letter-spacing:4px}.window-bottom{font-size:10px;padding:15px 20px}.glass-surface{position:relative;aspect-ratio:16/11;background:#dcd4f3;isolation:isolate;overflow:hidden}.glass-surface[data-theme=mint]{background:#d2f1dc}.glass-surface[data-theme=peach]{background:#ffe4d2}.wipe-reward{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:20px;text-align:center;color:#36284c;background-image:radial-gradient(#ffffff75 1.5px,transparent 1.5px);background-size:24px 24px}.wipe-reward h3{font:600 clamp(18px,2vw,29px)/1.5 'IBM Plex Sans Thai',sans-serif;margin:17px 0 4px}.wipe-reward p{font:400 clamp(12px,1.1vw,16px)/1.6 'IBM Plex Sans Thai',sans-serif;margin:0}.reward-kicker{font-size:13px}.lucky-number{font:700 clamp(65px,8vw,130px)/1 'Space Grotesk';color:#804060;text-shadow:4px 4px #fff8}.reward-star{font-size:110px;color:#f2b833;filter:drop-shadow(0 5px 0 #9f8032)}#fog-canvas{display:block;position:relative;z-index:2;width:100%;height:100%;touch-action:none;cursor:grab;transition:opacity .7s;outline-offset:-5px}#fog-canvas:active{cursor:grabbing}.wipe-hint{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;pointer-events:none;color:#5c6477;font-size:17px;transition:opacity .25s}.wipe-hint>span{font-size:50px;font-weight:300}.started .wipe-hint{opacity:0}.clean .wipe-reward{animation:reveal-joy .6s cubic-bezier(.16,1,.3,1)}.wipe-sparkles{position:absolute;inset:0;pointer-events:none;z-index:4}.wipe-sparkles span{position:absolute;color:#a0689f;font-size:28px;animation:joy-spark 1.6s ease-out both;animation-delay:var(--delay)}.reward-ghost{position:relative;width:100px;height:108px;background:#fffdf6;border-radius:55% 55% 22% 22%;box-shadow:0 6px 0 #b4a5cc;clip-path:polygon(0 0,100% 0,100% 100%,83% 90%,66% 100%,50% 90%,33% 100%,16% 90%,0 100%)}.reward-ghost.pink{background:#ffc9df}.reward-ghost i,.reward-ghost b{position:absolute;top:42px;left:25px;width:9px;height:14px;background:#493956;border-radius:50%}.reward-ghost b{left:65px}.reward-ghost>span{position:absolute;top:58px;left:38px;color:#ef92b5;font-size:27px}.reward-cat{position:relative;width:110px;height:90px;margin-top:20px;background:#ffd39e;border-radius:40%;box-shadow:0 5px 0 #d6a679}.reward-cat:before,.reward-cat:after{content:'';position:absolute;top:-21px;width:37px;height:48px;background:#ffd39e;clip-path:polygon(50% 0,100% 100%,0 100%)}.reward-cat:before{left:1px;transform:rotate(-15deg)}.reward-cat:after{right:1px;transform:rotate(15deg)}.reward-cat i,.reward-cat b{position:absolute;top:28px;left:25px;width:10px;height:13px;border-radius:50%;background:#5e4438}.reward-cat b{left:75px}.reward-cat>span{position:absolute;left:41px;top:38px;font-size:27px;color:#8b5d5b}.clean .reward-cat,.clean .reward-ghost{animation:little-float 2s ease-in-out infinite}.reward-star{line-height:1}@keyframes reveal-joy{from{transform:scale(.93)}to{transform:scale(1)}}@keyframes joy-spark{0%{opacity:0;transform:scale(.4)}30%{opacity:1}100%{opacity:0;transform:translateY(-50px) rotate(var(--turn)) scale(1.2)}}@keyframes little-float{50%{transform:translateY(-7px) rotate(3deg)}}@media(max-width:800px){.wipe-section{grid-template-columns:1fr;gap:20px}.wipe-window{width:100%;max-width:650px;margin:auto}.wipe-copy h2{font-size:clamp(36px,7vw,54px)}.wipe-reward h3{font-size:25px}.wipe-reward p{font-size:14px}#wipe-status{min-height:30px}.lucky-number{font-size:100px}}@media(max-width:520px){.window-top,.window-bottom{padding:12px;font-size:9px}.window-dots{font-size:8px;letter-spacing:2px}.wipe-window{box-shadow:6px 6px 0 #08070b}.wipe-reward{padding:12px}.wipe-reward h3{font-size:18px;margin-top:10px}.wipe-reward p{font-size:11px}.reward-ghost{width:74px;height:80px}.reward-ghost i{top:29px;left:19px;width:7px;height:11px}.reward-ghost b{top:29px;left:49px;width:7px;height:11px}.reward-ghost>span{top:40px;left:26px;font-size:24px}.reward-cat{transform:scale(.8);margin:0 0 -8px}.lucky-number{font-size:75px}.reward-star{font-size:76px}.reward-kicker{font-size:11px}.wipe-hint{font-size:15px}.wipe-copy .eyebrow{font-size:11px}}@media(prefers-reduced-motion:reduce){.clean .wipe-reward,.clean .reward-cat,.clean .reward-ghost{animation:none!important}#fog-canvas{transition:none!important}}
#fog-canvas,#fog-canvas:active{cursor:url("assets/cloth-cursor.svg") 32 32,auto}.clean #fog-canvas{cursor:default}.wipe-reward>h3,.wipe-reward>p,.wipe-reward>.reward-kicker,.wipe-reward>.lucky-number{visibility:hidden;opacity:0;transition:opacity .45s}.clean .wipe-reward>h3,.clean .wipe-reward>p,.clean .wipe-reward>.reward-kicker,.clean .wipe-reward>.lucky-number{visibility:visible;opacity:1}.started .wipe-hint{display:none}.reward-dollar{display:block;width:43%;height:59%;object-fit:cover;object-position:50% 42%;border-radius:18px;border:5px solid #fff;box-shadow:0 7px 0 #9ab4a366;transform:rotate(-3deg)}.reward-drink{font-size:clamp(50px,5vw,85px);line-height:1.3}.clean .reward-dollar{animation:reveal-joy .65s cubic-bezier(.16,1,.3,1)}@media(max-width:520px){.reward-dollar{width:40%;height:55%;border-width:3px;border-radius:12px}.reward-drink{font-size:50px}.wipe-reward h3{max-width:100%;font-size:17px}}@media(prefers-reduced-motion:reduce){.clean .reward-dollar{animation:none!important}}

.glass-surface:not(.clean) .wipe-reward>*{visibility:hidden!important;opacity:0!important}
/* A different motion language for each chapter. */
.motion-enabled .hero-art .art-back{translate:var(--look-x,0px) var(--look-y,0px);transition:translate .3s ease-out}.motion-enabled .hero-stamp{translate:calc(var(--look-x,0px)*-.5) calc(var(--look-y,0px)*-.5);transition:translate .25s}.hero-copy .primary,.resume a{translate:var(--mag-x,0px) var(--mag-y,0px);transition:translate .2s,background .25s,border-color .25s}.hero-copy .primary span{transition:rotate .35s}.hero-copy .primary:hover span{rotate:90deg}.motion-enabled .project-scene.motion-arrived .scene-copy>*{animation:chapter-copy .85s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--step)*65ms)}.motion-enabled .project-scene.motion-arrived .scene-visual{animation-duration:1.25s;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:backwards}.motion-enabled [data-entrance=curtain].motion-arrived .scene-visual{animation-name:scene-curtain}.motion-enabled [data-entrance=depth].motion-arrived .scene-visual{animation-name:scene-depth}.motion-enabled [data-entrance=slant].motion-arrived .scene-visual{animation-name:scene-slant}.motion-enabled [data-entrance=iris].motion-arrived .scene-visual{animation-name:scene-iris}.motion-enabled .motion-arrived .scene-layer{animation:layer-fan 1.3s cubic-bezier(.16,1,.3,1) backwards;animation-delay:.2s}.scene-visual:after{content:'';position:absolute;inset:8%;pointer-events:none;background:linear-gradient(115deg,transparent 30%,#ffffff12 48%,transparent 60%);opacity:0;transform:translateX(-40%);clip-path:inset(0)}.motion-enabled .scene-visual:hover:after{animation:art-light .85s ease-out}.scene-open span{display:inline-block;transition:rotate .4s}.scene-open:hover span{rotate:180deg}.scene-orbit{transition:border-color .4s}.scene-visual:hover .scene-orbit{border-color:#c3fa6080}.motion-enabled .artwork.motion-arrived{animation:tile-open .6s cubic-bezier(.16,1,.3,1) backwards;animation-delay:var(--tile-delay)}.artwork img{transition:scale .3s,background .3s}.artwork:hover img{scale:1.025}.archive-drawer[open] .archive-inside{animation:drawer-open .55s ease-out}.experience{position:relative;padding-left:26px}.experience:before{content:'';position:absolute;left:0;top:0;bottom:0;width:1px;background:linear-gradient(var(--purple),#c3fa6040,transparent)}.experience article{position:relative}.experience article:before{content:'';position:absolute;left:-30px;top:25px;width:9px;height:9px;border:1px solid var(--purple);border-radius:50%;background:var(--bg);box-shadow:0 0 0 5px var(--bg)}.experience article:first-child:before{top:4px}.motion-enabled .experience article.motion-arrived:before{animation:timeline-dot .9s ease-out}.motion-enabled .skills.motion-arrived span{animation:skill-pop .55s cubic-bezier(.2,1.6,.5,1) backwards}.skills span:nth-child(3n+2){animation-delay:.12s!important}.skills span:nth-child(3n){animation-delay:.24s!important}.skills span{transition:background .25s,border-color .25s,translate .25s}.skills span:hover{translate:0 -4px;border-color:var(--purple);background:#ae91ff12}.sound-stage:before{content:'';position:absolute;width:55vw;height:55vw;min-width:300px;min-height:300px;left:50%;top:18%;border:1px solid #ae91ff12;border-radius:50%;box-shadow:0 0 0 45px #ae91ff06,0 0 0 90px #ae91ff03;translate:-50% -50%;pointer-events:none}.motion-enabled .sound-stage.ambient-active:before{animation:sound-aura 7s ease-in-out infinite}.sound-heading,.sound-reels,.sound-credit{position:relative;z-index:1}.sound-reel .play-disc:after{content:'';position:absolute;inset:-8px;border:1px solid #ffffff50;border-radius:50%;opacity:0}.motion-enabled .sound-reel:hover .play-disc:after{animation:play-ring 1.8s ease-out infinite}.reel-number{transition:letter-spacing .3s}.sound-reel:hover .reel-number{letter-spacing:3px}.resume a{position:relative;overflow:hidden}.resume a:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#fff2 48%,transparent 66%);translate:-120% 0;pointer-events:none}.motion-enabled .resume a:hover:after{animation:document-sheen .7s ease-out}.motion-enabled .wipe-window.motion-arrived{animation:window-unfold .85s cubic-bezier(.16,1,.3,1) backwards}.wipe-window{transition:border-color .4s,box-shadow .4s}.wipe-window:hover{border-color:#bca2e3;box-shadow:12px 12px 0 #08070b,0 0 45px #ae91ff13}.motion-enabled footer.motion-arrived h2 span{animation:footer-color 1.2s ease-out backwards;animation-delay:.2s}.contact-direct a{position:relative}.contact-direct a:after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .4s}.contact-direct a:hover:after{transform:scaleX(1)}dialog[open]{animation:dialog-enter .35s cubic-bezier(.16,1,.3,1)}dialog[open]::backdrop{animation:backdrop-enter .25s ease-out}.click-bloom{position:fixed;width:12px;height:12px;margin:-6px;pointer-events:none;border:1px solid #c3fa6099;border-radius:50%;z-index:99;animation:click-bloom .65s ease-out forwards}@keyframes chapter-copy{from{opacity:0;translate:0 28px}to{opacity:1;translate:0 0}}@keyframes scene-curtain{from{clip-path:inset(0 100% 0 0);opacity:.5}to{clip-path:inset(0);opacity:1}}@keyframes scene-depth{from{opacity:0;transform:perspective(1000px) rotateX(9deg) scale(.86)}to{opacity:1;transform:perspective(1000px) rotateX(0) scale(1)}}@keyframes scene-slant{from{opacity:0;translate:45px 30px;rotate:4deg}to{opacity:1;translate:0 0;rotate:0deg}}@keyframes scene-iris{from{clip-path:inset(24% 18% round 35%);opacity:0}to{clip-path:inset(0 round 0);opacity:1}}@keyframes layer-fan{from{opacity:0;translate:-45px 40px;rotate:-15deg}to{opacity:1;translate:0 0;rotate:0deg}}@keyframes art-light{0%{opacity:0;transform:translateX(-35%)}35%{opacity:1}100%{opacity:0;transform:translateX(35%)}}@keyframes tile-open{from{opacity:0;translate:0 20px;scale:.95}to{opacity:1;translate:0 0;scale:1}}@keyframes drawer-open{from{opacity:0;translate:0 -12px}to{opacity:1;translate:0 0}}@keyframes timeline-dot{0%{box-shadow:0 0 0 5px var(--bg),0 0 0 0 #ae91ff70}100%{box-shadow:0 0 0 5px var(--bg),0 0 0 22px #ae91ff00}}@keyframes skill-pop{from{opacity:0;scale:.8;translate:0 8px}to{opacity:1;scale:1;translate:0 0}}@keyframes sound-aura{50%{scale:1.1;opacity:.45}}@keyframes play-ring{0%{scale:.9;opacity:.8}100%{scale:1.5;opacity:0}}@keyframes document-sheen{to{translate:120% 0}}@keyframes window-unfold{from{opacity:0;transform:perspective(1200px) rotateY(-8deg) translateY(35px)}to{opacity:1;transform:perspective(1200px) rotateY(0) translateY(0)}}@keyframes footer-color{from{color:var(--purple);filter:blur(2px)}to{color:var(--lime);filter:blur(0)}}@keyframes dialog-enter{from{opacity:0;translate:0 24px;scale:.97}to{opacity:1;translate:0 0;scale:1}}@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}@keyframes click-bloom{to{scale:7;opacity:0}}@media(max-width:800px){.motion-enabled .project-scene.motion-arrived .scene-visual{animation-duration:.85s}.sound-stage:before{width:90vw;height:90vw}.experience{padding-left:22px}.experience article:before{left:-26px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.hero-copy .primary,.resume a{translate:none!important}.scene-visual{clip-path:none!important;transform:none!important}.click-bloom{display:none}}
