:root{--bg:#15131e;--surface:#211e30;--ink:#f4f0ff;--muted:#b6adc9;--accent:#b7a2ff;--signal:#c9ff73;--line:#ffffff24;
--soft:0 2px 6px #0005,0 10px 26px #0004;--hard:0 2px 0 #0007,0 26px 60px #000b;font-family:Inter,ui-sans-serif,system-ui,"Segoe UI",Roboto,sans-serif;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--bg);color:var(--ink);line-height:1.55;overflow-x:hidden;padding-bottom:84px}
a{color:var(--accent);text-decoration:none;font-weight:600;transition:color .25s ease}a:hover{color:var(--ink)}
#ribbons{position:fixed;inset:0;width:100%;height:100%;z-index:-1}
header{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:22px;padding:10px clamp(16px,4vw,44px);background:color-mix(in srgb,var(--bg) 62%,transparent);backdrop-filter:blur(16px) saturate(1.3);box-shadow:0 1px 0 var(--line),0 12px 30px #0005}
.brand{display:flex;flex-direction:column;align-items:flex-start;color:var(--accent);line-height:1}
.wordmark{display:block;width:104px;height:44px;background:currentColor;mask:var(--brand-logo,url('/assets/logos/font-pacifico-lower.svg')) left center/contain no-repeat;-webkit-mask:var(--brand-logo,url('/assets/logos/font-pacifico-lower.svg')) left center/contain no-repeat}
.tag{font-size:12px;color:var(--muted);font-weight:500}
nav{display:flex;gap:22px;margin-left:auto}nav a{color:var(--muted)}
.btn{display:inline-block;padding:11px 20px;border-radius:12px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 88%,var(--ink)),var(--surface));color:var(--ink);border:1px solid var(--line);box-shadow:inset 0 1px 0 #ffffff14,var(--soft);transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,color .25s ease;white-space:nowrap}
.btn:hover{color:var(--accent);transform:perspective(500px) rotateX(5deg) translateY(-1px);box-shadow:inset 0 1px 0 #ffffff1f,0 16px 34px #000a}
.btn:active{transform:translateY(1px);box-shadow:inset 0 2px 5px #0008}.btn.big{padding:16px 28px;font-size:18px}
main{max-width:1180px;margin:auto;padding:0 clamp(16px,4vw,44px)}
h1{font-size:clamp(36px,4.6vw,58px);line-height:1.04;letter-spacing:-.025em;margin:0 0 20px;text-shadow:0 3px 14px color-mix(in srgb,var(--ink) 16%,transparent)}h1 span{color:var(--accent)}
h2{font-size:clamp(28px,3.6vw,42px);line-height:1.12;letter-spacing:-.015em;margin:0 0 14px}h3{margin:0 0 6px;font-size:21px}
.lede{font-size:clamp(18px,2vw,21px);color:var(--muted);max-width:42em;margin:0 0 26px}.small{color:var(--muted);font-size:15px;margin:16px 0 0}
.hero{display:grid;grid-template-columns:1fr 1.02fr;gap:clamp(28px,5vw,64px);align-items:center;padding:clamp(40px,7vw,86px) 0}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:22px}
.win{border-radius:16px;overflow:hidden;background:color-mix(in srgb,var(--surface) 76%,transparent);backdrop-filter:blur(20px);border:1px solid var(--line);box-shadow:inset 0 1px 0 #ffffff1a,var(--hard);transform:perspective(1400px) rotateY(-3deg) rotateX(1.5deg);transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.stage:hover .win{transform:none}
.bar{display:flex;align-items:center;gap:7px;padding:11px 14px;background:#0003;border-bottom:1px solid var(--line)}.bar i{width:12px;height:12px;border-radius:50%;background:#ffffff26;box-shadow:inset 0 1px 1px #fff3}.bar b{margin:auto;padding-right:50px;font-weight:600;font-size:14px;color:var(--muted)}
.doc{position:relative;min-height:262px;padding:22px 24px;font-size:18px}.doc p{margin:0 0 12px}
#typed:empty::before{content:'Nothing here yet.';color:var(--muted)}
#typed.live::after{content:'';display:inline-block;width:2px;height:1.1em;margin-left:2px;vertical-align:-.15em;background:var(--accent);animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:0}}
#read{background:color-mix(in srgb,var(--accent) 24%,transparent);padding:3px 6px;border-radius:5px;-webkit-box-decoration-break:clone;box-decoration-break:clone;display:inline}
#read span{transition:color .18s ease}#read span.on{color:var(--signal);text-shadow:0 0 14px color-mix(in srgb,var(--signal) 55%,transparent)}
.popup{position:absolute;left:50%;top:50%;padding:10px 22px;border-radius:18px;background:#1e1e1ee6;color:#fff;font-size:24px;font-weight:700;box-shadow:var(--hard);opacity:0;transform:translate(-50%,-50%) scale(.92);transition:opacity .22s ease,transform .22s ease;pointer-events:none}.popup.on{opacity:1;transform:translate(-50%,-50%)}
.meter{display:flex;align-items:center;justify-content:center;gap:4px;height:44px;border-top:1px solid var(--line);background:#0002}.meter i{width:4px;height:4px;border-radius:3px;background:var(--accent);transition:height .1s linear}
.say{min-height:3em;margin:18px 0 8px;color:var(--muted)}
.caps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.cap{all:unset;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:7px;-webkit-tap-highlight-color:transparent}
.cap span{color:var(--muted);font-size:14px;font-weight:600}
kbd{display:inline-grid;place-items:center;min-width:54px;height:54px;padding:0 13px;border-radius:12px;font:700 20px/1 inherit;font-family:inherit;background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 88%,var(--ink)),var(--surface));color:var(--ink);border:1px solid var(--line);box-shadow:inset 0 1px 0 #ffffff24,0 5px 0 #0c0a13,0 12px 22px #000a;transition:transform .14s ease,box-shadow .14s ease,color .2s ease}
.cap:hover kbd{color:var(--accent)}.cap:focus-visible kbd{outline:2px solid var(--accent);outline-offset:3px}.cap.down kbd,.cap:active kbd{transform:translateY(4px);box-shadow:inset 0 1px 0 #ffffff14,0 1px 0 #0c0a13,0 3px 8px #000a;color:var(--accent)}
section:not(.hero){padding:clamp(40px,6vw,76px) 0}
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
article{padding:24px;border-radius:16px;background:color-mix(in srgb,var(--surface) 70%,transparent);backdrop-filter:blur(14px);border:1px solid var(--line);box-shadow:inset 0 1px 0 #ffffff14,var(--soft);transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s ease}article:hover{transform:perspective(800px) rotateX(2deg) translateY(-3px);box-shadow:inset 0 1px 0 #ffffff1f,0 22px 46px #000a}
article p{margin:0;color:var(--muted)}.combo{display:flex;gap:9px;margin-bottom:20px}.combo kbd{height:44px;min-width:44px;font-size:16px}
.more{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,60px)}.more p{color:var(--muted);font-size:18px;margin:0}
.install ol{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:0;margin:26px 0 30px}.install li{counter-increment:s;padding:24px;border-radius:16px;background:color-mix(in srgb,var(--surface) 70%,transparent);border:1px solid var(--line);box-shadow:var(--soft)}.install li::before{content:counter(s);display:block;font-size:44px;font-weight:800;line-height:1;margin-bottom:12px;color:var(--accent);text-shadow:0 5px 16px #000a}.install li p{margin:0;color:var(--muted)}
details{max-width:760px;margin-top:12px;padding:14px 18px;border-radius:12px;background:#0003;border:1px solid var(--line)}details:first-of-type{margin-top:26px}summary{cursor:pointer;font-weight:600}details p{color:var(--muted);margin:10px 0 0}pre{margin:10px 0 0;padding:12px;border-radius:9px;background:#0006;overflow-x:auto}
.plans{display:grid;grid-template-columns:repeat(2,minmax(0,300px));gap:18px}.cost{font-size:46px;font-weight:800;color:var(--ink)!important;letter-spacing:-.02em;line-height:1.1}
footer{padding:36px clamp(16px,4vw,44px);text-align:center;color:var(--muted);background:#0003;border-top:1px solid var(--line)}footer .wordmark{margin:auto;mask-position:center;-webkit-mask-position:center;color:var(--accent)}footer p{margin:8px 0}footer p a{margin:0 10px;display:inline-block}
.dock{position:fixed;left:50%;bottom:14px;z-index:6;display:flex;gap:10px;padding:8px;border-radius:16px;background:color-mix(in srgb,var(--bg) 66%,transparent);backdrop-filter:blur(16px);border:1px solid var(--line);box-shadow:var(--hard);transform:translate(-50%,130%);opacity:0;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s ease}.dock.on{transform:translate(-50%,0);opacity:1}
@media(max-width:860px){.hero,.more{grid-template-columns:1fr}.win{transform:none}.cards,.install ol{grid-template-columns:1fr}nav{display:none}header .btn{margin-left:auto}.dock{width:calc(100% - 32px);justify-content:center}.dock .btn{flex:1;text-align:center;padding-inline:8px}.btn.big{font-size:17px;padding:15px 22px}kbd{min-width:48px;height:48px}.plans{grid-template-columns:repeat(2,minmax(0,1fr))}.cost{font-size:36px}article{padding:20px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}.win{transform:none}}
.looks{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:22px}.looks .btn{font:600 14px/1 inherit;font-family:inherit;padding:10px 14px;cursor:pointer}.looks .btn[aria-pressed=true]{color:var(--ink);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent),var(--soft)}.looks .small{flex-basis:100%;margin:2px 0 0}
/* Same logo button as the main site. */
header{padding-top:12px;padding-bottom:28px}
header .brand{position:relative;flex:none;display:block;line-height:0;padding:3px 7px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--bg));border-radius:20px;background:var(--bg);box-shadow:0 3px 6px #00000024,0 10px 22px #00000030;transition:transform .16s ease,box-shadow .16s ease}
header .brand .wordmark{width:128px;height:54px;mask-position:center;-webkit-mask-position:center}
header .brand:hover{color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 8px #00000024,0 13px 26px #00000036}
header .brand:active{transform:translateY(1px);box-shadow:0 1px 3px #00000030,0 4px 10px #00000024}
header .tag{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);font:400 11px/16px Inter,ui-sans-serif,system-ui,sans-serif;white-space:nowrap}
[data-palette-texture=red] header,[data-palette-texture=orange] header{background-image:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--accent) 11%,transparent) 6px 7px)}
@media(max-width:600px){header .brand .wordmark{width:118px;height:48px}}
/* Slim screens: page links fold into a menu button. */
.btn.menu{display:none;padding:9px 11px;line-height:0;cursor:pointer;font:inherit}
@media(max-width:860px){header{position:sticky;gap:10px}header .btn.menu{display:block;margin-left:auto}header>.btn[data-deb]{margin-left:0}header>.btn{padding:10px 12px}
nav#page-nav{display:none;position:absolute;top:calc(100% - 6px);right:16px;z-index:7;flex-direction:column;gap:2px;min-width:190px;margin:0;padding:8px;border-radius:16px;background:var(--bg);border:1px solid var(--line);box-shadow:var(--hard)}
nav#page-nav.open{display:flex}nav#page-nav a{padding:12px 14px;border-radius:10px;color:var(--ink)}nav#page-nav a:hover{background:color-mix(in srgb,var(--accent) 14%,transparent)}}
