:root{--paper: #ECE4D3;--paper-deep: #E3D9C4;--ink: #2A2622;--ink-soft: #6E655A;--ink-faint: #A89C88;--accent: #D23B2C;--accent-deep: #A82A1F;--serif: "Fraunces", Georgia, "Times New Roman", serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--maxw: 1120px;--gutter: clamp(20px, 5vw, 64px)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;overflow-x:hidden;position:relative}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:50;background:radial-gradient(120% 120% at 50% 35%,transparent 55%,rgba(42,38,34,.1) 100%);mix-blend-mode:multiply}.grain{position:fixed;inset:-50%;pointer-events:none;z-index:60;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain .6s steps(3) infinite}@keyframes grain{0%{transform:translate(0)}33%{transform:translate(-3%,2%)}66%{transform:translate(2%,-3%)}to{transform:translate(-2%,-2%)}}@media (prefers-reduced-motion: reduce){.grain{animation:none}}.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter)}.display{font-family:var(--serif);font-weight:600;font-optical-sizing:auto;line-height:.92;letter-spacing:-.02em}.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}.credit{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-faint);line-height:1.8}.accent-bar{background:var(--accent)}.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;padding:14px 22px;border-radius:2px;border:1px solid var(--ink);color:var(--ink);background:transparent;transition:background .16s ease,color .16s ease,transform .16s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-deep);border-color:var(--accent-deep)}.device{border-radius:12px;background:#15110e;box-shadow:0 40px 80px -30px #2a262280,0 0 0 1px #2a262214;overflow:hidden}.device .titlebar{height:34px;display:flex;align-items:center;gap:7px;padding:0 12px;background:#20191420;backdrop-filter:blur(8px)}.dot{width:11px;height:11px;border-radius:50%}.dot.r{background:#ff5f57}.dot.y{background:#febc2e}.dot.g{background:#28c840}.ph{position:relative;width:100%;aspect-ratio:16 / 9;display:grid;place-items:center;background:linear-gradient(135deg,#3a2c20,#1c1712 60%),repeating-linear-gradient(45deg,rgba(255,255,255,.02) 0 2px,transparent 2px 8px);color:#c9b89a;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase}.ph[data-ratio="9-16"]{aspect-ratio:9 / 16}.ph[data-ratio="1-1"]{aspect-ratio:1 / 1}section{padding-block:clamp(72px,12vh,160px)}.grid-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,72px);align-items:center}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,40px)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,44px)}.grid-repurpose{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;align-items:start}@media (max-width: 880px){.grid-hero{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr;gap:28px}.grid-hero .device{order:-1}}@media (max-width: 640px){body{font-size:16px}.grid-2{grid-template-columns:1fr}.grid-repurpose{grid-template-columns:1fr 1fr}.grid-repurpose>:first-child{grid-column:1 / -1}.nav-links a:not(.btn){display:none}.hide-mobile{display:none!important}.hero-indent{margin-left:0!important}section{padding-block:clamp(56px,9vh,100px)}}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal.in{opacity:1;transform:none}
