/* BREAK THE RULES: live poster, scroll-directed title assembly, paper slash. */
#drawer{isolation:isolate;background:var(--black)}#drawer .menu-signature{opacity:.14;top:10%;right:-4%}.live-poster{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;isolation:isolate}.poster-number{position:absolute;right:8%;top:8%;font-weight:1000;font-size:clamp(180px,35vw,470px);line-height:.8;color:var(--red);letter-spacing:-.1em;transform:rotate(-12deg);opacity:.6}.poster-heading{position:absolute;right:5%;bottom:11%;width:54%;font-weight:1000;font-style:italic;font-size:clamp(50px,8.2vw,125px);letter-spacing:-.06em;line-height:.88;color:var(--paper);opacity:.72;transform:rotate(-8deg);text-align:right}.poster-heading>span{display:block}.poster-heading>span:nth-child(even){color:var(--red);margin-top:10px}.poster-caption{position:absolute;right:7%;bottom:5%;font:900 9px monospace;letter-spacing:2px;color:var(--paper)}.poster-shape{position:absolute;inset:18% -10% 15% 50%;background:var(--paper);opacity:.08;clip-path:polygon(17% 0,100% 11%,78% 100%,0 90%);transform:rotate(8deg);transition:clip-path 280ms var(--impact),transform 280ms var(--impact)}[data-poster="home"] .poster-shape{clip-path:polygon(50% 0,64% 34%,100% 20%,75% 55%,100% 90%,61% 75%,50% 100%,34% 72%,0 89%,20% 51%,0 20%,37% 35%);transform:rotate(-20deg)}[data-poster="projects"] .poster-shape{clip-path:polygon(0 10%,80% 0,100% 90%,24% 100%);transform:rotate(-12deg)}[data-poster="journal"] .poster-shape{clip-path:polygon(0 0,100% 0,100% 85%,75% 100%,0 100%);transform:rotate(14deg)}[data-poster="contact"] .poster-shape{clip-path:polygon(50% 0,100% 40%,64% 100%,0 60%);transform:rotate(25deg)}.poster-snap .poster-heading>span:first-child{animation:poster-type-snap 300ms var(--impact) both}.poster-snap .poster-heading>span:last-child{animation:poster-type-snap-reverse 300ms 35ms var(--impact) both}.poster-snap .poster-number{animation:poster-number 230ms var(--impact) both}@keyframes poster-type-snap{from{translate:-80px 20px;clip-path:inset(0 100% 0 0)}to{translate:0 0;clip-path:none}}@keyframes poster-type-snap-reverse{from{translate:70px -10px;clip-path:inset(0 0 0 100%)}to{translate:0 0;clip-path:none}}@keyframes poster-number{from{translate:30px -30px}to{translate:0 0}}
#drawer a{max-width:65%;position:relative;z-index:2}#drawer a:before{opacity:.96}#drawer a.poster-selected{color:var(--black)}#drawer a.poster-selected:before{transform:scaleX(1)}#drawer a .menu-word{text-shadow:0 0 0 var(--black)}
/* Continuous geometry is a pure function of native scroll position. */
.v2-hero-title{padding:12px 14px 18px 5px;clip-path:polygon(-12% -12%,112% -12%,112% var(--device-cut-right,112%),-12% var(--device-cut-left,112%));overflow:visible}.v2-title-make{transform:translate(var(--device-make-x,0px),var(--device-make-y,0px)) rotate(-7deg)}.v2-title-your{transform:translateX(var(--device-paper-x,0px)) rotate(2deg)}.v2-title-your>span{display:block;transform:translateX(var(--device-text-x,0px))}.v2-title-own{transform:rotate(calc(-5deg + var(--device-own-turn,0deg))) scale(var(--device-own-scale,1));transform-origin:35% center}.v2-hero .v2-hero-art{transform:translate(var(--device-star-x,0px),var(--device-star-y,0px))!important}.intro-arrival .v2-title-your,.enter .v2-title-your{animation:paper-first 280ms 80ms var(--impact) both}.intro-arrival .v2-title-your>span,.enter .v2-title-your>span{animation:poster-type-snap-reverse 350ms 160ms var(--impact) both}.intro-arrival .v2-title-own,.enter .v2-title-own{animation:own-geometry 380ms 210ms var(--impact) both}@keyframes paper-first{from{scale:.1 1;translate:45px -12px}to{scale:1;translate:0 0}}@keyframes own-geometry{from{scale:.55 .15;clip-path:polygon(5% 0,100% 8%,94% 100%,0 91%)}to{scale:1;clip-path:polygon(5% 0,100% 8%,94% 100%,0 91%)}}
/* One serrated silhouette, adapted to panel borders, cards, and route posters. */
.home-about:before,section[data-chapter="projects"]:before{content:'';position:absolute;left:-2%;right:-2%;top:-14px;height:30px;background:var(--red);border-bottom:5px solid var(--black);clip-path:polygon(0 50%,26% 8%,28% 39%,54% 0,58% 34%,83% 3%,85% 33%,100% 0,100% 100%,0 100%);pointer-events:none;z-index:-1}.project-slashed .project-visual:after{content:'';position:absolute;inset:0;background:var(--red);clip-path:polygon(0 0,35% 0,100% 100%,65% 100%);animation:card-paper-slash 220ms var(--impact) both;pointer-events:none}@keyframes card-paper-slash{from{translate:-100% 0}to{translate:130% 0}}
#route-slash{position:fixed;inset:0;z-index:95;background:var(--black);isolation:isolate;overflow:hidden;pointer-events:all}#route-slash[hidden]{display:none}.slash-red{position:absolute;inset:-15%;background:var(--red);clip-path:polygon(0 18%,40% 0,43% 23%,63% 8%,69% 32%,100% 20%,100% 100%,0 100%);transform:rotate(-12deg)}.slash-edge{position:absolute;inset:-15%;background:var(--paper);clip-path:polygon(0 36%,28% 17%,32% 38%,54% 20%,58% 37%,100% 16%,100% 20%,60% 42%,53% 25%,32% 43%,27% 22%,0 41%);transform:rotate(-12deg)}.slash-poster{position:absolute;inset:18% 10% 15%;color:var(--paper);font-style:italic;display:flex;flex-direction:column;justify-content:center}.slash-poster>b{position:absolute;right:0;top:0;font-size:clamp(120px,24vw,330px);font-weight:1000;line-height:1;letter-spacing:-.1em;color:var(--black);opacity:.6}.slash-poster>div{font-size:clamp(55px,10vw,145px);font-weight:1000;line-height:.9;letter-spacing:-.06em;position:relative;z-index:2;transform:rotate(-5deg)}.slash-poster>div>span{display:block}.slash-poster>span{margin-top:35px;font-size:9px;letter-spacing:2px;font-style:normal}.slash-running{animation:route-paper-cut 650ms var(--v2-cut) both}.slash-running .slash-edge{animation:edge-follow 650ms 25ms var(--impact) both}.slash-running .slash-poster>div{animation:poster-type-snap 300ms 90ms var(--impact) both}[data-route="journal"] .slash-red{clip-path:polygon(0 4%,100% 0,100% 100%,0 94%);background:var(--paper)}[data-route="journal"] .slash-poster{color:var(--black)}[data-route="journal"] .slash-poster>b{color:var(--red)}[data-origin="menu"] .slash-poster>div{font-size:clamp(58px,11vw,150px)}@keyframes route-paper-cut{0%{clip-path:polygon(0 0,0 0,0 100%,0 100%);translate:-60px 0}34%,66%{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);translate:0 0}100%{clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%);translate:60px 0}}@keyframes edge-follow{from{translate:-80px 0}to{translate:0 0}}
/* Contact letters are never left inside persistent glyph masks. */
.contact-editorial{padding-top:8px;overflow:visible}.contact-stage .contact-editorial,.contact-stage .contact-editorial span{clip-path:none!important;overflow:visible}.contact-editorial .contact-hello{background:none;padding:5px 0 20px;margin-left:5%;line-height:1.03;transform:rotate(-3deg);text-shadow:none}.contact-hello>span{display:block;position:relative;width:max-content;max-width:100%;line-height:1.04;padding:3px 13px 7px 0}.contact-say{font-size:.76em;letter-spacing:-.035em;margin-left:22%;color:var(--black);text-shadow:3px 3px 0 var(--red)}.contact-hello-word{color:var(--red);background:var(--paper);text-shadow:3px 3px 0 var(--black);border-bottom:6px solid var(--black);transform:rotate(-2deg)}.contact-stage:before{width:56%;height:38%;top:21%;clip-path:polygon(30% 0,100% 12%,100% 96%,0 84%)}.contact-stage.moment-watch:not(.moment-ready) .contact-editorial>span{opacity:0}.contact-stage.moment-ready .contact-editorial>span{opacity:1;clip-path:none!important}.contact-stage.moment-play .contact-ideas{animation:contact-ideas-in 340ms var(--impact) both}.contact-stage.moment-play .contact-conversation{animation:contact-paper-in 400ms 80ms var(--impact) both}.contact-stage.moment-play .contact-hello{animation:none}.contact-stage.moment-play .contact-say{animation:contact-ideas-in 360ms 150ms var(--impact) both}.contact-stage.moment-play .contact-hello-word{animation:contact-hello-in 400ms 240ms var(--impact) both}@keyframes contact-ideas-in{from{translate:-35px 0;opacity:0}to{translate:0 0;opacity:1}}@keyframes contact-paper-in{from{translate:28px -12px;rotate:3deg;opacity:0}to{translate:0 0;rotate:0deg;opacity:1}}@keyframes contact-hello-in{from{translate:20px 20px;scale:.94;opacity:0}to{translate:0 0;scale:1;opacity:1}}
/* Asymmetric two-project display. Mobile deliberately stays one column. */
.projects{grid-template-columns:1.45fr .85fr;align-items:start;gap:55px}.project:nth-child(2){margin-top:90px;max-width:95%;justify-self:end}.project:nth-child(2) .project-visual{margin-top:0;transform:rotate(4deg)}.project:nth-child(1) .label{top:14px;left:-3px;font-size:11px;padding:10px 13px;transform:rotate(-6deg)}.project:nth-child(2) .label{top:auto;bottom:12px;left:14px;background:var(--paper);color:var(--black);border-color:var(--black)}.project:nth-child(2):before{transform:rotate(4deg)}.project .meta{display:inline-block;padding:5px 9px;border-left:3px solid var(--red);background:#11111208}.project-selected{z-index:2}.project-selected+.project{translate:6px 4px;transition:translate 200ms var(--impact)}.project h3{overflow-wrap:anywhere;word-break:normal}
#ink-impact{position:fixed;z-index:265;width:62px;height:62px;translate:-50% -50%;pointer-events:none}#ink-impact[hidden]{display:none}#ink-impact svg{width:100%;height:100%;fill:var(--black);stroke:var(--paper);stroke-width:2}.ink-paper{fill:var(--paper);stroke:none}.ink-strike{animation:ink-impact 210ms var(--impact) both}@keyframes ink-impact{0%{scale:.1;rotate:-25deg;opacity:0}35%,60%{scale:1;rotate:8deg;opacity:1}100%{scale:.3;rotate:20deg;opacity:0}}
.star-unlocked svg{animation:star-press 180ms var(--impact) both}.portal-star:before{content:'';position:absolute;inset:10%;border:14px solid var(--red);clip-path:polygon(50% 0,64% 34%,100% 20%,75% 55%,100% 90%,61% 75%,50% 100%,34% 72%,0 89%,20% 51%,0 20%,37% 35%);transform:rotate(-15deg);background:var(--paper);opacity:.65}.portal-star:after{border-width:6px;transform:rotate(35deg)}
@media(max-width:1000px){#drawer a{max-width:78%}.poster-heading{width:63%;font-size:clamp(42px,7.5vw,80px)}.projects{gap:35px}}
@media(max-width:600px){#drawer a{max-width:100%;gap:10px}.live-poster .poster-number{font-size:190px;top:11%;right:6%;opacity:.38}.poster-heading{width:84%;right:6%;bottom:8%;font-size:clamp(35px,10.5vw,48px);line-height:1;opacity:.32;letter-spacing:-.055em}.poster-heading>span{padding:4px 0}.poster-caption{font-size:7px;right:7%;bottom:3%;letter-spacing:1px}.poster-shape{inset:28% -10% 10% 36%;opacity:.08}#drawer[data-poster="about"] .poster-heading{font-size:31px}.slash-poster{inset:23% 9% 15%}.slash-poster>div,[data-origin="menu"] .slash-poster>div{font-size:clamp(44px,12vw,58px);line-height:1.05;letter-spacing:-.05em}.slash-poster>div>span{padding:2px 0}.slash-poster>b{font-size:160px;top:-15%;right:-3%}.slash-poster>span{font-size:8px;letter-spacing:1.3px;line-height:1.8}.v2-hero-title{padding:10px 12px 20px 3px}.v2-title-own{font-size:1.18em;margin-left:13%}.contact-editorial .contact-hello{font-size:clamp(59px,18.2vw,80px);margin-left:2%;padding-bottom:22px}.contact-hello>span{line-height:1.08;padding-right:12px}.contact-say{margin-left:21%;text-shadow:2px 2px 0 var(--red)}.contact-hello-word{border-bottom-width:4px;text-shadow:2px 2px 0 var(--black)}.contact-stage .contact-conversation{margin-left:2%;font-size:clamp(20px,5.3vw,26px)}.projects{grid-template-columns:1fr;gap:48px}.project:nth-child(2){margin-top:3px;max-width:89%;width:89%;justify-self:end}.project:nth-child(2) .project-visual{transform:rotate(3deg)}.project-selected+.project{translate:3px 2px}.project:nth-child(1) .label{font-size:9px;padding:8px 10px}.project:nth-child(2) .label{font-size:8px;bottom:10px}.project h3{font-size:21px;line-height:1.45}#ink-impact{width:48px;height:48px}}
@media(max-width:360px){.v2-title-own{font-size:1.14em;margin-left:10%}.poster-heading{font-size:34px}.slash-poster>div,[data-origin="menu"] .slash-poster>div{font-size:42px}.contact-editorial .contact-hello{font-size:59px}.project h3{font-size:20px}}
.reduced .contact-stage .contact-editorial>span{opacity:1!important;clip-path:none!important}.reduced .v2-hero-title{clip-path:none}.reduced .v2-title-make{transform:rotate(-7deg)}.reduced .v2-title-your{transform:rotate(2deg)}.reduced .v2-title-your>span{transform:none}.reduced .v2-title-own{transform:rotate(-5deg)}.reduced .v2-hero .v2-hero-art{transform:none!important}
@media(prefers-reduced-motion:reduce){.v2-hero-title{clip-path:none}.contact-stage .contact-editorial>span{opacity:1!important;clip-path:none!important}.v2-title-make{transform:rotate(-7deg)}.v2-title-your{transform:rotate(2deg)}.v2-title-your>span{transform:none}.v2-title-own{transform:rotate(-5deg)}.v2-hero .v2-hero-art{transform:none!important}}
#drawer.opening .poster-heading>span:first-child{animation:poster-type-snap 300ms 100ms var(--impact) both}#drawer.opening .poster-heading>span:last-child{animation:poster-type-snap-reverse 300ms 145ms var(--impact) both}
