:root{--red:#ef1637;--black:#111112;--paper:#f5f1e8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--black);font-family:Arial,'PingFang SC','Microsoft YaHei',sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--red);outline-offset:6px}header{height:100px;display:flex;align-items:center;padding:0 5%;gap:28px;background:var(--paper);border-bottom:2px solid var(--black);position:relative;z-index:30}.brand{font-size:21px;font-weight:900;white-space:nowrap;letter-spacing:-1px}.brand span{color:var(--red)}.brand small{display:block;font-size:8px;letter-spacing:3px;margin-top:6px}nav{display:flex;gap:27px;margin-left:auto;font-size:11px;font-weight:900}nav a{padding:10px 0}nav a.active{color:var(--red);border-bottom:3px solid var(--red)}#motion{border:0;background:none;font-size:9px;letter-spacing:1px}#menu{border:0;color:white;background:var(--black);padding:13px 19px;font-weight:900;font-size:11px;transform:rotate(-3deg)}#menu span{margin-left:15px;font-size:16px}.hero{background:var(--red);min-height:690px;height:calc(100svh - 100px);max-height:1050px;position:relative;overflow:hidden;padding:65px 7% 75px;color:white}.hero:before{content:'';position:absolute;inset:0;background-image:radial-gradient(#0003 1px,transparent 1px);background-size:7px 7px;mask-image:linear-gradient(100deg,transparent 40%,black)}.hero:after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:55px;background:var(--paper);clip-path:polygon(0 80%,100% 0,100% 100%,0 100%)}.eyebrow{display:inline-block;font-size:10px;font-weight:800;letter-spacing:2.5px;border:1px solid currentColor;padding:9px 12px;transform:rotate(-2deg)}.hero-copy{position:relative;z-index:2;width:63%;padding-top:35px}h1{font-size:clamp(75px,8.8vw,145px);font-style:italic;font-weight:1000;letter-spacing:-7px;line-height:.89;margin:22px 0 30px;transform:rotate(-4deg);text-shadow:6px 7px 0 var(--black)}h1 .cut{display:inline-block;background:var(--black);padding:4px 20px 14px;margin-left:-15px;color:var(--paper);clip-path:polygon(2% 10%,100% 0,97% 100%,0 96%)}.hero-copy p{font-size:14px;line-height:1.9;max-width:380px;margin:33px 0;color:#fff}.cta{display:inline-flex;align-items:center;gap:32px;background:var(--paper);color:var(--black);font-size:13px;font-weight:900;padding:19px 28px;box-shadow:6px 6px 0 var(--black);transform:rotate(-3deg);transition:transform .2s,background .2s}.cta:hover{transform:rotate(1deg) scale(1.04);background:var(--black);color:white;box-shadow:6px 6px 0 white}.cta span{font-size:24px}.art{position:absolute;right:-1%;top:5%;width:54%;height:85%;will-change:transform}.art svg{width:100%;height:100%;overflow:visible}.art-tag{position:absolute;right:8%;bottom:24%;background:var(--paper);color:var(--black);padding:10px 20px;font-size:12px;font-weight:900;transform:rotate(12deg);border:3px solid black}.side-note{position:absolute;right:18px;top:38%;writing-mode:vertical-rl;letter-spacing:4px;font-size:9px}.hero-bottom{position:absolute;bottom:65px;left:7%;right:7%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px}.hero-bottom b{font-size:15px}.ticker{background:var(--black);color:var(--paper);padding:20px 0;overflow:hidden;transform:rotate(-2deg);margin-top:-9px;position:relative;z-index:3;white-space:nowrap;font-size:20px;font-weight:900;font-style:italic;letter-spacing:2px}.ticker span{color:var(--red);margin:0 40px}.section{padding:85px 7% 95px}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:35px;gap:20px}.kicker{color:var(--red);font:900 11px Arial;letter-spacing:2px}h2{font-size:clamp(38px,5vw,74px);line-height:1;font-style:italic;font-weight:900;letter-spacing:-3px;margin:12px 0}h2 em{color:var(--red);font-style:inherit}.text-link{font-size:11px;font-weight:900;border-bottom:2px solid;padding-bottom:8px}.projects{display:grid;grid-template-columns:1.2fr 1fr;gap:40px}.project{border:0;padding:0;text-align:left;background:none;color:inherit}.project-visual{height:280px;background:var(--black);position:relative;overflow:hidden;transform:rotate(-2deg);border:5px solid var(--black);transition:transform .25s}.project:nth-child(even) .project-visual{transform:rotate(2deg);margin-top:45px}.project:hover .project-visual{transform:rotate(0) translateY(-5px)}.project-visual svg{width:100%;height:100%}.project h3{font-size:24px;margin:24px 0 12px;letter-spacing:-.8px}.project h3 span{float:right}.meta{font-size:10px;letter-spacing:1.5px;color:#666}.project p{font-size:13px;color:#555;line-height:1.8}.label{position:absolute;top:18px;left:18px;color:white;background:var(--red);padding:7px 10px;font-size:10px;font-weight:800;transform:rotate(-5deg)}.intro{max-width:650px;font-size:17px;line-height:2}.page-title{padding:65px 7% 30px;background:var(--red);color:white}.page-title .kicker{color:var(--black)}.page-title h1{font-size:clamp(64px,10vw,125px);letter-spacing:-4px;margin:30px 0 40px}.about-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:65px}.identity{background:var(--black);color:var(--paper);padding:45px;transform:rotate(-3deg);box-shadow:10px 10px 0 var(--red)}.identity .monogram{font-size:130px;font-weight:900;font-style:italic;letter-spacing:-10px;color:var(--red);line-height:1.2}.identity h3{font-size:27px}.identity p{font-size:13px;line-height:1.8}.tags{display:flex;flex-wrap:wrap;gap:10px;margin:25px 0}.tags span{border:1px solid;padding:8px 12px;font-size:11px}.notes{border-top:2px solid}.note{display:grid;grid-template-columns:110px 1fr 35px;align-items:center;gap:20px;padding:27px 0;border-bottom:1px solid #999;background:none;width:100%;text-align:left;border-left:0;border-right:0;font-size:14px}.note time{font-size:10px;letter-spacing:1px}.note h3{margin:0 0 8px;font-size:20px}.note p{font-size:12px;margin:0;color:#555}.contact-big{font-size:clamp(44px,8vw,100px);font-weight:900;font-style:italic;letter-spacing:-3px;line-height:1.1;margin:0 0 35px}.contact-actions{display:flex;gap:20px;flex-wrap:wrap}.contact-actions button{border:2px solid black;background:var(--black);color:white;padding:18px 25px;font-weight:900;transform:rotate(-2deg)}.contact-actions button:hover{background:var(--red)}.placeholder-note{font-size:12px;color:#666;margin-top:25px}.end-banner{background:var(--red);padding:50px 7%;display:flex;justify-content:space-between;align-items:center;gap:20px}.end-banner h3{font-size:32px;font-style:italic;margin:0}footer{background:var(--black);color:#ddd;padding:28px 5%;display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:1px}footer b{color:var(--red)}#drawer{position:fixed;inset:100px 0 0;z-index:25;background:var(--black);color:white;padding:5vh 12%;overflow-y:auto}#drawer a{display:block;font-size:clamp(38px,7vw,85px);font-style:italic;font-weight:900;width:max-content;max-width:100%;transform:rotate(-4deg);margin:18px 0;padding:0 20px}#drawer a:nth-of-type(even){margin-left:12%;transform:rotate(3deg)}#drawer a:hover{background:var(--red)}#drawer small{font-size:12px;color:var(--red);vertical-align:middle}.drawer-top{font-size:10px;letter-spacing:3px;color:#aaa}.wipe{position:fixed;inset:0;background:var(--black);z-index:100;transform:translateX(-120%) skewX(-15deg);pointer-events:none}.wipe.go{animation:wipe .45s ease-in-out}@keyframes wipe{0%{transform:translateX(-120%) skewX(-15deg)}45%,55%{transform:translateX(0) skewX(-15deg)}100%{transform:translateX(120%) skewX(-15deg)}}.enter .hero-copy{animation:enter .65s .08s both}.enter .art{animation:enter .8s .15s both}@keyframes enter{from{opacity:0;translate:70px 20px}to{opacity:1;translate:0 0}}dialog{max-width:740px;width:calc(100% - 32px);max-height:85svh;border:5px solid black;padding:35px;background:var(--paper);box-shadow:12px 12px 0 var(--red)}dialog::backdrop{background:#000b}#close{display:block;margin-left:auto;border:0;background:black;color:white;padding:12px;font-size:11px;font-weight:900}dialog h2{font-size:40px;letter-spacing:-2px}dialog p{font-size:14px;line-height:2}dialog .project-visual{height:230px;margin:25px 0;transform:none}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:black;color:white;padding:15px 25px;z-index:120;font-size:12px;display:none}.reduced *, .reduced *:before,.reduced *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reduced .art{transform:none!important}@media(min-width:1500px){.hero-copy{width:60%}.hero{padding-top:9vh}}@media(max-width:1000px){nav{display:none}#motion{margin-left:auto}.hero{min-height:650px}.hero-copy{width:72%}h1{font-size:100px}.art{right:-20%;width:70%;opacity:.9}.projects{gap:25px}.project-visual{height:230px}}@media(max-width:600px){header{height:80px;padding:0 5%;gap:12px}.brand{font-size:17px}.brand small{font-size:7px;letter-spacing:2px}#motion{font-size:8px;padding:8px 0}#menu{padding:10px 12px;font-size:10px}#menu span{margin-left:7px}#drawer{top:80px;padding:7vh 7%}.hero{height:calc(100svh - 80px);min-height:700px;max-height:1000px;padding:35px 7% 75px}.eyebrow{font-size:8px}.hero-copy{width:100%;padding-top:15px}h1{font-size:clamp(68px,18vw,106px);letter-spacing:-4px;line-height:.94;margin-top:25px;text-shadow:4px 4px 0 black}h1 .cut{padding:3px 13px 9px;margin-left:-9px}.hero-copy p{font-size:12px;max-width:245px;margin-top:30px}.cta{font-size:11px;padding:14px 20px;gap:25px}.art{width:90%;height:52%;top:43%;right:-32%;opacity:.9}.art-tag{font-size:9px;bottom:14%;right:28%}.side-note{display:none}.hero-bottom{font-size:8px;bottom:60px;align-items:end;line-height:1.8}.hero-bottom>span:last-child{max-width:90px;text-align:right}.ticker{font-size:14px;padding:15px 0}.ticker span{margin:0 20px}.section{padding:60px 7%}.section-head{align-items:start}h2{letter-spacing:-2px}.text-link{font-size:9px;white-space:nowrap;margin-top:20px}.projects{grid-template-columns:1fr;gap:25px}.project-visual{height:230px}.project:nth-child(even) .project-visual{margin-top:5px}.project h3{font-size:22px}.about-grid{grid-template-columns:1fr;gap:45px}.identity{padding:30px}.intro{font-size:15px}.note{grid-template-columns:70px 1fr 20px;gap:12px}.note h3{font-size:16px}.note time{font-size:9px}.note p{line-height:1.6}.end-banner{padding:35px 7%;align-items:start}.end-banner h3{font-size:23px}.end-banner .text-link{margin-top:5px}footer{flex-wrap:wrap;padding:25px 7%;font-size:8px}footer span:nth-child(2){display:none}.page-title{padding:40px 7% 20px}.page-title h1{font-size:70px}.contact-big{font-size:55px}dialog{padding:22px}dialog h2{font-size:30px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.art{transform:none!important}}
/* Original opening sequence: paper, ink, red cuts. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#intro-replay{color:inherit;background:none;border:0;font-size:inherit;letter-spacing:inherit;padding:0;min-height:24px}
#intro{height:100vh;height:100svh;isolation:isolate;align-items:center;overflow:hidden;contain:layout paint}
.intro-panel{position:absolute;inset:-20%;z-index:-1;background:var(--black);will-change:transform;transition:transform .72s cubic-bezier(.76,0,.24,1)}
.intro-panel-left{clip-path:polygon(0 0,74% 0,37% 100%,0 100%)}
.intro-panel-right{clip-path:polygon(74% 0,100% 0,100% 100%,37% 100%)}
.intro-panel-left:before{content:'';position:absolute;inset:0;background:var(--red);clip-path:polygon(0 8%,44% 0,22% 100%,0 100%)}
.intro-panel-left:after{content:'';position:absolute;inset:0;background-image:radial-gradient(#f5f1e855 1px,transparent 1.5px);background-size:8px 8px;clip-path:polygon(0 50%,36% 30%,20% 100%,0 100%)}
.intro-panel-right:before{content:'';position:absolute;inset:0;background:var(--red);clip-path:polygon(92% 0,100% 0,100% 100%,55% 100%)}
.intro-panel-right:after{content:'';position:absolute;inset:0;background:var(--paper);clip-path:polygon(80% 0,82% 0,48% 100%,46% 100%)}
.intro-top,.intro-bottom{position:absolute;left:max(6%,env(safe-area-inset-left));right:max(6%,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:10px;font-weight:900;letter-spacing:2px;z-index:3}
.intro-top{top:max(26px,calc(env(safe-area-inset-top) + 18px))}.intro-bottom{bottom:max(26px,calc(env(safe-area-inset-bottom) + 18px))}.intro-bottom b{font-size:25px;color:var(--red)}
#intro-skip{border:1px solid #f5f1e866;background:var(--black);color:var(--paper);padding:14px 16px;font-size:10px;min-height:44px;letter-spacing:1px;transform:rotate(-3deg)}#intro-skip:hover{background:var(--paper);color:var(--black)}#intro-skip:focus-visible{outline-color:var(--paper)}
.intro-content{width:min(700px,74vw);margin:auto;position:relative;z-index:2;transform:rotate(-4deg);animation:intro-content-in .48s cubic-bezier(.16,1,.3,1) both}
.intro-stamp{display:inline-block;font-size:10px;font-weight:900;letter-spacing:3px;padding:8px 14px;background:var(--paper);color:var(--black);transform:rotate(2deg);margin-bottom:18px;box-shadow:5px 5px 0 var(--red)}
.intro-title{font-family:Arial,sans-serif;font-weight:1000;font-style:italic;font-size:clamp(74px,12vw,155px);line-height:.84;letter-spacing:-7px;position:relative;margin-bottom:42px;user-select:none}
.intro-title>span{display:block;color:var(--paper);text-shadow:5px 5px 0 var(--red)}
.intro-title>strong{display:block;font-size:inherit;color:var(--red);margin-left:14%;position:relative;letter-spacing:-8px}
.intro-star{display:inline-block;font-size:.55em;color:var(--paper);vertical-align:top;transform:rotate(12deg);margin-left:10px;animation:intro-star-turn 2.9s ease-in-out both}
.intro-loading{position:relative}.intro-loading-head{display:flex;justify-content:space-between;align-items:end;gap:14px;margin-bottom:10px}#intro-stage{font-size:11px;letter-spacing:2px;font-weight:900;max-width:65%;line-height:1.7}.intro-count{font-size:74px;font-style:italic;line-height:1;font-weight:900;letter-spacing:-4px;font-variant-numeric:tabular-nums;white-space:nowrap}.intro-count small{font-size:24px;color:var(--red);letter-spacing:0;margin-left:5px}
.intro-track{height:32px;position:relative;border:3px solid var(--paper);background:var(--paper);clip-path:polygon(2% 0,100% 0,98% 100%,0 100%);overflow:hidden;box-shadow:0 0 0 3px var(--black)}
.intro-fill{position:absolute;inset:0;background:var(--red);transform:scaleX(0);transform-origin:left center;will-change:transform}
.intro-fill:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 4px,#11111233 4px 5px)}
.intro-segments{position:absolute;inset:0;background:repeating-linear-gradient(110deg,transparent 0 30px,var(--black) 30px 35px);pointer-events:none}
.intro-caption{display:flex;justify-content:space-between;gap:15px;margin-top:15px;font-size:9px;letter-spacing:1.5px;color:#bbb}.intro-caption span:last-child{color:var(--paper);letter-spacing:1px}
.intro-edge{position:absolute;right:3%;top:34%;font-size:9px;letter-spacing:3px;writing-mode:vertical-rl;color:var(--black);z-index:2}
@keyframes intro-content-in{from{opacity:0;translate:40px 20px}to{opacity:1;translate:0 0}}@keyframes intro-star-turn{0%{transform:rotate(-30deg) scale(.7)}30%{transform:rotate(18deg) scale(1)}100%{transform:rotate(85deg) scale(1)}}
#intro.intro-out{background:transparent;pointer-events:none}.intro-out .intro-panel-left{transform:translate3d(-82%,-8%,0)}.intro-out .intro-panel-right{transform:translate3d(82%,8%,0)}.intro-out .intro-content{animation:intro-content-out .3s ease-in both}.intro-out .intro-top,.intro-out .intro-bottom,.intro-out .intro-edge{opacity:0;transition:opacity .15s}
@keyframes intro-content-out{to{opacity:0;translate:0 -35px}}
.intro-arrival #main .hero-copy,.intro-arrival #main .art{animation:none}
.intro-arrival .hero{animation:arrival-stage .6s cubic-bezier(.16,1,.3,1) both}
.intro-arrival .hero h1{animation:arrival-title .7s .2s cubic-bezier(.16,1,.3,1) both}
.intro-arrival .hero .art{animation:arrival-art .9s .12s cubic-bezier(.16,1,.3,1) both!important}
.intro-arrival .hero .eyebrow,.intro-arrival .hero-copy p,.intro-arrival .hero .cta,.intro-arrival .hero-bottom{animation:arrival-caption .6s .38s ease-out both}
.intro-arrival>header{animation:arrival-nav .6s .42s cubic-bezier(.16,1,.3,1) both}
@keyframes arrival-stage{from{opacity:.5;translate:0 25px}to{opacity:1;translate:0 0}}@keyframes arrival-title{from{opacity:0;translate:-70px 18px;scale:.94}to{opacity:1;translate:0 0;scale:1}}@keyframes arrival-art{from{opacity:0;translate:90px -30px;rotate:-10deg}to{opacity:1;translate:0 0;rotate:0deg}}@keyframes arrival-caption{from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}@keyframes arrival-nav{from{opacity:0;translate:0 -25px}to{opacity:1;translate:0 0}}
#intro.intro-quiet *,#intro.intro-quiet *:before,#intro.intro-quiet *:after{animation:none!important;transition:none!important}
@media(max-width:600px){.intro-content{width:80vw;transform:rotate(-4deg)}.intro-title{font-size:clamp(65px,20vw,110px);letter-spacing:-5px;margin-bottom:40px}.intro-title>strong{letter-spacing:-5px;margin-left:8%}.intro-star{margin-left:5px}.intro-stamp{font-size:8px;letter-spacing:1.7px;padding:8px 10px;margin-bottom:24px}.intro-count{font-size:58px;letter-spacing:-3px}.intro-count small{font-size:21px}#intro-stage{font-size:9px;letter-spacing:1.3px;max-width:59%}.intro-track{height:27px}.intro-caption{font-size:8px;letter-spacing:.7px;line-height:1.7}.intro-caption span:last-child{max-width:44%;text-align:right}.intro-top,.intro-bottom{font-size:8px;letter-spacing:1px}.intro-top{left:7%;right:7%}.intro-bottom{left:7%;right:7%}.intro-bottom>span:first-child{max-width:180px;line-height:1.6}.intro-edge{display:none}#intro-skip{padding:12px;font-size:9px}.intro-panel-right:after{clip-path:polygon(90% 0,93% 0,59% 100%,56% 100%)}#intro-replay{min-height:34px}}
@media(max-height:530px){.intro-content{width:min(520px,65vw)}.intro-title{font-size:72px;margin-bottom:16px}.intro-stamp{margin-bottom:10px}.intro-count{font-size:45px}.intro-track{height:22px}.intro-top,.intro-bottom{font-size:8px}.intro-edge{display:none}.intro-caption{margin-top:8px}}
@media(prefers-reduced-motion:reduce){.intro-arrival .hero .art{animation:none!important}}
/* Polish pass: one rhythm, stable typography, touch-first controls. */
:root{--ease-cut:cubic-bezier(.76,0,.24,1);--ease-enter:cubic-bezier(.16,1,.3,1);--motion-fast:160ms;--motion-small:280ms;--motion-scene:480ms;--safe-top:env(safe-area-inset-top,0px)}
html{overflow-x:clip;scrollbar-gutter:stable}body{overflow-x:clip;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}button,a{touch-action:manipulation}
header{height:calc(100px + var(--safe-top));padding-top:var(--safe-top);padding-left:max(5%,env(safe-area-inset-left));padding-right:max(5%,env(safe-area-inset-right))}
nav a{display:flex;align-items:center;min-height:44px}#menu,#motion,#close{min-height:44px;min-width:44px}#motion{font-size:10px;letter-spacing:.8px;font-weight:700}
#menu{transition:transform var(--motion-fast) var(--ease-enter),background var(--motion-fast)}#menu[aria-expanded=true]{background:var(--red);transform:rotate(2deg)}
h1{line-height:.94;letter-spacing:-.065em;transform:rotate(-3.5deg);text-shadow:5px 6px 0 var(--black)}h1 .cut{padding:2px 18px 12px;clip-path:polygon(2% 9%,100% 0,98% 99%,0 96%)}
.hero{height:calc(100svh - 100px - var(--safe-top));min-height:700px}.hero-copy p{font-size:16px;line-height:1.95;letter-spacing:.025em;max-width:420px}.eyebrow,.kicker{font-size:11px;line-height:1.5}.meta{font-size:11px;line-height:1.6}.hero-bottom{font-size:11px;line-height:1.7}
.art{pointer-events:none}.art svg{filter:drop-shadow(5px 7px 0 #11111244)}.art-tag{border-width:2px;font-size:11px;letter-spacing:.6px;padding:11px 16px}.cta{min-height:54px;gap:35px;padding:17px 28px;font-size:14px;transition:transform var(--motion-fast) var(--ease-enter),background var(--motion-fast),box-shadow var(--motion-fast)}
.text-link{display:inline-flex;align-items:center;min-height:44px;font-size:12px;padding:8px 0;gap:8px}.cta:active{transform:rotate(-1deg) translate(4px,4px) scale(.98);box-shadow:2px 2px 0 var(--black)}#menu:active,.contact-actions button:active{transform:rotate(0) scale(.96)}#motion:active,#close:active,#intro-skip:active{background:var(--red);color:var(--paper)}
.project{border-radius:0;position:relative;padding-bottom:8px}.project-visual{border-width:3px;transform:rotate(-1.5deg);box-shadow:5px 7px 0 #11111212;transition:transform var(--motion-small) var(--ease-enter),box-shadow var(--motion-fast)}.project:nth-child(even) .project-visual{transform:rotate(1.5deg)}.project-visual svg{display:block;object-fit:cover}.project .label{font-size:10px;letter-spacing:1px;line-height:1.4;padding:8px 11px;border:1px solid var(--paper)}.project h3{margin:27px 0 10px;line-height:1.35}.project p{font-size:14px;line-height:1.9;max-width:440px;margin-top:12px}.projects{column-gap:48px;row-gap:40px}.project:active .project-visual{transform:rotate(0) translate(3px,3px) scale(.99);box-shadow:1px 2px 0 #11111222}
.notes{border-top:3px solid var(--black)}.note{transition:background var(--motion-fast),padding var(--motion-fast) var(--ease-enter);border-bottom:1px solid #11111245;padding:29px 0;min-height:100px}.note time{font-size:11px;letter-spacing:.8px;font-weight:700;color:#6c615e;line-height:1.5}.note h3{line-height:1.45;margin-bottom:8px}.note p{font-size:14px;line-height:1.7;color:#625c57}.note>b{color:var(--red);font-size:24px}.note:hover,.note:focus-visible{background:#ef163709}.note:active{background:#ef163719;padding-left:8px}
dialog{padding:38px;overscroll-behavior:contain;scrollbar-gutter:stable}dialog p{font-size:16px;line-height:2.05;letter-spacing:.015em;color:#282526}dialog h2{line-height:1.2;letter-spacing:-1.5px}.contact-actions button{min-height:48px;transition:transform var(--motion-fast) var(--ease-enter),background var(--motion-fast)}
footer{position:relative;border-top:5px solid var(--red);padding-top:32px;padding-bottom:calc(28px + env(safe-area-inset-bottom));align-items:center;line-height:1.7}footer:before{content:'★';position:absolute;top:-18px;left:7%;font-size:23px;color:var(--paper);background:var(--black);padding:0 7px;transform:rotate(-12deg)}footer a,#intro-replay{display:inline-flex;align-items:center;min-height:44px}#intro-replay{font-weight:700;cursor:pointer}footer a:hover,#intro-replay:hover{color:var(--red)}
/* Menu acts as a paper stage with interruptible close/open directions. */
#drawer{top:calc(100px + var(--safe-top));padding-bottom:calc(40px + env(safe-area-inset-bottom));isolation:isolate;overscroll-behavior:contain;transform-origin:top right}
#drawer:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--red);clip-path:polygon(87% 0,100% 0,100% 100%,64% 100%);pointer-events:none}#drawer:after{content:'';position:absolute;inset:0;z-index:-1;background-image:radial-gradient(#fff3 1px,transparent 1px);background-size:8px 8px;clip-path:polygon(0 60%,21% 38%,29% 100%,0 100%);pointer-events:none}
#drawer.opening{animation:menu-stage-in 280ms var(--ease-enter) both}#drawer.opening a{animation:menu-item-in 280ms var(--ease-enter) both}#drawer.opening a:nth-of-type(2){animation-delay:35ms}#drawer.opening a:nth-of-type(3){animation-delay:70ms}#drawer.opening a:nth-of-type(4){animation-delay:105ms}#drawer.opening a:nth-of-type(5){animation-delay:140ms}#drawer.closing{animation:menu-stage-out 200ms var(--ease-cut) both}
#drawer a{position:relative;min-height:48px;line-height:1.14;transition:background var(--motion-fast),color var(--motion-fast)}#drawer a.active{background:var(--paper);color:var(--black);box-shadow:5px 5px 0 var(--red)}#drawer a.active:before{content:'▶';position:absolute;left:-22px;top:35%;font-size:15px;color:var(--red)}#drawer a.active small{color:var(--red)}#drawer a:active{background:var(--red);color:var(--paper)}
@keyframes menu-stage-in{from{clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%);translate:35px 0}to{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);translate:0 0}}@keyframes menu-stage-out{from{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);translate:0 0}to{clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%);translate:35px 0}}@keyframes menu-item-in{from{opacity:0;translate:45px 12px}to{opacity:1;translate:0 0}}
.wipe.go{animation:wipe-polished 520ms var(--ease-cut) both}.wipe:after{content:'';position:absolute;inset:0;background:var(--red);clip-path:polygon(0 0,12% 0,36% 100%,0 100%)}@keyframes wipe-polished{0%{transform:translateX(-125%) skewX(-12deg)}43%,55%{transform:translateX(0) skewX(-12deg)}100%{transform:translateX(125%) skewX(-12deg)}}
.enter .hero-copy{animation:scene-in 480ms var(--ease-enter) both}.enter .art{animation:scene-in 480ms 70ms var(--ease-enter) both}.enter .page-title h1{animation:scene-in 480ms var(--ease-enter) both}@keyframes scene-in{from{opacity:0;translate:-26px 12px}to{opacity:1;translate:0 0}}
.reveal{opacity:0;translate:0 22px;transition:opacity var(--motion-scene) var(--ease-enter) var(--reveal-delay,0ms),translate var(--motion-scene) var(--ease-enter) var(--reveal-delay,0ms)}.reveal.revealed{opacity:1;translate:0 0}.reduced .reveal{opacity:1;translate:0 0}
/* Opening: staged cuts, stable numbers, unmistakable completed area. */
.intro-content{animation:none;width:min(720px,76vw)}.intro-title{margin-bottom:40px}.intro-title>span{animation:intro-word-first 260ms 400ms var(--ease-enter) both}.intro-title>strong{animation:intro-word-second 300ms 500ms var(--ease-enter) both}.intro-star{animation:none;transform:rotate(12deg)}.intro-stamp{animation:scene-in 220ms 270ms var(--ease-enter) both}.intro-loading{animation:scene-in 280ms 720ms var(--ease-enter) both}
.intro-panel{transition:transform 560ms var(--ease-cut)}.intro-panel-left{animation:intro-left-in 360ms var(--ease-enter) both}.intro-panel-right{animation:intro-right-in 360ms 40ms var(--ease-enter) both}
@keyframes intro-left-in{from{transform:translate3d(-20%,0,0)}to{transform:translate3d(0,0,0)}}@keyframes intro-right-in{from{transform:translate3d(20%,0,0)}to{transform:translate3d(0,0,0)}}@keyframes intro-word-first{from{opacity:0;translate:-65px 5px}to{opacity:1;translate:0 0}}@keyframes intro-word-second{from{opacity:0;translate:60px -8px}to{opacity:1;translate:0 0}}
.intro-loading-head{align-items:end;min-height:80px;gap:20px}.intro-count{display:flex;justify-content:end;align-items:baseline;width:4.4ch;flex-shrink:0;font-size:70px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-3px}.intro-count b{display:inline-block;min-width:3ch;text-align:right}.intro-count small{font-size:22px;min-width:24px;margin-left:7px}#intro-stage{font-size:11px;max-width:55%;min-height:37px;display:flex;align-items:end}
.intro-track{height:30px;border:2px solid var(--paper);background:#29292c;clip-path:polygon(1.2% 0,100% 0,98.8% 100%,0 100%)}.intro-fill{background:var(--red)}.intro-fill:after{background:repeating-linear-gradient(0deg,transparent 0 5px,#11111222 5px 6px)}.intro-segments{background:repeating-linear-gradient(112deg,transparent 0 32px,#111112 32px 35px);opacity:.75}.intro-runner{position:absolute;inset:0;z-index:2;pointer-events:none;will-change:transform;opacity:0}.intro-runner:before{content:'';position:absolute;left:-13px;top:-1px;bottom:-1px;width:13px;background:var(--paper);clip-path:polygon(30% 0,100% 0,70% 100%,0 100%)}.intro-runner:after{content:'';position:absolute;left:-21px;top:0;bottom:0;width:4px;background:var(--paper);transform:skewX(-22deg);opacity:.55}
.number-tick{animation:number-tick 140ms var(--ease-enter)}@keyframes number-tick{from{translate:0 2px;scale:1.025}to{translate:0 0;scale:1}}
.intro-complete .intro-loading{animation:completion-hit 120ms var(--ease-enter) both}.intro-complete .intro-title{animation:completion-hit 120ms var(--ease-enter) both}.intro-complete .intro-count{color:var(--red)}@keyframes completion-hit{0%{scale:1}45%{scale:1.025;translate:3px 0}100%{scale:1;translate:0 0}}
.intro-out .intro-panel{animation:none}.intro-out .intro-panel-left{transform:translate3d(-84%,0,0)}.intro-out .intro-panel-right{transform:translate3d(84%,0,0)}.intro-out .intro-title>span,.intro-out .intro-title>strong,.intro-out .intro-stamp{animation:none}.intro-out .intro-content{animation:intro-cut-away 240ms var(--ease-cut) both}@keyframes intro-cut-away{to{translate:75px 0;opacity:0}}
.intro-arrival .hero{animation:arrival-stage-polish 480ms var(--ease-enter) both}.intro-arrival .hero h1{animation:arrival-title 480ms 110ms var(--ease-enter) both}.intro-arrival .hero .art{animation:arrival-art 500ms 60ms var(--ease-enter) both!important}.intro-arrival .hero .eyebrow,.intro-arrival .hero-copy p,.intro-arrival .hero .cta,.intro-arrival .hero-bottom{animation:arrival-caption 280ms 260ms var(--ease-enter) both}.intro-arrival>header{animation:arrival-nav 280ms 310ms var(--ease-enter) both}@keyframes arrival-stage-polish{from{translate:25px 0}to{translate:0 0}}
@media(hover:hover){.project:hover .project-visual{transform:rotate(0) translateY(-4px);box-shadow:6px 9px 0 #1111121a}}
@media(hover:none){.cta:hover{transform:rotate(-3deg);background:var(--paper);color:var(--black);box-shadow:6px 6px 0 var(--black)}.cta:active{transform:rotate(-1deg) translate(4px,4px) scale(.98);background:var(--black);color:var(--paper);box-shadow:2px 2px 0 var(--black)}.project:hover .project-visual{transform:rotate(-1.5deg)}.project:nth-child(even):hover .project-visual{transform:rotate(1.5deg)}.project:active .project-visual{transform:rotate(0) scale(.99)}}
@media(max-width:1000px){.hero-copy p{font-size:15px}.projects{column-gap:30px}#motion{font-size:9px}}
@media(max-width:600px){header{height:calc(80px + var(--safe-top));gap:10px}.hero{height:calc(100svh - 80px - var(--safe-top));min-height:760px;max-height:1050px;padding-top:36px}.hero-copy{width:100%}h1{font-size:clamp(66px,17.8vw,106px);line-height:.98;letter-spacing:-.065em;margin-top:28px;transform:rotate(-3.5deg)}h1 .cut{padding:2px 12px 10px}.hero-copy p{font-size:15px;line-height:1.9;max-width:330px;margin:31px 0 26px}.hero .cta{font-size:13px;min-height:52px;padding:15px 23px}.hero .art{top:56%;height:40%;width:86%;right:-31%;opacity:.88}.hero .art-tag{font-size:8px;right:27%;bottom:10%;padding:8px 10px}.hero-bottom{font-size:9px;bottom:63px}.hero-bottom b{font-size:12px}.eyebrow{font-size:9px;letter-spacing:1.8px}.kicker{font-size:10px}.meta{font-size:10px}.text-link{font-size:11px;min-height:44px}.section-head{gap:15px}.projects{row-gap:38px}.project:nth-child(even) .project-visual{margin-top:0}.project-visual{height:235px}.project h3{font-size:21px;letter-spacing:-.5px}.project p{font-size:14px}.note{grid-template-columns:78px 1fr 20px;gap:11px;padding:25px 0}.note time{font-size:10px}.note h3{font-size:17px}.note p{font-size:13px}.section{padding:60px 7%}.intro-loading-head{min-height:65px}.intro-count{font-size:56px;width:4.5ch;letter-spacing:-2.5px}.intro-count small{font-size:20px;min-width:20px;margin-left:5px}#intro-stage{font-size:9px;letter-spacing:1.15px;max-width:54%;min-height:34px}.intro-content{width:80vw}.intro-title{font-size:clamp(63px,19.8vw,110px);margin-bottom:36px}.intro-track{height:27px}.intro-segments{background:repeating-linear-gradient(112deg,transparent 0 23px,#111112 23px 26px)}.intro-caption{font-size:9px}.intro-top,.intro-bottom{font-size:9px}#intro-skip{font-size:10px;min-height:44px}.intro-top>span{font-size:8px}#drawer{top:calc(80px + var(--safe-top));padding-top:6vh}#drawer a{font-size:clamp(34px,10vw,59px);margin:19px 0}#drawer a:nth-of-type(even){margin-left:7%}#drawer a.active:before{left:-17px;font-size:12px}.drawer-top{font-size:9px;letter-spacing:2px}footer{gap:8px 17px;font-size:9px;justify-content:space-between}dialog{padding:24px;max-height:calc(90svh - env(safe-area-inset-top) - env(safe-area-inset-bottom))}dialog p{font-size:15px;line-height:1.95}dialog h2{font-size:30px}}
@media(max-width:360px){.hero{min-height:740px}h1{font-size:63px}.hero-copy p{font-size:14px}.hero .art{top:59%;right:-34%}.brand{font-size:15px}.brand small{letter-spacing:1.3px}#menu{padding:10px}.intro-top{gap:10px}.intro-top>span{letter-spacing:.5px}.intro-count{font-size:50px}.intro-title{font-size:62px}#intro-stage{font-size:8px}.note{grid-template-columns:65px 1fr 18px}.note h3{font-size:16px}}
@media(max-height:530px){.intro-content{width:min(480px,65vw)}.intro-title{font-size:65px;margin-bottom:10px}.intro-loading-head{min-height:48px}.intro-count{font-size:43px}.intro-track{height:22px}.intro-caption{font-size:8px}.intro-top,.intro-bottom{font-size:8px}.intro-stamp{font-size:8px;margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;translate:0 0}.intro-arrival .hero .art{animation:none!important}#drawer.opening,#drawer.closing{clip-path:none;translate:0 0}}

/* Overlay follows Safari chrome; content scale remains tied to the stable viewport. */
@supports(height:100dvh){#intro{height:100dvh}}
