*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased;font-family:var(--font)}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw,1080px);margin:0 auto;padding:0 28px}
.proto{font-size:.75rem;text-align:center;padding:7px 12px}
.band{border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;background:var(--band-bg)}
.band .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 28px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px}
.mark{width:22px;height:22px;border-radius:var(--mark-r,6px);background:var(--accent);flex:none}
.brand b{color:var(--ink-strong);font-weight:700;font-size:1.0625rem;letter-spacing:-.01em;font-family:var(--font-brand,var(--font))}
.brand span{color:var(--ink-muted);font-size:.9375rem}
.band-contact{color:var(--ink-muted);font-size:.9375rem}
.band-contact a{color:var(--accent);font-weight:600}
.intro{padding:64px 0 8px}
.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:18px;font-family:var(--font-label,var(--font))}
.intro h1{color:var(--ink-strong);font-family:var(--font-display,var(--font));font-weight:var(--display-w,700);font-size:var(--h1,clamp(2rem,5.5vw,3.25rem));line-height:1.05;letter-spacing:var(--h1-ls,-.025em);max-width:24ch}
.intro h1 .turn{color:var(--accent)}
.intro p{margin-top:20px;font-size:1.125rem;max-width:58ch;color:var(--ink)}
.grid-head{display:flex;align-items:end;justify-content:space-between;margin:52px 0 20px;gap:12px}
.grid-head h2{color:var(--ink-strong);font-size:1.0625rem;font-weight:600;font-family:var(--font-display,var(--font))}
.grid-head span{color:var(--ink-muted);font-size:.875rem;font-family:var(--font-label,var(--font))}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap,20px)}
@media(max-width:860px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.grid{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius,12px);overflow:hidden;display:flex;flex-direction:column;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s cubic-bezier(.22,1,.36,1),border-color .35s}
.card.live:hover{transform:translateY(-3px);box-shadow:var(--lift);border-color:var(--accent)}
.shot{position:relative;aspect-ratio:16/10;overflow:hidden;border-bottom:1px solid var(--line);background:var(--shot-bg);display:grid;place-items:center}
.shot img{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .5s cubic-bezier(.22,1,.36,1)}
.card.live:hover .shot img{transform:scale(1.04)}
.glyph{font-size:2rem;font-weight:700;opacity:.5;color:var(--ink-muted);font-family:var(--font-display,var(--font))}
.badge{position:absolute;top:12px;right:12px;z-index:1;font-size:.6875rem;font-weight:600;letter-spacing:.02em;padding:4px 9px;border-radius:999px;line-height:1;font-family:var(--font-label,var(--font));backdrop-filter:blur(4px)}
.badge.live{background:var(--badge-live-bg);color:var(--badge-live-fg)}
.badge.beta{background:var(--badge-beta-bg);color:var(--badge-beta-fg)}
.badge.dev{background:var(--badge-dev-bg);color:var(--badge-dev-fg)}
.card-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:5px;flex:1}
.card-body h3{color:var(--ink-strong);font-size:1.0625rem;font-weight:600;font-family:var(--font-display,var(--font));letter-spacing:-.01em}
.domain{font-family:var(--font-mono,var(--font));font-size:.8125rem;font-weight:600;color:var(--accent)}
.platforms{display:none}
.card-body p{font-size:.9375rem;color:var(--ink);margin-top:3px}
.visit{margin-top:auto;padding-top:12px;color:var(--accent);font-weight:600;font-size:.9375rem;display:inline-flex;align-items:center;gap:6px}
.card.live:hover .visit{gap:9px}
.visit svg{transition:transform .3s}
.card.dev .shot{background:var(--shot-dev-bg)}
.more{display:flex;gap:26px;flex-wrap:wrap;margin:34px 0 8px}
.more a{color:var(--ink-strong);font-weight:600;font-size:.9375rem;display:inline-flex;gap:7px;padding-bottom:2px;border-bottom:1.5px solid transparent}
.more a:hover{border-bottom-color:var(--accent)}
.more a .arr{color:var(--accent)}
footer{border-top:1px solid var(--line);margin-top:60px;padding:30px 0 44px}
footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.foot-links{display:flex;gap:22px}
.foot-links a{color:var(--ink-muted);font-size:.875rem}
.foot-links a:hover{color:var(--ink-strong)}
.foot-legal{color:var(--ink-muted);font-size:.8125rem;font-family:var(--font-label,var(--font))}

