:root{--paper:#f7f7f5;--ink:#12131a;--accent:#e63a1b;--accent-deep:#a8210a;--accent-lift:coral;--accent-ink:#b32a0d;--grid-cell:64px;--bar-h:50%;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in:cubic-bezier(.55, 0, 1, .45)}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--paper);height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Inter,system-ui,-apple-system,sans-serif}.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}.film{background:var(--paper);isolation:isolate;position:fixed;inset:0;overflow:hidden}html.js .film{opacity:0}html.js .film.is-ready{opacity:1}.grid{pointer-events:none;background-image:repeating-linear-gradient(to right, currentColor 0 1px, transparent 1px var(--grid-cell)), repeating-linear-gradient(to bottom, currentColor 0 1px, transparent 1px var(--grid-cell));position:absolute;inset:-2px}.grid--ink{color:#12131a12;z-index:1}.grid--light{color:#ffffff24;z-index:2}.paper{z-index:3;place-items:center;display:grid;position:absolute;inset:0}.line{color:var(--ink);letter-spacing:-.045em;white-space:nowrap;will-change:transform, opacity;grid-area:1/1;font-weight:700}.line--hi{font-size:clamp(48px,9vmin,104px)}.line--name{padding-bottom:.18em;font-size:clamp(52px,11vmin,132px);position:relative}.squiggle{width:66%;height:auto;color:var(--ink);position:absolute;bottom:0;left:50%;overflow:visible;transform:translate(-46%)}.squiggle--sm{width:34%;transform:translate(-50%)}.squiggle__path{vector-effect:non-scaling-stroke}.dot{background:var(--accent);z-index:5;opacity:0;will-change:transform;border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;position:absolute;top:0;left:50%}.field{z-index:6;background:var(--accent);opacity:0;position:absolute;inset:0;overflow:hidden}.blob{opacity:0;will-change:transform;border-radius:50%;position:absolute}.blob--1{background:radial-gradient(circle at 50% 50%, var(--accent-lift) 0%, #ff7f5000 62%);width:90vmax;height:90vmax;animation:19s ease-in-out infinite alternate drift1;top:-30vmax;left:-25vmax}.blob--2{background:radial-gradient(circle at 50% 50%, var(--accent-deep) 0%, #a8210a00 60%);width:78vmax;height:78vmax;animation:23s ease-in-out infinite alternate drift2;bottom:-28vmax;right:-22vmax}.blob--3{background:radial-gradient(circle,#ffb08280 0%,#ffb08200 58%);width:62vmax;height:62vmax;animation:27s ease-in-out infinite alternate drift3;top:18%;left:34%}@keyframes drift1{0%{transform:translate(0,0)scale(1)}to{transform:translate(9vmax,6vmax)scale(1.14)}}@keyframes drift2{0%{transform:translate(0,0)scale(1.08)}to{transform:translate(-8vmax,-5vmax)scale(1)}}@keyframes drift3{0%{transform:translate(0,0)scale(.9)}to{transform:translate(-11vmax,8vmax)scale(1.2)}}.vignette{z-index:3;pointer-events:none;background:radial-gradient(78% 62% at 50% 46%,#580e0200 45%,#580e0257 100%);position:absolute;inset:0}.grain{z-index:90;pointer-events:none;opacity:.34;background:url(/textures/grain.png) 0 0/128px 128px;position:fixed;inset:0}.camera{z-index:7;will-change:transform;position:absolute;inset:0}.ladder{opacity:0;pointer-events:none;align-items:center;display:flex;position:absolute;inset:0}.lockup{white-space:nowrap;color:#fff;letter-spacing:-.035em;transform-origin:0;will-change:transform;flex:none;font-size:200px;font-weight:600;line-height:1;display:inline-block;position:relative}.mask{vertical-align:baseline;margin:-.14em 0 -.26em;padding:.14em 0 .26em;display:inline-block;overflow:hidden}.mask>*{will-change:transform;display:inline-block}.anchor__ch,.rung__ch{white-space:pre;will-change:transform;backface-visibility:hidden;display:inline-block}.rung{white-space:nowrap;opacity:0;margin-left:.22em;position:absolute;top:0;left:100%}.pd{vertical-align:baseline;will-change:transform;background:currentColor;border-radius:50%;width:.17em;height:.17em;margin-left:.02em;display:inline-block}.dot--out{background:var(--paper);z-index:10}.endcard{z-index:8;background:var(--paper);opacity:0;text-align:center;align-content:center;place-items:center;gap:2vmin;display:grid;position:absolute;inset:0}.endcard__cta{color:var(--ink);letter-spacing:-.045em;will-change:transform, opacity;font-size:clamp(30px,8vw,72px);font-weight:700}.endcard__sub{color:#12131ad1;letter-spacing:-.005em;will-change:transform, opacity;font-size:clamp(14px,2.6vw,26px);font-weight:500}.contact{color:var(--ink);letter-spacing:-.02em;white-space:nowrap;transition:background .3s var(--ease-out), transform .3s var(--ease-out);background:#12131a0e;border-radius:99px;align-items:center;gap:.5em;padding:.42em 1.1em;font-size:clamp(16px,4.2vw,40px);font-weight:600;text-decoration:none;display:inline-flex}.contact:hover{background:#12131a1a;transform:translateY(-2px)}.contact:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.contact__icon{fill:currentColor;flex:none;width:1em;height:1em}.endcard__handle{color:var(--ink);letter-spacing:-.03em;white-space:nowrap;will-change:transform, opacity;margin-top:1vmin;padding-bottom:.4em;font-size:clamp(17px,4.2vw,40px);font-weight:700;position:relative}.bar{height:var(--bar-h);z-index:20;will-change:transform;background:#000;position:absolute;left:0;right:0}.bar--top{top:0}.bar--bot{bottom:0}.replay{z-index:30;color:#fff;font:inherit;letter-spacing:-.01em;cursor:pointer;opacity:0;transition:opacity .35s var(--ease-out), transform .2s var(--ease-out);background:#12131ad1;border:0;border-radius:999px;align-items:center;gap:7px;padding:9px 15px;font-size:13px;font-weight:600;display:inline-flex;position:fixed;bottom:18px;right:18px}.replay[hidden]{display:none}.replay.is-shown{opacity:1}.replay:hover{transform:translateY(-2px)}.replay:focus-visible{outline:2px solid var(--accent);outline-offset:3px}html.is-recording .replay{display:none}@media (prefers-reduced-motion:reduce){html.js .film{opacity:1}.paper,.dot,.field,.camera,.bar{display:none}.endcard{opacity:1}.endcard__handle,.endcard__cta,.endcard__sub,.contact{opacity:1;transform:none}.squiggle__path{stroke-dasharray:none;stroke-dashoffset:0}.blob{animation:none}.replay{display:none}}
