:root{--bg0:#fff;--bg1:#f7f7f7;--bg2:#fff;--fg:#1a1a1a;--muted:#5f5f5f;--accent:#111;--border:rgba(0,0,0,.08)}*{box-sizing:border-box}body,html{height:100%}html{color-scheme:light}body{margin:0;color:var(--fg);background:radial-gradient(1200px 600px at 100% -10%,rgba(0,0,0,.04),transparent 60%),radial-gradient(900px 500px at -10% 100%,rgba(0,0,0,.03),transparent 60%),linear-gradient(180deg,var(--bg0),var(--bg1));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{max-width:72rem;margin-inline:auto;padding-inline:1rem}.card{background:linear-gradient(180deg,#fff,#fafafa);border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.08)}.ph-img{width:100%;aspect-ratio:16/10;border-radius:12px;overflow:hidden;position:relative;background:linear-gradient(135deg,#1f1f1f,#0f0f0f)}.ph-img:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,hsla(0,0%,100%,.06) 0 8px,transparent 8px 16px);mix-blend-mode:overlay;opacity:.35}.gtext{background:linear-gradient(90deg,#1c1c1c,#666);-webkit-background-clip:text;background-clip:text;color:transparent}a.navlink{position:relative;text-decoration:none}a.navlink:after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:linear-gradient(90deg,#222,#777);transition:width .25s ease}a.navlink:hover:after{width:100%}.btn{position:relative;border:1px solid var(--border);padding:.65rem 1rem;border-radius:12px;color:var(--fg);background:linear-gradient(180deg,#fff,#f3f3f3);transition:transform .2s ease,box-shadow .2s ease}.btn:hover{transform:translateY(-1px) scale(1.01);box-shadow:0 8px 22px rgba(0,0,0,.12)}.btn:before{content:"";position:absolute;inset:-1px;border-radius:12px;padding:1px;background:linear-gradient(90deg,rgba(0,0,0,.12),transparent);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:hsla(0,0%,100%,.88);border-bottom:1px solid var(--border);transition:box-shadow .25s ease}.header.scrolled{box-shadow:0 10px 24px rgba(0,0,0,.1)}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade{animation:fadeUp .5s ease both}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.floaty{animation:floaty 3.6s ease-in-out infinite}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}