:root{--ink:#f8ecef;--ink-dim:#c2aab3;--ink-faint:#8d7881;--bg:#100a0e;--bg-raised:#1c141a;--bg-sunk:#0a0609;--line:#2f2029;--line-strong:#4a3440;--mist:#7f9bb5;--plum:#b98cff;--gold:#f2b35c;--ember:#ff8a5c;--rose:#ff5f8d;--danger:#ff6a55;--gold-dim:#9a7132;--accent:var(--rose);--hot:linear-gradient(118deg, var(--rose), var(--ember));--on-hot:#2a0a14;--hot-soft:linear-gradient(118deg, color-mix(in srgb, var(--rose) 22%, transparent), color-mix(in srgb, var(--ember) 22%, transparent));--tier-specials:var(--rose);--tier-favourites:var(--ember);--tier-worth:var(--plum);--tier-new:var(--mist);--serif:ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;--mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--r:16px;--pad:16px;--tap:44px;--lift:0 1px 0 #ffffff0d inset, 0 12px 30px -18px #000000e6;--ease:cubic-bezier(.2, .8, .3, 1);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:light){:root{--ink:#251a1f;--ink-dim:#64525b;--ink-faint:#8f7d86;--bg:#fdf5f4;--bg-raised:#fffbfa;--bg-sunk:#f6e9e8;--line:#ecdbdb;--line-strong:#d7c0c5;--mist:#4a6a86;--plum:#7444c8;--gold:#a4761c;--ember:#bf4a1c;--rose:#c9174f;--danger:#bf3a28;--gold-dim:#c39a4e;--on-hot:#fff;--lift:0 1px 0 #fffc inset, 0 12px 26px -20px #5a28378c}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-text-size-adjust:100%;overscroll-behavior-y:none;margin:0;padding:0;font-size:16px;line-height:1.5}body{min-height:100dvh}.ambience{z-index:0;pointer-events:none;background:radial-gradient(70% 45% at 8% -8%, color-mix(in srgb, var(--rose) 20%, transparent), transparent 65%), radial-gradient(65% 45% at 104% 6%, color-mix(in srgb, var(--plum) 17%, transparent), transparent 62%), radial-gradient(80% 40% at 50% 106%, color-mix(in srgb, var(--ember) 14%, transparent), transparent 60%);animation:26s ease-in-out infinite alternate drift;position:fixed;inset:0}@keyframes drift{to{transform:translateY(-2%)scale(1.06)}}#app{z-index:1;flex-direction:column;min-height:100dvh;display:flex;position:relative}h1,h2,h3{font-family:var(--serif);letter-spacing:-.015em;margin:0;font-weight:600;line-height:1.15}h1{font-size:1.8rem}h2{font-size:1.28rem}h3{font-size:1.05rem}p{margin:0 0 .75em}a{color:var(--rose)}.hot-text{background:var(--hot);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.screen{padding-bottom:calc(var(--safe-bottom) + 24px);animation:rise .32s var(--ease) backwards;flex-direction:column;flex:1;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(9px)}}@keyframes fade{0%{opacity:0}}.pad{padding:0 var(--pad)}.wrap{width:100%;max-width:620px;margin:0 auto}.stack>*+*{margin-top:12px}.stack-lg>*+*{margin-top:22px}.row{align-items:center;gap:10px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:10px;display:flex}.grow{flex:1;min-width:0}.topbar{z-index:20;padding-top:var(--safe-top);background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.3);border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent);position:sticky;top:0}.topbar-inner{align-items:center;gap:8px;min-height:52px;padding:0 8px;display:flex}.topbar h1,.topbar h2{text-align:center;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:1.05rem;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}.btn{min-height:var(--tap);border:1px solid var(--line-strong);background:var(--bg-raised);color:var(--ink);transition:transform .14s var(--ease), border-color .2s ease, box-shadow .2s ease;border-radius:13px;justify-content:center;align-items:center;gap:8px;padding:11px 18px;font-size:.97rem;font-weight:550;display:inline-flex;position:relative}.btn:active{transform:scale(.972)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--hot);color:var(--on-hot);letter-spacing:.01em;box-shadow:0 10px 26px -12px color-mix(in srgb, var(--rose) 75%, transparent), 0 1px 0 #ffffff47 inset;border-color:#0000;font-weight:680;overflow:hidden}.btn-primary:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000 28%,#ffffff52 46%,#0000 64%);animation:6s ease-in-out 1.4s infinite sheen;position:absolute;inset:0;transform:translate(-130%)}.btn-primary:disabled:after{animation:none}@keyframes sheen{0%{transform:translate(-130%)}38%,to{transform:translate(130%)}}.btn-ghost{color:var(--ink-dim);background:0 0;border-color:#0000}.btn-ghost:active{background:var(--bg-sunk)}.btn-danger{border-color:color-mix(in srgb, var(--danger) 50%, transparent);color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--bg-raised))}.btn-block{width:100%}.btn-sm{border-radius:10px;min-height:34px;padding:5px 12px;font-size:.85rem}.icon-btn{min-width:var(--tap);min-height:var(--tap);color:var(--ink-dim);border-radius:12px;place-items:center;font-size:1.15rem;transition:color .18s,background .18s;display:grid}.icon-btn:active{color:var(--rose);background:var(--bg-sunk)}.card{background:linear-gradient(168deg, color-mix(in srgb, var(--rose) 4%, var(--bg-raised)), var(--bg-raised) 58%);border:1px solid var(--line);border-radius:var(--r);padding:var(--pad);box-shadow:var(--lift);position:relative}.card-tight{padding:12px 14px}.card-btn{text-align:left;width:100%;transition:transform .14s var(--ease), border-color .2s ease;display:block}.card-btn:active{border-color:color-mix(in srgb, var(--rose) 45%, var(--line));transform:scale(.988)}.muted{color:var(--ink-dim)}.faint{color:var(--ink-faint)}.small{font-size:.86rem}.tiny{font-size:.78rem}.mono{font-family:var(--mono);letter-spacing:.02em}.serif{font-family:var(--serif)}.center{text-align:center}.nowrap{white-space:nowrap}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:var(--ink-faint);font-size:.7rem;font-weight:650}.notice{border:1px solid var(--line);background:var(--bg-sunk);color:var(--ink-dim);border-radius:13px;padding:12px 14px;font-size:.88rem}.notice-warn{border-color:color-mix(in srgb, var(--gold) 40%, transparent);background:color-mix(in srgb, var(--gold) 10%, var(--bg-sunk));color:var(--ink)}.notice-danger{border-color:color-mix(in srgb, var(--danger) 45%, transparent);background:color-mix(in srgb, var(--danger) 11%, var(--bg-sunk));color:var(--ink)}.consent-bar{background:color-mix(in srgb, var(--rose) 8%, var(--bg-sunk));color:var(--ink-dim);border-radius:4px 12px 12px 4px;padding:11px 14px 11px 16px;font-size:.85rem;position:relative;overflow:hidden}.consent-bar:before{content:"";background:var(--hot);width:3px;position:absolute;top:0;bottom:0;left:0}input[type=text],input[type=password],input[type=number],textarea,select{width:100%;font:inherit;color:var(--ink);background:var(--bg-sunk);border:1px solid var(--line-strong);min-height:var(--tap);border-radius:12px;padding:11px 12px;transition:border-color .18s,box-shadow .18s}input[type=text]:focus,input[type=password]:focus,textarea:focus,select:focus{border-color:color-mix(in srgb, var(--rose) 60%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--rose) 16%, transparent)}textarea{resize:vertical;min-height:84px;font-family:var(--mono);font-size:.9rem}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--rose);outline-offset:2px}label.field{display:block}label.field>span{color:var(--ink-dim);margin-bottom:5px;font-size:.82rem;display:block}.rate-row{border-bottom:1px solid var(--line);padding:14px 0}.rate-row:last-child{border-bottom:none}.rate-label{font-size:1.04rem;font-family:var(--serif)}.rate-dirs{flex-direction:column;gap:7px;margin-top:10px;display:flex}.rate-dir{align-items:center;gap:8px;display:flex}.rate-dir>.eyebrow{flex-shrink:0;width:52px}.scale{flex:1;gap:5px;display:flex}.scale button{border:1px solid var(--line-strong);background:var(--bg-sunk);min-height:40px;color:var(--ink-faint);border-radius:11px;flex:1;font-size:.76rem;font-weight:650;transition:background .18s,color .18s,border-color .18s,box-shadow .18s}.scale button:active{transform:scale(.94)}.scale button[aria-pressed=true]{color:#fff;animation:pop .26s var(--ease);border-color:#0000}@keyframes pop{0%{transform:scale(.88)}55%{transform:scale(1.07)}to{transform:scale(1)}}.scale button[data-level="-1"][aria-pressed=true]{background:var(--ink-faint);color:var(--bg)}.scale button[data-level="0"][aria-pressed=true]{background:var(--danger)}.scale button[data-level="1"][aria-pressed=true]{background:var(--mist);box-shadow:0 6px 16px -8px var(--mist)}.scale button[data-level="2"][aria-pressed=true]{background:var(--plum);box-shadow:0 6px 16px -8px var(--plum)}.scale button[data-level="3"][aria-pressed=true]{background:var(--hot);color:var(--on-hot);box-shadow:0 8px 20px -8px color-mix(in srgb, var(--rose) 85%, transparent)}.bar{background:var(--bg-sunk);border:1px solid color-mix(in srgb, var(--line) 70%, transparent);border-radius:4px;height:7px;position:relative;overflow:hidden}.bar>i{background:var(--hot);height:100%;transition:width .55s var(--ease);box-shadow:0 0 14px -2px color-mix(in srgb, var(--rose) 80%, transparent);border-radius:4px;display:block}.done-tick{color:var(--rose);animation:pop .3s var(--ease);font-weight:700}.reveal-head{text-align:center;padding:30px var(--pad) 24px}.reveal-head .rule{background:var(--hot);border-radius:2px;width:54px;height:2px;margin:13px auto}.match-count{font-family:var(--serif);background:var(--hot);color:#0000;-webkit-text-fill-color:transparent;animation:countIn .6s var(--ease) backwards;-webkit-background-clip:text;background-clip:text;font-size:3.6rem;font-weight:600;line-height:1}@keyframes countIn{0%{opacity:0;transform:scale(.72)}}.tier-tabs{padding:12px var(--pad);scrollbar-width:none;gap:7px;display:flex;overflow-x:auto}.tier-tabs::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line-strong);background:var(--bg-raised);color:var(--ink-dim);white-space:nowrap;transition:all .18s var(--ease);border-radius:999px;flex-shrink:0;padding:8px 14px;font-size:.82rem;font-weight:570}.chip:active{transform:scale(.95)}.chip[aria-pressed=true]{background:var(--hot);color:var(--on-hot);box-shadow:0 8px 20px -10px color-mix(in srgb, var(--rose) 85%, transparent);border-color:#0000;font-weight:680}.menu-section{padding:4px var(--pad) 0}.menu-section>h3{text-transform:uppercase;font-family:var(--sans);letter-spacing:.16em;color:var(--ink-faint);align-items:center;gap:10px;margin:26px 0 6px;font-size:.72rem;font-weight:700;display:flex}.menu-section>h3:after{content:"";background:linear-gradient(90deg, var(--line-strong), transparent);flex:1;height:1px}.match{border-bottom:1px solid color-mix(in srgb, var(--line) 65%, transparent);animation:rise .4s var(--ease) backwards;align-items:baseline;gap:9px;padding:11px 0;display:flex}.match:last-child{border-bottom:none}.match-name{font-family:var(--serif);font-size:1.06rem}.match-dir{color:var(--ink-faint);white-space:nowrap;font-size:.74rem}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;transform:translateY(-2px)}.dot-specials{background:var(--tier-specials);box-shadow:0 0 9px color-mix(in srgb, var(--tier-specials) 85%, transparent)}.dot-favourites{background:var(--tier-favourites);box-shadow:0 0 8px color-mix(in srgb, var(--tier-favourites) 70%, transparent)}.dot-worthTrying{background:var(--tier-worth)}.dot-newTerritory{background:var(--tier-new)}.tier-legend{gap:9px;font-size:.84rem;display:grid}.tier-legend .row{align-items:flex-start}.phrase{grid-template-columns:repeat(2,1fr);gap:7px;display:grid}@media (min-width:380px){.phrase{grid-template-columns:repeat(3,1fr)}}.phrase span{background:var(--bg-sunk);border:1px solid var(--line);font-family:var(--mono);border-radius:9px;align-items:baseline;gap:6px;padding:8px 9px;font-size:.85rem;display:flex}.phrase span b{color:var(--ink-faint);min-width:13px;font-size:.68rem;font-weight:400}.qr{border-radius:var(--r);background:#fff;width:-moz-fit-content;width:fit-content;margin:0 auto;padding:14px}.qr img,.qr canvas{width:216px;height:216px;image-rendering:pixelated;display:block}.veil{position:relative}.veil>.veil-inner{filter:blur(15px)saturate(.7);pointer-events:none;-webkit-user-select:none;user-select:none;transform:scale(.99)}.veil>.veil-btn{background:radial-gradient(60% 40% at 50% 45%, color-mix(in srgb, var(--rose) 14%, transparent), transparent 70%), color-mix(in srgb, var(--bg) 55%, transparent);border-radius:var(--r);color:var(--ink);align-content:center;place-items:center;gap:8px;font-size:.9rem;font-weight:560;display:grid;position:absolute;inset:0}.veil-eye{font-size:1.5rem;animation:2.6s ease-in-out infinite beckon}@keyframes beckon{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}.spinner{border:2px solid var(--line-strong);border-top-color:var(--rose);border-radius:50%;width:17px;height:17px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.divider{background:var(--line);height:1px;margin:6px 0}.sheet{z-index:50;-webkit-backdrop-filter:blur(3px);background:#0a040899;align-items:flex-end;animation:.2s ease-out fade;display:flex;position:fixed;inset:0}.sheet-body{background:linear-gradient(180deg, color-mix(in srgb, var(--rose) 7%, var(--bg-raised)), var(--bg-raised) 40%);border-top:1px solid var(--line-strong);width:100%;max-width:620px;padding:18px var(--pad) calc(var(--safe-bottom) + 18px);max-height:88dvh;animation:slideUp .28s var(--ease) backwards;border-radius:22px 22px 0 0;margin:0 auto;overflow-y:auto}.sheet-body:before{content:"";background:var(--line-strong);border-radius:2px;width:38px;height:4px;margin:-6px auto 12px;display:block}@keyframes slideUp{0%{transform:translateY(26px)}}.tabbar{z-index:20;border-top:1px solid color-mix(in srgb, var(--line) 70%, transparent);background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.3);padding-bottom:var(--safe-bottom);position:sticky;bottom:0}.tabbar-inner{display:flex}.tabbar button{color:var(--ink-faint);flex:1;justify-items:center;gap:3px;min-height:54px;padding:9px 4px;font-size:.68rem;transition:color .2s;display:grid;position:relative}.tabbar button[aria-current=true]{color:var(--rose)}.tabbar button[aria-current=true]:before{content:"";background:var(--hot);width:34px;height:2px;box-shadow:0 0 12px color-mix(in srgb, var(--rose) 75%, transparent);border-radius:0 0 3px 3px;position:absolute;top:-1px;left:50%;transform:translate(-50%)}.tabbar .glyph{transition:transform .22s var(--ease);font-size:1.2rem;line-height:1}.tabbar button[aria-current=true] .glyph{transform:scale(1.12)}.list>*{border-bottom:1px solid var(--line)}.list>:last-child{border-bottom:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}.screen,.ambience,.btn-primary:after,.match,.match-count,.sheet,.sheet-body,.veil-eye,.scale button[aria-pressed=true],.done-tick{animation:none!important}}.match-strength{letter-spacing:.14em;color:var(--gold,currentColor);flex-shrink:0;align-self:center;font-size:.6rem;line-height:1}
