@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff")}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/sora-latin-600-normal-Cdg4DaK0.woff2)format("woff2"),url(/assets/sora-latin-600-normal-1_7fyUAY.woff)format("woff")}:root{--pointz-amber:#f2b84b;--pointz-champagne:#ffdfa3;--pointz-blue:#7895ff;--project-accent:#f7b51d;--scene-warm:#f7b51d;--scene-cool:#7895ff;--scene-background:#07090d;--accent:var(--pointz-amber);--ink:#07090d;--surface:#12161d;--cream:#f4f1e9;--muted:#aeb5c0;--muted-strong:#d0d5dc;--line:#f4f1e933;--font-display:"Sora", "Inter", sans-serif;--font-body:"Inter", "Helvetica Neue", Arial, sans-serif;--ease:cubic-bezier(.16, 1, .3, 1);--ease-emphasis:cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html{background:var(--ink)}body{background:var(--ink);min-width:320px;color:var(--cream);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow:hidden}button,a{font:inherit;color:inherit}img{max-width:100%;display:block}::selection{background:var(--pointz-amber);color:#07090d}:focus-visible{outline:2px solid var(--pointz-champagne);outline-offset:4px}.skip-link{z-index:1000;color:#07090d;background:var(--pointz-amber);border-radius:0 0 8px 8px;padding:11px 16px;transition:transform .2s;position:fixed;top:0;left:18px;transform:translateY(-110%)}.skip-link:focus{transform:translateY(0)}.experience{width:100%;height:100vh;isolation:isolate;background:var(--scene-background);touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;height:100svh;min-height:560px;transition:background-color 1.1s var(--ease);position:relative;overflow:hidden}body.is-dragging .experience{cursor:grabbing}.experience:before,.experience:after{content:"";z-index:1;aspect-ratio:1;pointer-events:none;will-change:transform, opacity;border-radius:50%;width:min(64vw,980px);position:absolute}.experience:before{opacity:.17;background:radial-gradient(circle, color-mix(in srgb, var(--scene-warm) 58%, transparent), color-mix(in srgb, var(--scene-warm) 8%, transparent) 42%, transparent 70%);animation:ambient-warmth 18s var(--ease-emphasis) infinite alternate;top:-52%;left:-22%}.experience:after{opacity:.16;background:radial-gradient(circle, color-mix(in srgb, var(--scene-cool) 68%, var(--project-accent)), transparent 68%);animation:ambient-depth 22s var(--ease-emphasis) infinite alternate;transition:background 1.1s var(--ease);bottom:-58%;right:-25%}#scene-canvas{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.cinematic-vignette,.grain{z-index:2;pointer-events:none;position:absolute;inset:0}.cinematic-vignette{background:linear-gradient(90deg,#04060a94 0%,#04060a61 24%,#04060a0f 48%,#0000 64%,#04060a1a 82%,#04060a47 100%),linear-gradient(#0203067a 0%,#0000 24% 70%,#020306c7 100%),radial-gradient(circle at 67% 45%,#0000 0 34%,#00000014 62%,#0000007a 100%)}.grain{z-index:3;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E")}.topbar{z-index:30;justify-content:space-between;align-items:center;gap:28px;padding:28px clamp(24px,5vw,76px);display:flex;position:absolute;top:0;left:0;right:0}.top-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.topbar>*{opacity:0}body.is-ready .topbar>*{animation:ui-enter .85s var(--ease) both}body.is-ready .topbar>:nth-child(2){animation-delay:80ms}body.is-ready .topbar>:nth-child(3){animation-delay:.16s}.brand{color:var(--pointz-champagne);font-family:var(--font-display);letter-spacing:.38em;text-shadow:0 0 24px #f2b84b47;transition:color .25s ease, letter-spacing .5s var(--ease), text-shadow .4s ease;font-size:18px;font-weight:600;text-decoration:none}.brand:hover{color:#fff4d8;letter-spacing:.44em;text-shadow:0 0 34px #f2b84b80}.top-copy{color:var(--muted);letter-spacing:.24em;text-align:center;flex:1;margin:0;font-size:9px;font-weight:500}.world-caption{z-index:8;color:var(--muted);text-align:right;pointer-events:none;opacity:0;flex-direction:column;align-items:flex-end;gap:5px;margin:0;transition:color .8s;display:flex;position:absolute;top:105px;right:clamp(105px,10vw,160px)}body.is-ready .world-caption{animation:ui-enter .85s var(--ease) .2s both}.world-caption span{letter-spacing:.24em;font-size:8px;font-weight:600}.world-caption strong{color:color-mix(in srgb, var(--scene-warm) 68%, var(--cream));font-family:var(--font-display);letter-spacing:.16em;text-shadow:0 0 24px color-mix(in srgb, var(--scene-warm) 38%, transparent);font-size:10px;font-weight:600;transition:color .8s,text-shadow .8s}.depth-button{--rx:0deg;--ry:0deg;--lift:0px;--glint-x:50%;isolation:isolate;transform:perspective(700px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(var(--lift));transform-style:preserve-3d;transition:transform .34s var(--ease), color .25s ease, border-color .34s ease, background .34s ease, box-shadow .42s var(--ease);will-change:transform;position:relative;overflow:hidden}.depth-button:before{content:"";border-radius:inherit;opacity:0;pointer-events:none;z-index:-1;background:radial-gradient(circle at var(--glint-x) 18%, #ffffff61, transparent 38%);transition:opacity .25s;position:absolute;inset:1px}.depth-button:after{content:"";z-index:-1;pointer-events:none;width:26%;transition:transform .72s var(--ease);background:linear-gradient(90deg,#0000,#ffffff6b,#0000);position:absolute;top:-60%;bottom:-60%;left:-42%;transform:skew(-18deg)translate(-240%)}.depth-button:hover{--lift:-3px}.depth-button:hover:before{opacity:.7}.depth-button:hover:after{transform:skew(-18deg)translate(680%)}.depth-button:active{--lift:1px}.depth-button.is-pressed{transform:perspective(700px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(1px) scale(.975)}.contact-link{min-height:42px;color:var(--cream);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);letter-spacing:.14em;background:#090b1094;border:1px solid #ffdfa357;border-radius:999px;align-items:center;gap:10px;padding:10px 16px;font-size:10px;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 12px 35px #00000047,inset 0 1px #ffffff0f}.contact-link:hover{color:#07090d;border-color:var(--pointz-champagne);background:var(--pointz-amber);box-shadow:0 13px 40px #f2b84b47,0 0 0 1px #ffdfa31f}.project-content{z-index:10;pointer-events:none;position:absolute;inset:0}.project-copy{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .48s var(--ease-emphasis), visibility 0s linear .82s;position:absolute;inset:0}.project-copy.is-active{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}.project-copy.is-active.is-pending{pointer-events:none}.project-text{z-index:2;isolation:isolate;width:min(460px,33vw);transition:opacity .54s var(--ease), transform .82s var(--ease), filter .62s ease;position:absolute;top:50%;left:clamp(84px,8.2vw,132px);transform:translateY(-44%)}.project-text:before{content:"";z-index:-1;pointer-events:none;filter:blur(12px);background:radial-gradient(at 38%,#04060ac2 0%,#04060a8a 34%,#04060a24 62%,#0000 76%);border-radius:50%;position:absolute;inset:-78px -110px -78px -92px}.project-copy:not(.is-active) .project-text{opacity:0;filter:blur(9px);transform:translate(52px,-44%)}.project-copy.enter-from-left .project-text{transform:translate(-52px,-44%)}.project-copy.is-leaving-left .project-text{transform:translate(-40px,-44%)}.project-copy.is-leaving-right .project-text{transform:translate(40px,-44%)}.project-copy.is-pending .project-text{opacity:0;filter:blur(8px);transform:translate(44px,-44%)}.project-copy.is-pending.enter-from-left .project-text{transform:translate(-44px,-44%)}.project-text>*{opacity:0;transition:opacity .56s var(--ease), transform .72s var(--ease);transform:translateY(18px)}body.is-ready .project-copy.is-active .project-text>*{opacity:1;transform:translateY(0)}body.is-ready .project-copy.is-active.is-pending .project-text>*{opacity:0;transform:translateY(18px)}body.is-ready .project-copy.is-active .project-number{transition-delay:40ms}body.is-ready .project-copy.is-active .project-status{transition-delay:80ms}body.is-ready .project-copy.is-active h2{transition-delay:.12s}body.is-ready .project-copy.is-active .description{transition-delay:.17s}body.is-ready .project-copy.is-active .case-study{transition-delay:.22s}body.is-ready .project-copy.is-active .visit{transition-delay:.28s}.project-number{color:var(--pointz-champagne);font-family:var(--font-display);letter-spacing:.28em;text-transform:uppercase;text-shadow:0 0 22px #f2b84b6b;margin:0 0 9px;font-size:10px;font-weight:600}.project-status{border:1px solid color-mix(in srgb, var(--project-accent) 40%, transparent);min-height:22px;color:color-mix(in srgb, var(--project-accent) 68%, var(--cream));background:color-mix(in srgb, var(--project-accent) 9%, #07090dad);letter-spacing:.11em;text-transform:uppercase;border-radius:999px;align-items:center;margin:0 0 15px;padding:4px 9px;font-size:8px;font-weight:600;display:inline-flex}.project-copy h2{max-width:10ch;color:var(--cream);font:600 clamp(48px, 4.7vw, 78px)/.94 var(--font-display);letter-spacing:-.06em;text-wrap:balance;text-shadow:0 14px 48px #000000c2, 0 0 34px color-mix(in srgb, var(--project-accent) 18%, transparent);margin:0 0 16px}.description{max-width:42ch;color:var(--muted-strong);text-shadow:0 5px 22px #000c;margin:0 0 15px;font-size:clamp(14px,1.08vw,17px);line-height:1.65}.case-study{max-width:44ch;margin:0 0 19px}.case-facts{margin:0;padding:0}.case-facts>div{border-left:1px solid color-mix(in srgb, var(--project-accent) 56%, transparent);grid-template-columns:77px minmax(0,1fr);gap:12px;padding:6px 0 6px 13px;display:grid}.case-facts dt{color:color-mix(in srgb, var(--project-accent) 65%, var(--cream));font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;font-size:8px;font-weight:600;line-height:1.55}.case-facts dd{color:#c8cdd5;text-shadow:0 4px 18px #000000b8;margin:0;font-size:11px;line-height:1.42}.case-more{margin-top:3px}.case-more summary{min-height:31px;color:var(--muted);cursor:pointer;font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:3px 1px 3px 13px;font-size:8px;font-weight:600;list-style:none;display:flex}.case-more summary::-webkit-details-marker{display:none}.case-more summary span{color:var(--pointz-champagne);transition:transform .35s var(--ease);font-size:15px;font-weight:400}.case-more[open] summary span{transform:rotate(45deg)}.case-extra{padding-top:1px}.case-more summary:hover{color:var(--cream)}.visit{min-height:46px;color:var(--cream);-webkit-backdrop-filter:blur(11px);backdrop-filter:blur(11px);letter-spacing:.13em;background:linear-gradient(135deg,#12161dd1,#07090dad);border:1px solid #ffdfa394;border-radius:999px;align-items:center;gap:15px;padding:12px 19px;font-size:10px;font-weight:700;text-decoration:none;display:inline-flex;box-shadow:0 17px 42px #0000005c,inset 0 1px #ffffff14,0 0 0 1px #f2b84b0a}.visit>span{transition:transform .38s var(--ease);font-size:18px;font-weight:400;line-height:0;transform:translateZ(16px)}.visit:hover{color:#07090d;border-color:var(--pointz-champagne);background:var(--pointz-amber);box-shadow:0 18px 46px #f2b84b47}.visit:hover>span{transform:translate3d(3px,-3px,16px)rotate(4deg)}.fallback-preview{display:none}.finale-copy{z-index:4;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .65s var(--ease), visibility 0s linear .9s;place-items:center;padding:116px 80px 105px;display:grid;position:absolute;inset:0}.finale-copy.is-active{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s}.finale-panel{text-align:center;background:linear-gradient(145deg, #14171ec2, #06080c75), radial-gradient(circle at 50% 0, color-mix(in srgb, var(--scene-warm) 15%, transparent), transparent 58%);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);width:min(770px,72vw);transition:opacity .68s var(--ease), transform .9s var(--ease), filter .7s ease;border:1px solid #ffdfa33d;border-radius:30px;padding:54px 62px 52px;position:relative;transform:translateY(0)scale(1);box-shadow:0 38px 110px #00000094,inset 0 1px #ffffff1a,0 0 80px #f2b84b12}.finale-copy.is-pending .finale-panel{opacity:0;filter:blur(10px);transform:translateY(34px)scale(.965)}.finale-copy.is-leaving-left .finale-panel,.finale-copy.is-leaving-right .finale-panel{opacity:0;filter:blur(8px);transform:translateY(-18px)scale(.98)}.finale-eyebrow{color:var(--pointz-champagne);font-family:var(--font-display);letter-spacing:.3em;margin:0 0 17px;font-size:9px;font-weight:600}.finale-panel h2{max-width:12ch;color:var(--cream);font:600 clamp(42px, 5vw, 72px)/.98 var(--font-display);letter-spacing:-.06em;text-wrap:balance;text-shadow:0 18px 50px #0000009e,0 0 40px #f2b84b1f;margin:0 auto 21px}.finale-description{max-width:59ch;color:var(--muted-strong);margin:0 auto 21px;font-size:14px;line-height:1.65}.finale-skills{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 auto 28px;font-size:9px;font-weight:600;display:flex}.finale-skills span{color:var(--pointz-amber)}.finale-actions{justify-content:center;gap:10px;display:flex}.finale-primary,.finale-replay{letter-spacing:.1em;cursor:pointer;border:1px solid #ffdfa375;border-radius:999px;justify-content:center;align-items:center;gap:11px;min-height:48px;padding:12px 19px;font-size:10px;font-weight:700;text-decoration:none;display:inline-flex}.finale-primary{color:#080a0e;border-color:var(--pointz-champagne);background:linear-gradient(135deg, var(--pointz-champagne), var(--pointz-amber));box-shadow:0 18px 44px #f2b84b38}.finale-replay{color:var(--cream);background:#07090d9e}.finale-replay:hover{border-color:var(--pointz-champagne);background:#f2b84b1a}body.is-finale .counter{opacity:.42}.counter{z-index:26;color:var(--muted);font-family:var(--font-display);letter-spacing:.18em;opacity:0;align-items:baseline;gap:8px;font-size:10px;font-weight:500;display:flex;position:absolute;top:102px;right:clamp(24px,5vw,76px)}.counter strong{color:var(--cream);font:600 30px/1 var(--font-display);letter-spacing:-.05em;display:inline-block}body.is-ready .counter{animation:ui-enter .8s var(--ease) .22s both}.counter.is-updating strong{animation:counter-roll .7s var(--ease)}.project-navigation{z-index:35;pointer-events:none;position:absolute;inset:0}.arrow{width:54px;height:54px;color:var(--cream);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;pointer-events:auto;opacity:0;background:#0a0d129e;border:1px solid #ffdfa357;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:50%;box-shadow:0 15px 42px #0006,inset 0 1px #ffffff14}body.is-ready .arrow{animation:control-enter .82s var(--ease) .28s both}body.is-ready .arrow-next{animation-delay:.34s}.arrow:hover{color:#07090d;border-color:var(--pointz-champagne);background:var(--pointz-amber);box-shadow:0 16px 44px #f2b84b42}.arrow svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;width:21px;height:21px;transition:transform .38s var(--ease)}.arrow-copy{min-width:116px;color:var(--cream);opacity:0;pointer-events:none;transition:opacity .3s ease, transform .42s var(--ease);background:#07090ddb;border:1px solid #ffdfa338;border-radius:12px;flex-direction:column;gap:3px;padding:9px 12px;display:flex;position:absolute;top:50%;transform:translateY(-50%)scale(.92);box-shadow:0 14px 35px #0000006b,inset 0 1px #ffffff0f}.arrow-prev .arrow-copy{text-align:left;transform-origin:0;align-items:flex-start;left:calc(100% + 11px)}.arrow-next .arrow-copy{text-align:right;transform-origin:100%;align-items:flex-end;right:calc(100% + 11px)}.arrow:hover .arrow-copy,.arrow:focus-visible .arrow-copy{opacity:1;transform:translateY(-50%)scale(1)}.arrow-copy small{color:var(--pointz-champagne);letter-spacing:.15em;font-size:7px;font-weight:600}.arrow-copy strong{letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;max-width:16ch;font-size:10px;font-weight:600;overflow:hidden}.arrow-prev:hover svg{transform:translate(-3px)}.arrow-next:hover svg{transform:translate(3px)}.arrow-prev{left:clamp(18px,2.4vw,42px)}.arrow-next{right:clamp(18px,2.4vw,42px)}.dots{pointer-events:auto;opacity:0;align-items:center;gap:0;display:flex;position:absolute;bottom:29px;left:50%;transform:translate(-50%)}body.is-ready .dots{animation:dots-enter .82s var(--ease) .4s both}.dot-button{cursor:pointer;width:44px;height:44px;transition:width .48s var(--ease), flex-basis .48s var(--ease), transform .3s var(--ease);background:0 0;border:0;flex:0 0 44px;place-items:center;padding:0;display:grid;position:relative;transform:translateY(0)}.dot-button:hover{transform:translateY(-3px)}.dot-button:focus-visible{outline:0}.dot-button:focus-visible .dot-core{outline:2px solid var(--pointz-champagne);outline-offset:3px}.dot-core{width:5px;height:5px;transition:width .48s var(--ease), height .34s var(--ease), gap .4s var(--ease), padding .44s var(--ease), border-radius .42s var(--ease), color .4s ease, background .42s ease, box-shadow .42s ease, transform .32s var(--ease);background:#89919e;border-radius:50%;justify-content:center;align-items:center;gap:0;display:flex;position:relative;overflow:hidden}.dot-button:hover .dot-core{background:var(--muted-strong);transform:scale(1.16)}.dot-button.is-active{flex-basis:102px;width:102px}.dot-button.is-active .dot-core{color:#080a0e;background:linear-gradient(135deg, var(--pointz-champagne), var(--pointz-amber));border-radius:999px;gap:7px;width:92px;height:27px;padding:0 11px;transform:scale(1);box-shadow:0 7px 24px #f2b84b47,0 0 16px #f2b84b47}.dot-number,.dot-name{opacity:0;max-width:0;font-family:var(--font-display);letter-spacing:.09em;white-space:nowrap;transition:max-width .46s var(--ease), opacity .3s ease;font-size:7px;font-weight:600;overflow:hidden}.dot-name{text-overflow:ellipsis}.dot-button.is-active .dot-number{opacity:.68;max-width:18px}.dot-button.is-active .dot-name{opacity:1;max-width:58px}.dot-tooltip{max-width:160px;color:var(--cream);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .22s ease, transform .3s var(--ease);background:#07090deb;border:1px solid #ffdfa333;border-radius:8px;padding:7px 9px;font-size:9px;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%,5px);box-shadow:0 12px 30px #0006}.dot-button:not(.is-active):hover .dot-tooltip{opacity:1;transform:translate(-50%)}.nav-hint{z-index:24;color:var(--muted);font-family:var(--font-display);letter-spacing:.22em;text-transform:uppercase;opacity:0;transition:opacity .45s ease, transform .45s var(--ease);margin:0;font-size:8px;font-weight:500;position:absolute;bottom:33px;left:clamp(24px,5vw,76px)}body.is-ready .nav-hint{animation:ui-enter .8s var(--ease) .46s both}body.has-interacted .nav-hint{opacity:0;animation:none;transform:translateY(8px)}.hint-touch{display:none}.progress{z-index:36;opacity:0;background:#ffffff1f;height:3px;position:absolute;bottom:0;left:0;right:0}body.is-ready .progress{animation:progress-enter .85s var(--ease) .5s both}.progress span{background:linear-gradient(90deg, #c9881e, var(--pointz-amber), var(--pointz-champagne));width:12.5%;height:100%;transition:width .78s var(--ease);display:block;position:relative;box-shadow:0 0 18px #f2b84b9e}.progress span:after{content:"";background:var(--pointz-champagne);width:7px;height:7px;box-shadow:0 0 17px var(--pointz-amber);border-radius:50%;position:absolute;top:50%;right:-3px;transform:translateY(-50%)}.progress span.is-updating:after{animation:progress-pulse .72s var(--ease)}.loading-screen{z-index:100;text-align:center;background:radial-gradient(circle at 50% 45%, #f2b84b14, transparent 31%), var(--ink);transition:opacity .7s var(--ease), visibility 0s linear .75s;place-content:center;gap:18px;display:grid;position:absolute;inset:0}.loading-mark{color:var(--pointz-champagne);font:700 76px/1 var(--font-display);letter-spacing:-.08em;text-shadow:0 0 36px #f2b84b6b;animation:1.8s ease-in-out infinite loading-float}.loading-screen span{color:var(--muted);font-family:var(--font-display);letter-spacing:.28em;font-size:9px;font-weight:500}body.is-ready .loading-screen{opacity:0;visibility:hidden}body.is-loading .project-content,body.is-loading .counter,body.is-loading .project-navigation,body.is-loading .nav-hint,body.is-loading .progress{visibility:hidden}body.is-loading .project-copy{display:none}@keyframes loading-float{50%{transform:translateY(-7px)rotateY(12deg)}}@keyframes ambient-warmth{0%{opacity:.12;transform:translate(-2%,-1%)scale(.92)}50%{opacity:.2;transform:translate(5%,6%)scale(1.06)}to{opacity:.15;transform:translate(9%,2%)scale(.98)}}@keyframes ambient-depth{0%{opacity:.1;transform:translateY(4%)scale(.94)}50%{opacity:.19;transform:translate(-7%,-4%)scale(1.08)}to{opacity:.13;transform:translate(-3%,-8%)scale(1)}}@keyframes ui-enter{0%{opacity:0;filter:blur(5px);transform:translateY(16px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes control-enter{0%{opacity:0;transform:perspective(700px)translateY(15px)scale(.88)}to{opacity:1;transform:perspective(700px)translateY(0)scale(1)}}@keyframes dots-enter{0%{opacity:0;transform:translate(-50%,13px)}to{opacity:1;transform:translate(-50%)}}@keyframes progress-enter{0%{opacity:0;transform-origin:0;transform:scaleX(.2)}to{opacity:1;transform-origin:0;transform:scaleX(1)}}@keyframes counter-roll{0%{opacity:1;transform:translateY(0)}36%{opacity:0;transform:translateY(-11px)}37%{opacity:0;transform:translateY(11px)}to{opacity:1;transform:translateY(0)}}@keyframes progress-pulse{0%,to{transform:translateY(-50%)scale(1)}45%{box-shadow:0 0 25px var(--pointz-champagne);transform:translateY(-50%)scale(1.9)}}.perf-hud{z-index:200;color:#bdf6ce;white-space:pre;background:#000000c2;border:1px solid #ffffff2e;border-radius:8px;padding:8px 10px;font:11px/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;position:fixed;bottom:12px;right:12px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.noscript-message{z-index:500;color:#fff;background:#171717;border:1px solid #555;padding:16px;position:fixed;inset:auto 20px 20px}body.fallback-mode #scene-canvas,body.fallback-mode .loading-screen{display:none}body.fallback-mode .cinematic-vignette{background:linear-gradient(#04060a47,#04060af5),linear-gradient(90deg,#04060adb,#0000)}body[data-quality=fallback] .experience:before,body[data-quality=fallback] .experience:after{animation:none}body.fallback-mode .project-copy{padding:110px 7vw 100px}body.fallback-mode .project-copy:not(.is-active) .fallback-preview{display:none}body.fallback-mode .project-copy.is-active{grid-template-columns:minmax(280px,.72fr) minmax(500px,1.28fr);align-items:center;gap:7vw;display:grid}body.fallback-mode .project-text{width:100%;position:relative;top:auto;left:auto;transform:none}body.fallback-mode .fallback-preview{background:var(--surface);width:100%;box-shadow:0 34px 95px #000000bd, 0 0 48px color-mix(in srgb, var(--project-accent) 16%, transparent), inset 0 1px #ffffff14;border:1px solid #ffdfa370;border-radius:20px;grid-column:2;display:block}body.fallback-mode .project-text{grid-area:1/1}@media (max-width:1050px){.project-text{width:min(360px,34vw);left:82px}.project-copy h2{font-size:clamp(42px,5.7vw,64px)}}@media (min-width:801px) and (orientation:landscape){body:not(.fallback-mode) .world-caption,body:not(.fallback-mode) .project-status,body:not(.fallback-mode) .case-study,body:not(.fallback-mode) .arrow-copy,body:not(.fallback-mode) .dot-number,body:not(.fallback-mode) .dot-name,body:not(.fallback-mode) .dot-tooltip{display:none}body:not(.fallback-mode) .project-text{width:min(430px,31vw);left:clamp(84px,9.8vw,158px)}body:not(.fallback-mode) .project-text:before{background:radial-gradient(at 38%,#04060ad6 0%,#04060a9e 34%,#04060a2e 62%,#0000 76%)}body:not(.fallback-mode) .project-number{margin-bottom:20px}body:not(.fallback-mode) .project-copy h2{margin-bottom:24px;font-size:clamp(44px,4.7vw,78px)}body:not(.fallback-mode) .description{margin-bottom:31px}body:not(.fallback-mode) .dots{gap:2px}body:not(.fallback-mode) .dot-button,body:not(.fallback-mode) .dot-button.is-active{flex-basis:30px;width:30px;height:32px}body:not(.fallback-mode) .dot-core,body:not(.fallback-mode) .dot-button.is-active .dot-core{color:#0000;width:5px;height:5px;box-shadow:none;background:#89919e;border-radius:50%;gap:0;padding:0}body:not(.fallback-mode) .dot-button.is-active .dot-core{background:var(--pointz-amber);border-radius:999px;width:20px;height:4px;box-shadow:0 0 16px #f2b84ba6}}@media (min-width:801px) and (max-width:1050px) and (orientation:portrait){.project-text{width:min(460px,100% - 164px);top:auto;bottom:104px;left:82px;transform:none}.project-copy:not(.is-active) .project-text,.project-copy.is-pending .project-text{transform:translate(42px)}.project-copy.enter-from-left .project-text,.project-copy.is-pending.enter-from-left .project-text{transform:translate(-42px)}.project-copy.is-leaving-left .project-text{transform:translate(-35px)}.project-copy.is-leaving-right .project-text{transform:translate(35px)}.project-copy h2{max-width:13ch;margin-bottom:13px;font-size:clamp(40px,6vw,58px)}.description{max-width:52ch;margin-bottom:12px;font-size:13px;line-height:1.5}.case-study{max-width:54ch;margin-bottom:15px}.case-more:not([open]){margin-top:1px}.visit{min-height:43px}}@media (max-width:800px){.experience{min-height:0}.topbar{padding:max(16px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) 0 max(18px, env(safe-area-inset-left))}.brand{letter-spacing:.32em;font-size:15px}.top-copy{display:none}.top-actions{gap:7px}.contact-link{justify-content:center;width:42px;height:42px;padding:0}.contact-link .contact-text{display:none}.contact-link>span:last-child{font-size:16px}.counter{top:max(72px, calc(env(safe-area-inset-top) + 60px));right:max(18px, env(safe-area-inset-right));font-size:9px}.counter strong{font-size:23px}.world-caption{top:max(75px, calc(env(safe-area-inset-top) + 63px));right:auto;left:max(20px, env(safe-area-inset-left));text-align:left;align-items:flex-start;gap:3px}.world-caption strong{max-width:24ch;font-size:8px}.cinematic-vignette{background:linear-gradient(#04060a61 0%,#04060a14 34%,#04060a7a 64%,#04060ae0 100%),radial-gradient(circle at 50% 31%,#0000 0 28%,#0000001f 62%,#0006 100%)}.project-text{top:auto;bottom:max(126px, calc(env(safe-area-inset-bottom) + 112px));width:calc(100% - 44px);left:22px;transform:none}.project-text:before{filter:blur(8px);border-radius:24px;inset:-10px -12px -14px}.project-copy:not(.is-active) .project-text{transform:translate(32px)}.project-copy.enter-from-left .project-text{transform:translate(-32px)}.project-copy.is-leaving-left .project-text{transform:translate(-26px)}.project-copy.is-leaving-right .project-text{transform:translate(26px)}.project-number{letter-spacing:.21em;margin-bottom:10px;font-size:8px}.project-copy h2{letter-spacing:-.055em;max-width:12ch;margin-bottom:12px;font-size:clamp(31px,8.9vw,43px);line-height:.96}.description{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:44ch;margin-bottom:14px;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.visit{min-height:39px;padding:9px 13px;font-size:9px}.case-study{margin-bottom:12px}.case-facts>div{grid-template-columns:67px minmax(0,1fr);gap:9px;padding-block:4px}.case-facts dt{font-size:7px}.case-facts dd{font-size:10px;line-height:1.35}.case-more:not([open]){margin-bottom:2px}.case-more summary{min-height:28px}.arrow{top:auto;bottom:max(14px, env(safe-area-inset-bottom));width:45px;height:45px}.arrow-prev{left:max(18px, env(safe-area-inset-left))}.arrow-next{right:max(18px, env(safe-area-inset-right))}.arrow-copy{display:none}.dots{bottom:max(68px, calc(env(safe-area-inset-bottom) + 59px));gap:0}.dot-button{flex-basis:36px;width:36px;height:44px}.dot-button.is-active{flex-basis:66px;width:66px}.dot-button.is-active .dot-core{width:60px;height:25px;padding:0 9px}.dot-button.is-active .dot-name{display:none}.dot-button.is-active .dot-number{opacity:1;max-width:20px}.dot-tooltip,.nav-hint{display:none}.finale-copy{padding:94px 22px max(128px, calc(env(safe-area-inset-bottom) + 112px))}.finale-panel{border-radius:22px;width:min(100%,580px);padding:33px 24px 30px}.finale-panel h2{margin-bottom:16px;font-size:clamp(34px,10.5vw,50px)}.finale-description{margin-bottom:16px;font-size:12px;line-height:1.52}.finale-skills{margin-bottom:20px;font-size:8px;line-height:1.45}.finale-actions{flex-direction:column;align-items:stretch}.finale-primary,.finale-replay{width:100%;min-height:44px}body.fallback-mode .project-copy{padding:100px 22px}body.fallback-mode .project-copy.is-active{flex-direction:column;justify-content:center;gap:20px;display:flex}body.fallback-mode .fallback-preview{object-fit:cover;order:-1;width:min(100%,560px);max-height:42vh}body.fallback-mode .project-text{width:100%;bottom:auto;left:auto}}@media (max-height:760px) and (max-width:800px){.counter{top:66px}.world-caption{top:67px}.project-text{bottom:69px}.project-copy h2{font-size:clamp(28px,7.8vw,37px)}.description,.case-study{display:none}.arrow{width:41px;height:41px;bottom:12px}.dots{display:none}.finale-copy{padding-block:78px 70px}.finale-panel{padding-block:23px}.finale-description{display:none}.finale-skills{margin-bottom:14px}}@media (max-height:520px) and (min-width:620px){.experience{min-height:0}.topbar{padding-block:15px}.counter,.world-caption{top:61px}.project-text{width:35vw;left:74px}.project-copy h2{margin-bottom:11px;font-size:clamp(31px,4.9vw,49px)}.description,.case-study,.dots,.nav-hint{display:none}.finale-copy{padding:70px 80px 54px}.finale-panel{width:min(650px,76vw);padding:22px 34px}.finale-panel h2{margin-bottom:12px;font-size:clamp(34px,5vw,52px)}.finale-description{display:none}.finale-skills{margin-bottom:14px}}@media (max-width:360px){.topbar{gap:8px}.brand{letter-spacing:.25em;font-size:13px}.contact-link{width:38px;height:38px;min-height:38px}.project-text{width:calc(100% - 36px);left:18px}.dot-button{flex-basis:32px;width:32px}.dot-button.is-active{flex-basis:58px;width:58px}.dot-button.is-active .dot-core{width:54px}}@media (prefers-reduced-motion:reduce){body:not(.force-3d) *,body:not(.force-3d) :before,body:not(.force-3d) :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}body:not(.force-3d) .depth-button{transform:none!important}}