:root{
  --bg:oklch(0.972 0.012 75);--surface:oklch(0.992 0.007 75);--band-bg:oklch(0.972 0.012 75 / .82);
  --ink-strong:oklch(0.28 0.02 55);--ink:oklch(0.43 0.02 55);--ink-muted:oklch(0.60 0.016 55);
  --line:oklch(0.90 0.013 70);--accent:oklch(0.55 0.135 42);
  --font:'Inter',system-ui,sans-serif;--font-display:'Fraunces',Georgia,serif;--font-mono:'Space Mono',monospace;--font-label:'Space Mono',monospace;
  --display-w:600;--h1:clamp(2.1rem,5.2vw,3.3rem);--h1-ls:-.02em;--radius:10px;--gap:20px;--mark-r:7px;
  --shot-bg:oklch(0.93 0.02 60);--shot-dev-bg:oklch(0.94 0.013 70);--lift:0 16px 40px -22px oklch(0.4 0.06 50 / .45);
  --badge-live-bg:oklch(0.55 0.135 42 / .14);--badge-live-fg:oklch(0.48 0.13 42);
  --badge-beta-bg:oklch(0.62 0.13 70 / .16);--badge-beta-fg:oklch(0.46 0.12 70);
  --badge-dev-bg:oklch(0.55 0.01 60 / .1);--badge-dev-fg:oklch(0.5 0.012 60);
}
.proto{background:oklch(0.55 0.135 42 / .07);color:oklch(0.48 0.13 42);border-bottom:1px solid var(--line)}
.eyebrow{letter-spacing:.18em}
.domain{text-transform:lowercase}
/* ---- polish pass · Studio Desk ---- */
body{background:radial-gradient(125% 85% at 50% -12%, oklch(0.987 0.015 82), var(--bg)) no-repeat fixed}
.mark{display:grid;place-items:center;color:oklch(0.987 0.01 82);font-family:var(--font-display);font-weight:600;font-size:.82rem;line-height:1;box-shadow:inset 0 0 0 1px oklch(1 0 0 / .2)}
.intro{padding:74px 0 8px}
.intro h1{font-size:clamp(2.3rem,5.6vw,3.6rem);line-height:1.0}
.intro h1 .turn{font-style:italic;font-weight:500}
.grid-head{margin-bottom:0;border-bottom:1px solid var(--line);padding-bottom:14px}
.grid{margin-top:22px}
.shot::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;box-shadow:inset 0 0 0 1px oklch(0.4 0.05 50 / .07)}
.card.live:hover .badge.live{background:var(--accent);color:oklch(0.99 0.01 82)}
.visit svg{transition:transform .3s cubic-bezier(.22,1,.36,1)}
/* ---- long-form pages (about / privacy / terms) ---- */
.prose{max-width:70ch;margin-top:34px}
.prose h2{font-family:var(--font-display);font-weight:600;color:var(--ink-strong);font-size:1.3rem;letter-spacing:-.01em;margin:40px 0 10px}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{color:var(--ink);font-size:1rem;margin-top:12px;line-height:1.6}
.prose ul{margin-top:12px;padding-left:1.2em}
.prose li{margin-top:6px}
.prose a{color:var(--accent);font-weight:600}
.prose a:hover{text-decoration:underline}
.prose strong{color:var(--ink-strong);font-weight:600}
.docmeta{font-family:var(--font-label);font-size:.8125rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:14px}
.lede{font-size:1.125rem;color:var(--ink);max-width:60ch;margin-top:20px}
.backlink{display:inline-flex;align-items:center;gap:7px;margin-top:44px;font-family:var(--font-label);font-size:.8125rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.1em}
.backlink:hover{color:var(--accent)}
/* ---- email click-to-copy confirmation ---- */
a[href^="mailto:"]{position:relative}
a[href^="mailto:"].copied::after{content:"Copied \2713";position:absolute;left:0;top:calc(100% + 7px);font-family:var(--font-label);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:var(--surface);border:1px solid var(--line);padding:4px 8px;border-radius:7px;white-space:nowrap;z-index:30;box-shadow:0 6px 18px -10px oklch(0.4 0.06 50 / .5)}
