@font-face{font-family:'Pally';font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/pally-400.woff2) format('woff2');}
@font-face{font-family:'Pally';font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/pally-500.woff2) format('woff2');}
@font-face{font-family:'Pally';font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/pally-700.woff2) format('woff2');}

:root {
  --bg:#f4efe6; --ink:#1a1714; --sub:#6b645c; --line:rgba(26,23,20,.14);
  --glass:rgba(255,255,255,.42); --gstroke:rgba(26,23,20,.12); --ghi:rgba(255,255,255,.85); --gshadow:0 14px 40px rgba(26,23,20,.10);
  --input:rgba(255,255,255,.55); --acc:#7d9ae8; --night:0;
}
:root[data-theme="night"] {
  --bg:#000; --ink:#f6f4ef; --sub:#9a958d; --line:rgba(255,255,255,.14);
  --glass:rgba(255,255,255,.06); --gstroke:rgba(255,255,255,.16); --ghi:rgba(255,255,255,.22); --gshadow:0 14px 40px rgba(0,0,0,.6);
  --input:rgba(255,255,255,.05);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:'Pally','Nunito','Avenir Next','Helvetica Neue',sans-serif; transition:background .6s ease, color .6s ease; overflow-x:clip; }
a { color:var(--acc); } a:hover { color:var(--ink); }
.wrap { max-width:1200px; margin:0 auto; padding:0 24px; }
.glass { background:var(--glass); -webkit-backdrop-filter:blur(22px) saturate(150%); backdrop-filter:blur(22px) saturate(150%); border:1px solid var(--gstroke); box-shadow:inset 0 1px 0 var(--ghi), var(--gshadow); position:relative; overflow:hidden; transition:background .6s, border-color .6s; }
.glass::after { content:""; position:absolute; left:-40%; top:-120%; width:60%; height:300%; background:linear-gradient(105deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.28) 50%,rgba(255,255,255,0) 100%); transform:rotate(8deg); animation:sheen 9s ease-in-out infinite; pointer-events:none; }
@keyframes sheen { 0%,55% { left:-60%; } 100% { left:140%; } }
.pill, a.pill, a.pill:hover { color:#1a1714; text-decoration:none; }
.pill { display:inline-flex; align-items:center; justify-content:center; padding:0 22px; min-height:44px; border-radius:999px; background:var(--acc); color:#1a1714; font:inherit; font-size:16px; font-weight:600; border:0; cursor:pointer; transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s; }
.pill:hover { transform:translateY(-1px) scale(1.03); box-shadow:0 8px 24px rgba(125,154,232,.45); }
.pill:active { transform:scale(.98); }
nav { position:sticky; top:0; z-index:30; }
nav .wrap { display:flex; align-items:center; justify-content:space-between; padding:22px 24px; }
.brand { display:flex; align-items:center; gap:12px; font-size:20px; font-weight:600; }
.menu { display:flex; align-items:center; padding:6px; border-radius:999px; }
.menu a { position:relative; z-index:1; padding:10px 16px; font-size:15px; font-weight:500; color:var(--sub); text-decoration:none; border-radius:999px; transition:color .2s, background .2s; }
.menu a:hover { color:var(--ink); background:rgba(127,127,127,.12); }
.menu .pill { position:relative; z-index:1; min-height:40px; font-size:15px; padding:0 18px; }
.menu a.pill, .menu a.pill:hover { color:#1a1714; background:var(--acc); }
.navr { display:flex; align-items:center; gap:10px; }
.theme { width:52px; height:52px; border-radius:999px; color:var(--ink); cursor:pointer; display:grid; place-items:center; padding:0; }
.theme svg { position:relative; z-index:1; grid-area:1/1; transition:opacity .3s, transform .4s; }
.theme .moon { opacity:0; transform:rotate(-40deg) scale(.7); }
:root[data-theme="night"] .theme .sun { opacity:0; transform:rotate(40deg) scale(.7); }
:root[data-theme="night"] .theme .moon { opacity:1; transform:none; }
.theme:hover { color:var(--ink); }
/* hero: pinned stage, scroll drives --night */
.stage { height:460vh; position:relative; }
.hero { position:sticky; top:0; height:100vh; display:flex; align-items:flex-start; padding-top:clamp(90px,12vh,130px); box-sizing:border-box; overflow:hidden; }
.hero .grid { width:100%; display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:40px; align-items:center; }
.swap { display:grid; }
.swap > * { grid-area:1/1; }
.hero h1 { font-size:clamp(44px,5.4vw,76px); font-weight:600; line-height:1; letter-spacing:-.03em; margin:0; }
.hero h1.day span { display:inline-block; opacity:0; transform:translateY(24px); animation:rise .8s cubic-bezier(.2,.8,.2,1) forwards; }
.hero .lead { font-size:clamp(17px,1.5vw,20px); line-height:1.45; color:var(--sub); max-width:460px; margin:0; }
.hero .lead .w { display:inline-block; white-space:nowrap; }
.hero .lead i { font-style:normal; display:inline-block; opacity:0; transform:translateY(10px) scale(.7); transform-origin:50% 100%; }
.hero p.lead.on i { --t:clamp(0, calc((var(--seg) - .05 - var(--i) / var(--n) * .55) * 7), 1); opacity:var(--t); transform:translateY(calc((1 - var(--t)) * 10px)) scale(calc(.7 + .3 * var(--t))); }
.hero p.lead.off i { --d:clamp(0, calc((var(--seg) - var(--i) / var(--n) * .3) * 6), 1); opacity:calc(1 - var(--d)); transform:translateY(calc(var(--d) * -8px)); }
.hero p.lead:not(.on):not(.off) { visibility:hidden; }
.swap.lead { margin:20px 0 22px; }
.app { display:flex; align-items:center; gap:10px; margin:18px 0 0; font-size:14px; font-weight:500; color:var(--sub); }
.hero .app { opacity:0; animation:rise .8s .6s cubic-bezier(.2,.8,.2,1) forwards; }
.app b { color:var(--ink); font-weight:600; }
.app svg { flex:none; }
@keyframes rise { to { opacity:1; transform:none; } }
.hint { position:absolute; left:50%; bottom:22px; transform:translateX(-50%); display:flex; align-items:center; gap:6px; font-size:12px; font-weight:500; color:var(--sub); opacity:calc(1 - var(--night)*2); transition:opacity .3s; }
.hint svg { animation:nudge 1.6s ease-in-out infinite; }
@keyframes nudge { 0%,100% { transform:translateY(0); } 50% { transform:translateY(4px); } }
.signup { width:min(480px,100%); padding:14px; border-radius:24px; }
.signup.desk { opacity:0; animation:rise .8s .5s cubic-bezier(.2,.8,.2,1) forwards; }
.mobsign { display:none; }
.signup .row { display:flex; gap:10px; position:relative; z-index:1; }
.signup input { flex:1 1 auto; min-width:0; min-height:50px; padding:0 20px; border-radius:999px; border:1px solid var(--line); background:var(--input); color:var(--ink); font:inherit; font-size:17px; outline:none; transition:border-color .2s, box-shadow .2s; }
.signup input:focus { border-color:var(--acc); box-shadow:0 0 0 4px rgba(125,154,232,.25); }
.signup .cap { position:relative; z-index:1; font-size:12px; font-weight:500; color:var(--sub); margin:10px 0 0 10px; }
/* diorama + phone */
.dio { position:relative; perspective:1400px; padding-bottom:7%; }
.pool { position:absolute; left:-30%; right:-30%; top:-36%; bottom:-24%; background:radial-gradient(ellipse 50% 50% at 50% 50%, rgba(10,11,20,1) 0%, rgba(10,11,20,.96) 34%, rgba(10,11,20,.5) 52%, rgba(10,11,20,0) 72%); opacity:var(--night); pointer-events:none; }
.room { position:relative; width:100%; aspect-ratio:1400/813; transform-style:preserve-3d; will-change:transform; transition:transform .12s linear; opacity:0; animation:rise 1s .2s cubic-bezier(.2,.8,.2,1) forwards; }
.room img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  -webkit-mask-image:radial-gradient(closest-side at 50% 52%,#000 58%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 16%,#000 100%); -webkit-mask-composite:source-in;
  mask-image:radial-gradient(closest-side at 50% 52%,#000 58%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 16%,#000 100%); mask-composite:intersect; }
.room .r1, .room .r2, .room .r3, .room .r4, .room .r5 { -webkit-mask-image:radial-gradient(closest-side at 50% 52%,#000 58%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 16%,#000 100%),linear-gradient(112deg,#000 calc(var(--w,-30%) - 16%),transparent calc(var(--w,-30%) + 16%)); mask-image:radial-gradient(closest-side at 50% 52%,#000 58%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 16%,#000 100%),linear-gradient(112deg,#000 calc(var(--w,-30%) - 16%),transparent calc(var(--w,-30%) + 16%)); }
.room .glow { position:absolute; left:-15%; right:-15%; top:-15%; bottom:-15%; background:radial-gradient(ellipse 50% 50% at 50% 52%,rgba(18,20,34,1) 0%,transparent 72%); opacity:var(--night); z-index:-1; }
.room .lamp { position:absolute; left:52%; top:26%; width:22%; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(255,196,110,.55) 0%,rgba(255,196,110,0) 70%); filter:blur(12px); opacity:calc(var(--night) * .9); animation:breathe 4.5s ease-in-out infinite; mix-blend-mode:screen; pointer-events:none; }
@keyframes breathe { 0%,100% { transform:scale(1); } 50% { transform:scale(1.12); } }
.room .sun { position:absolute; inset:0; background:linear-gradient(115deg,rgba(255,255,255,0) 35%,rgba(255,244,214,.35) 50%,rgba(255,255,255,0) 65%); mix-blend-mode:soft-light; opacity:calc(1 - var(--night)); transform:translateX(var(--sunx,0)); transition:transform .2s; pointer-events:none; }
/* clay wall clock, on the right wall of the room */
.wclock { position:absolute; left:47.6%; top:12.5%; width:4.4%; aspect-ratio:1; z-index:3; transform:skewY(-14deg) scaleX(.95); transform-origin:50% 50%; filter:brightness(calc(1 - .5 * var(--night))) drop-shadow(2px 4px 4px rgba(90,60,40,.28)); }
.wclock .dial { position:absolute; inset:0; border-radius:50%; background:radial-gradient(circle at 38% 32%, #fbf6ec 0%, #eee3d2 55%, #dccbb4 100%); box-shadow:inset 0 -2px 3px rgba(120,90,60,.25), inset 0 2px 2px rgba(255,255,255,.9), 0 0 0 1.5px #e7d9c4; }
.wclock .dial::before { content:""; position:absolute; inset:9%; border-radius:50%; background:radial-gradient(circle at 40% 35%, #fffdf8, #f3ebdf 70%); box-shadow:inset 0 1px 2px rgba(120,90,60,.18); }
.wclock i { position:absolute; left:50%; top:12%; width:6%; height:8%; margin-left:-3%; border-radius:2px; background:#c9b59a; transform-origin:50% calc(50% + 38% * 100 / 8 * 1%); }
.wclock i:nth-child(1) { transform:none; }
.wclock i:nth-child(2) { left:auto; right:12%; top:50%; width:8%; height:6%; margin:-3% 0 0 0; }
.wclock i:nth-child(3) { top:auto; bottom:12%; }
.wclock i:nth-child(4) { left:12%; top:50%; width:8%; height:6%; margin:-3% 0 0 0; }
.wclock .hand { position:absolute; left:50%; top:14%; width:11%; height:36%; margin-left:-5.5%; border-radius:6px; background:linear-gradient(#c88898, #b06f80); box-shadow:0 1px 2px rgba(90,40,50,.35); transform-origin:50% 100%; transform:rotate(var(--hr,210deg)); }
.wclock .pin { position:absolute; left:50%; top:50%; width:12%; height:12%; margin:-6% 0 0 -6%; border-radius:50%; background:radial-gradient(circle at 35% 30%, #fff, #c9b59a); box-shadow:0 1px 1px rgba(90,60,40,.3); }
/* phone */
.phone { position:absolute; right:3%; bottom:-2%; width:25%; min-width:180px; z-index:4; filter:drop-shadow(0 30px 40px rgba(0,0,0,.35)) brightness(calc(1 - .22*var(--night))); opacity:0; transform:translateY(30px); animation:phonein 1s .5s cubic-bezier(.2,.8,.2,1) forwards; }
@keyframes phonein { to { opacity:1; transform:translateY(0); } }
/* verticals */
.vert { display:flex; align-items:center; justify-content:space-between; gap:64px; padding:100px 0; border-top:1px solid var(--line); }
.vert.flip { flex-direction:row-reverse; }
.vert .txt { width:min(520px,100%); }
.eye { font-size:12px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--sub); }
.vert h2 { font-size:clamp(32px,3.6vw,46px); font-weight:600; line-height:1.08; letter-spacing:-.02em; margin:16px 0; text-wrap:balance; }
.vert p { font-size:20px; line-height:1.5; color:var(--sub); margin:0; }
.stage-img { width:min(560px,100%); aspect-ratio:7/6; border-radius:36px; }
.stage-img img { position:absolute; inset:-6%; width:112%; height:112%; object-fit:cover; animation:kb 22s ease-in-out infinite alternate; transition:filter .6s; }
.stage-img:hover img { animation-play-state:paused; }
@keyframes kb { from { transform:translate(0,0) scale(1); } to { transform:translate(-3%,2%) scale(1.06); } }
.reveal { opacity:0; transform:translateY(28px); transition:opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1); }
.reveal.on { opacity:1; transform:none; }
.reveal.stage-img { transition-delay:.15s; }
/* closing */
.close { border-top:1px solid var(--line); padding:110px 0 100px; text-align:center; }
.close h2 { font-size:clamp(40px,5vw,60px); font-weight:600; letter-spacing:-.025em; line-height:1.05; margin:0 0 16px; }
.close p { font-size:20px; color:var(--sub); max-width:520px; margin:0 auto 28px; line-height:1.45; }
.close .signup { animation:none; opacity:1; margin:0 auto; }
.band { width:min(1200px,94vw); margin:64px auto 0; aspect-ratio:1400/619; border-radius:36px; }
.band img { position:absolute; inset:-4%; width:108%; height:108%; object-fit:cover; animation:kb 30s ease-in-out infinite alternate; }

/* value sections */
.val { padding:110px 0; border-top:1px solid var(--line); }
.two { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:64px; align-items:center; }
.two.flip > .txt { order:2; }
.val .txt { max-width:520px; }
.val h2 { font-size:clamp(34px,4vw,52px); font-weight:600; line-height:1.04; letter-spacing:-.025em; margin:14px 0 18px; text-wrap:balance; }
.val p { font-size:19px; line-height:1.5; color:var(--sub); margin:0 0 12px; }
.val p.small { font-size:15px; font-weight:500; color:var(--ink); }
.eye { font-size:12px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--sub); }
.reveal { opacity:0; transform:translateY(28px); transition:opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1); }
.reveal.on { opacity:1; transform:none; }
/* S1 console */
.console { border-radius:32px; padding:22px; display:flex; flex-direction:column; gap:18px; min-height:360px; }
.console > * { position:relative; z-index:1; }
.chips { display:flex; flex-wrap:wrap; gap:8px; }
.chip { font:inherit; font-size:15px; font-weight:500; color:var(--ink); background:transparent; border:1.5px solid var(--line); border-radius:999px; padding:10px 16px; min-height:44px; cursor:pointer; transition:background .2s, border-color .2s, transform .2s; }
.chip:hover { border-color:var(--ink); }
.chip.on { background:var(--acc); border-color:var(--acc); color:#1a1714; }
.orbrow { display:flex; align-items:center; gap:14px; }
.orb { width:44px; height:44px; border-radius:50%; background:radial-gradient(circle at 35% 30%, #fff 0%, #dfe6ff 45%, #7d9ae8 100%); box-shadow:0 8px 20px rgba(125,154,232,.35), inset 0 0 12px rgba(255,255,255,.7); transition:transform .3s; }
.orb.listen { animation:pulse .9s ease-in-out infinite; }
@keyframes pulse { 0%,100% { transform:scale(1); } 50% { transform:scale(1.18); box-shadow:0 12px 30px rgba(125,154,232,.55), inset 0 0 12px rgba(255,255,255,.7); } }
.heard { font-size:15px; color:var(--sub); }
.answer { display:flex; gap:18px; align-items:center; opacity:0; transform:translateY(16px) scale(.96); transition:opacity .5s cubic-bezier(.2,.8,.2,1), transform .5s cubic-bezier(.2,.8,.2,1); }
.answer.on { opacity:1; transform:none; }
.tile { width:96px; height:96px; flex:none; filter:drop-shadow(0 10px 14px rgba(26,23,20,.18)); }
.ans { font-size:22px; font-weight:600; line-height:1.25; letter-spacing:-.01em; }
.kv { font-size:14px; color:var(--sub); margin-top:6px; }
/* S2 vault */
.vault { position:relative; height:380px; display:flex; align-items:center; justify-content:space-between; padding:0 12px; }
.phoneframe { position:relative; width:180px; height:340px; border-radius:34px; background:#111; padding:12px; box-shadow:0 24px 50px rgba(0,0,0,.3), inset 0 0 0 2px #2a2a2a; }
.memgrid { width:100%; height:100%; border-radius:24px; background:#f4efe6; padding:16px 12px; box-sizing:border-box; display:grid; grid-template-columns:repeat(12, 1fr); gap:3px; align-content:start; overflow:hidden; }
.memgrid i { display:block; aspect-ratio:1; border-radius:2px; background:#e5dccb; opacity:0; transform:scale(.4); transition:opacity .4s, transform .4s; }
.memgrid i.on { opacity:1; transform:none; }
.memgrid i.c1 { background:#f3b8c4; } .memgrid i.c2 { background:#f0c56a; } .memgrid i.c3 { background:#68b868; } .memgrid i.c4 { background:#7d9ae8; }
:root[data-theme="night"] .memgrid { background:#151312; }
:root[data-theme="night"] .glass::after { opacity:.3; }
:root[data-theme="night"] .plabel { background:rgba(21,19,18,.85); color:var(--sub); }
:root[data-theme="night"] .phoneframe { box-shadow:0 24px 50px rgba(0,0,0,.6), inset 0 0 0 2px #3a3a3a; }
:root[data-theme="night"] .orb { background:radial-gradient(circle at 35% 30%, #fff 0%, #c9d4ff 45%, #7d9ae8 100%); }
:root[data-theme="night"] .mod.on { background:rgba(125,154,232,.18); }
:root[data-theme="night"] .signup input::placeholder { color:#7a756e; }
.plabel { position:absolute; left:0; right:0; bottom:18px; background:rgba(244,239,230,.85); margin:0 12px; border-radius:8px; padding:3px 0; text-align:center; font-size:12px; font-weight:600; color:#6b645c; }
.cloudbtn { position:absolute; left:102px; bottom:-14px; transform:translateX(-50%); font-size:15px; white-space:nowrap; }
.cloud { color:var(--sub); display:flex; flex-direction:column; align-items:center; gap:8px; opacity:.7; transition:transform .5s cubic-bezier(.2,.8,.2,1); }
.cloud .cl { font-size:12px; font-weight:600; }
.cloud.shake { animation:shake .5s; }
@keyframes shake { 0%,100% { transform:translateX(0); } 25% { transform:translateX(-6px); } 75% { transform:translateX(6px); } }
.dots { position:absolute; inset:0; pointer-events:none; }
.dots b { position:absolute; width:8px; height:8px; border-radius:50%; background:#7d9ae8; left:90px; top:50%; opacity:0; }
.dots b.fly { animation:fly 1.1s cubic-bezier(.3,.7,.4,1) forwards; }
@keyframes fly { 0% { opacity:1; transform:translate(0,0); } 55% { opacity:1; transform:translate(var(--dx),var(--dy)); } 100% { opacity:0; transform:translate(0,0); } }
/* S3 shelf */
.shelf { display:flex; flex-direction:column; gap:18px; }
.mods { display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:10px; }
.mod { font:inherit; background:transparent; border:1.5px solid var(--line); border-radius:22px; padding:12px 6px 10px; display:flex; flex-direction:column; align-items:center; gap:6px; cursor:pointer; color:var(--sub); font-size:12px; font-weight:600; transition:border-color .2s, background .2s, transform .2s; min-height:44px; }
.mod img { width:52px; height:52px; filter:drop-shadow(0 6px 10px rgba(26,23,20,.18)); transition:transform .3s; }
.mod:hover img { transform:translateY(-4px); }
.mod.on { border-color:var(--acc); color:var(--ink); background:rgba(125,154,232,.12); }
.modcard { border-radius:26px; padding:22px; }
.modcard > * { position:relative; z-index:1; }
.said { font-size:15px; color:var(--sub); margin-bottom:12px; }
.mcmd { font-size:12px; font-weight:600; letter-spacing:.12em; color:var(--acc); }
.mrow { font-size:22px; font-weight:600; letter-spacing:-.01em; margin-top:6px; }
@media (max-width:820px) {
  .val { padding:64px 0; }
  .two, .two.flip { grid-template-columns:minmax(0,1fr); gap:28px; }
  .two.flip > .txt { order:0; }
  .val p { font-size:17px; }
  .console { min-height:0; }
  .vault { height:330px; }
  .phoneframe { width:150px; height:290px; }
  .mods { grid-template-columns:repeat(3, minmax(0,1fr)); }
}
footer .wrap { display:flex; align-items:center; justify-content:space-between; padding:28px 24px 40px; border-top:1px solid var(--line); color:var(--sub); font-size:12px; font-weight:500; }
footer .brand { font-size:12px; gap:8px; }
footer nav2, footer .links { display:flex; gap:24px; }
@media (max-width:820px) {
  .menu a:not(.pill) { display:none; }
  .stage { height:420vh; }
  .hero { align-items:flex-start; padding-top:96px; }
  .hero .grid { grid-template-columns:minmax(0,1fr); gap:10px; }
  .hero h1 { text-align:center; font-size:clamp(38px,11vw,48px); }
  .hero .lead { text-align:center; margin-left:auto; margin-right:auto; max-width:none; font-size:16px; }
  .swap.lead { margin:12px 0 4px; }
  .hero .signup, .hero .app { display:none; }
  .mobsign { display:flex; flex-direction:column; align-items:center; gap:4px; padding:8px 24px 32px; }
  .dio { margin:6px -24px 0; padding-bottom:12%; overflow-x:clip; overflow-y:visible; }
  .room { width:150vw; margin-left:-25vw; }
  .phone { right:6%; bottom:-2%; width:36%; min-width:0; }

  .vert, .vert.flip { flex-direction:column; align-items:stretch; gap:24px; padding:56px 0; }
  .vert .txt { order:2; } .stage-img { order:1; }
  .vert p { font-size:17px; }
  .signup .row { flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) {
  .hero h1 span, .signup, .hero .app { animation:none; opacity:1; transform:none; }
  .stage { height:auto; } .hero { position:static; height:auto; }
  .stage-img img, .band img, .glass::after, .room .lamp { animation:none; }
  .reveal { opacity:1; transform:none; transition:none; }
  .room, .phone { transition:none; animation:none; opacity:1; transform:none; }
}

.signup.busy .pill { opacity:.6; pointer-events:none; }
.signup .cap.ok { color:#3f8a3f; } .signup .cap.err { color:#c85848; }
body.plain { display:grid; place-items:center; min-height:100vh; padding:24px; }
.plain-wrap { max-width:520px; text-align:center; }
.plain-wrap h1 { font-size:44px; font-weight:600; letter-spacing:-.025em; margin:0 0 12px; }
.plain-wrap p { font-size:18px; line-height:1.5; color:var(--sub); }
