:root{--color-ink:#1b2a25;--color-paper:#fff;--color-surface:#fbfdfc;--color-muted:#5f6f67;--color-accent:#0e6b4f;--color-accent-ink:#0a5540;--color-accent-wash:#eaf4ee;--color-gold:#b8902f;--color-gold-soft:#f7efd8;--color-danger:#a63c2b;--color-border:#e0e9e3;--color-focus:#0e6b4f;--color-plate:#fff;--font-display:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius:10px;--radius-lg:18px;--shadow:0 1px 2px #0b3d2d0d, 0 6px 20px #0b3d2d12;--line:1px solid var(--color-border);--measure:62ch}*,:before,:after{box-sizing:border-box}html,body{overflow-x:clip}html{-webkit-text-size-adjust:100%}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);margin:0;font-size:16px;line-height:1.6}h1,h2,h3{font-family:var(--font-display);overflow-wrap:anywhere;min-width:0;margin:0 0 var(--space-4);color:var(--color-ink);letter-spacing:-.01em;font-style:normal;font-weight:600;line-height:1.15}h1{font-size:clamp(1.65rem,1.2rem + 2.4vw,2.6rem)}h2{font-size:1.2rem}p{margin:0 0 var(--space-4);max-width:var(--measure)}a{color:var(--color-accent);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--color-accent-ink)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:2px}.eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-2);font-size:.78rem;font-weight:600;display:block}.rule{border:0;border-top:var(--line);margin:var(--space-5) 0;position:relative}.rule:after{content:"";border-top:1px solid var(--color-border);position:absolute;top:3px;left:0;right:0}.topbar{z-index:20;-webkit-backdrop-filter:blur(10px);border-bottom:var(--line);background:#ffffffe0;position:sticky;top:0}.topbar-inner{max-width:1040px;padding:var(--space-2) var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);min-height:52px;margin-inline:auto;display:flex}.brand{font-family:var(--font-display);color:var(--color-ink);letter-spacing:-.01em;align-items:center;gap:var(--space-2);font-size:1.15rem;font-weight:700;text-decoration:none;display:inline-flex}.brand:before{content:"";background:var(--color-accent);width:8px;height:8px;box-shadow:0 0 0 3px var(--color-accent-wash);border-radius:50%}.brand em,.brand span{color:var(--color-accent);font-style:normal}.topbar .topnav,footer.site{display:none}main.shell{max-width:1040px;padding:var(--space-5) var(--space-4) calc(96px + env(safe-area-inset-bottom));margin-inline:auto}.appbar{z-index:30;-webkit-backdrop-filter:blur(10px);border-top:var(--line);padding-bottom:env(safe-area-inset-bottom);background:#fffffff0;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.appbar a{letter-spacing:.02em;min-height:60px;color:var(--color-muted);padding:var(--space-2) 0;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.72rem;font-weight:600;text-decoration:none;display:flex}.appbar a:before{content:"";background:0 0;border-radius:50%;width:5px;height:5px;transition:background .15s,transform .15s}.appbar a[aria-current=page]{color:var(--color-accent)}.appbar a[aria-current=page]:before{background:var(--color-accent);transform:scale(1.4)}.card{background:var(--color-surface);border:var(--line);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow)}.muted{color:var(--color-muted)}.gold{color:var(--color-gold)}.stack>*+*{margin-top:var(--space-4)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-5);background:var(--color-accent);color:#fff;font:inherit;letter-spacing:.01em;cursor:pointer;border:0;border-radius:999px;font-weight:600;text-decoration:none;transition:background .15s,transform .15s;display:inline-flex}.btn:hover,.btn:active{background:var(--color-accent-ink);color:#fff}.btn.ghost{color:var(--color-accent);border:1px solid var(--color-accent);background:0 0}.btn.ghost:hover,.btn.ghost:active{background:var(--color-accent-wash);color:var(--color-accent-ink)}.btn.big{min-height:56px;padding-inline:var(--space-6);width:100%;font-size:1.05rem}.btn[disabled]{opacity:.55;cursor:wait}label{margin-bottom:var(--space-1);font-size:.95rem;font-weight:600;display:block}input,textarea,select{width:100%;min-height:48px;padding:var(--space-2) var(--space-3);border:var(--line);border-radius:var(--radius);color:var(--color-ink);font:inherit;background:#fff;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-wash);outline:none}textarea{resize:vertical;min-height:140px}.field+.field{margin-top:var(--space-4)}.hint{color:var(--color-muted);margin-top:var(--space-1);font-size:.85rem}.badge{padding:2px var(--space-2);border-radius:999px;font-size:.78rem;font-weight:600;line-height:1.6;display:inline-block}.badge.ok{background:var(--color-accent-wash);color:var(--color-accent-ink)}.badge.no{color:var(--color-muted);background:#f1f3f2}.badge.gold{background:var(--color-gold-soft);color:#7c5f1b}.notice{border-radius:var(--radius);padding:var(--space-3) var(--space-4);font-size:.95rem}.notice.err{color:var(--color-danger);background:#f8e9e6}.notice.ok{background:var(--color-accent-wash);color:var(--color-accent-ink)}.notice[hidden]{display:none}.invites{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.invites li{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:var(--line);border-radius:var(--radius);grid-template-columns:auto 1fr auto;display:grid}.invites .no{font-family:var(--font-display);color:var(--color-gold);text-align:right;min-width:3ch;font-size:1.2rem;font-weight:700}.invites main{overflow-wrap:anywhere;max-width:none;padding:0}.invites .tok{color:var(--color-muted);font-size:.78rem}.copy{min-width:44px;min-height:44px;padding:0 var(--space-3);border:var(--line);color:var(--color-accent);font:inherit;cursor:pointer;background:#fff;border-radius:999px;font-size:.85rem;transition:background .15s,border-color .15s}.rowbtns{gap:var(--space-2);flex-wrap:wrap;display:flex}.hero{text-align:center;padding:var(--space-6) var(--space-2) var(--space-5);position:relative}.hero:before{content:"";background:radial-gradient(60% 100% at 50% 0%, var(--color-accent-wash) 0%, transparent 70%);z-index:-1;height:260px;position:absolute;inset:-32px 0 auto}.hero h1{max-width:22ch;margin-inline:auto}.hero p{margin-inline:auto}.invite-frame{background:radial-gradient(120% 70% at 50% 0%, var(--color-accent-wash) 0%, transparent 55%), #fff;border:var(--line);outline:1px solid var(--color-accent-wash);outline-offset:5px;border-radius:var(--radius);padding:var(--space-6) var(--space-5);text-align:center;position:relative}.invite-frame .greet{font-family:var(--font-display);margin:var(--space-1) 0 0;font-size:1.35rem;font-weight:600}.invite-frame dl{text-align:left;margin:0;display:grid}.invite-frame dt{letter-spacing:.18em;text-transform:uppercase;color:var(--color-muted);font-size:.78rem;font-weight:600}.invite-frame dd{margin:0 0 var(--space-3);font-family:var(--font-display);font-size:1.25rem;font-weight:600}.invite-frame dd.num{color:var(--color-gold);letter-spacing:.02em;font-size:1.7rem;font-weight:700}.board{text-align:center;background:radial-gradient(100% 80% at 50% 0%, var(--color-accent-wash) 0%, transparent 60%), var(--color-surface);border:var(--line);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-4)}.tabs{gap:var(--space-2);scrollbar-width:none;padding-bottom:2px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{min-height:44px;padding:0 var(--space-4);border:var(--line);color:var(--color-muted);font:inherit;cursor:pointer;background:#fff;border-radius:999px;flex:none;font-size:.92rem;font-weight:600;transition:background .15s,color .15s,border-color .15s}.tabs button[aria-selected=true]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.tabs button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.tabpanel[hidden]{display:none}.login-card{max-width:400px;padding:var(--space-6) var(--space-5);text-align:center;margin-inline:auto}.login-card .lock{width:44px;height:44px;margin:0 auto var(--space-4);background:var(--color-accent-wash);color:var(--color-accent);border-radius:50%;place-items:center;display:grid}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:clip}.num-display{font-family:var(--font-display);color:var(--color-gold);min-height:1.2em;margin:0;font-size:clamp(3.4rem,14vw,6rem);font-weight:700;line-height:1}.num-display.rolling{opacity:.65;color:var(--color-muted)}.num-display.revealed{animation:.35s pop}@media (hover:hover) and (pointer:fine){.copy:hover{background:var(--color-accent-wash);border-color:var(--color-accent)}}@media (width>=768px){.appbar{display:none}footer.site{display:block}main.shell{padding:var(--space-7) var(--space-6) var(--space-8)}.topbar .topnav{gap:var(--space-2);font-size:.95rem;display:flex}.topbar .topnav a{color:var(--color-muted);min-height:48px;padding:0 var(--space-3);border-radius:999px;align-items:center;text-decoration:none;transition:color .15s,background .15s;display:inline-flex}.topbar .topnav a:hover{color:var(--color-accent-ink);background:var(--color-accent-wash)}.topbar .topnav a[aria-current=page]{color:var(--color-accent-ink);background:var(--color-accent-wash);font-weight:600}.split{gap:var(--space-6);grid-template-columns:1fr 1fr;align-items:start;display:grid}.split>:first-child{grid-column:1/-1}.hero{padding-top:var(--space-8)}.invite-frame{padding:var(--space-7) var(--space-7);max-width:620px;margin-inline:auto}.board{max-width:720px;margin-inline:auto}.num-display{font-size:clamp(4.5rem,10vw,7.5rem)}.btn.big{max-width:420px;margin-inline:auto}form.wide,.form-shell{max-width:560px;margin-inline:auto}}@media print{.appbar,.topbar,footer.site{display:none!important}body{background:#fff}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
