:root{--paper:#f7f0e2;--paper-deep:#efe4cf;--surface:#fffaf0;--surface-2:#f6ecd9;--line:#e0d2b8;--line-soft:#ece0c9;--ink:#362f28;--ink-soft:#6d6051;--ink-faint:#9b8d7a;--accent:#c65a1e;--accent-soft:#f0d4bd;--accent-ink:#fff6ed;--green:#6f7a34;--blue:#48727a;--red:#b03a2e;--glow:0 1px 2px #362f280d, 0 8px 24px -12px #362f2838;--glow-lg:0 2px 4px #362f280d, 0 24px 60px -28px #362f2861;--ring:0 0 0 3px #c65a1e38;--r-sm:8px;--r-md:14px;--r-lg:20px;--r-xl:26px;--font-mono:"Fira Code", ui-monospace, SFMono-Regular, monospace;--font-display:var(--font-cormorant), Georgia, serif;--font-ui:var(--font-inter), system-ui, -apple-system, sans-serif;--ease:cubic-bezier(.22, .8, .3, 1)}[data-theme=dark]{--paper:#211c19;--paper-deep:#1a1613;--surface:#2b2521;--surface-2:#332b26;--line:#3f362f;--line-soft:#372f29;--ink:#f0e5d4;--ink-soft:#bdae9a;--ink-faint:#8a7d6c;--accent:#e8843f;--accent-soft:#4a3222;--accent-ink:#1a1613;--green:#a3ad5f;--blue:#7fb0b8;--red:#e07a6b;--glow:0 1px 2px #0000004d, 0 8px 24px -12px #0009;--glow-lg:0 2px 4px #0000004d, 0 24px 60px -28px #000c;--ring:0 0 0 3px #e8843f47}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;color:var(--ink);background:var(--paper);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;transition:background .5s var(--ease), color .5s var(--ease);margin:0;font-size:15px;line-height:1.55}body:before{content:"";pointer-events:none;z-index:0;opacity:.5;background-image:radial-gradient(1200px 600px at 12% -10%,#c65a1e1a,#0000 60%),radial-gradient(900px 500px at 92% 4%,#48727a1a,#0000 60%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E");position:fixed;inset:0}::selection{background:var(--accent-soft);color:var(--ink)}a{color:var(--accent)}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line);background-clip:content-box;border:3px solid #0000;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--ink-faint);background-clip:content-box}.shell{z-index:1;max-width:1220px;margin:0 auto;padding:0 24px 72px;position:relative}.grid{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start;gap:22px;display:grid}.col{flex-direction:column;gap:22px;min-width:0;display:flex}.topbar{z-index:40;background:color-mix(in srgb, var(--paper) 82%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.4);border-bottom:1px solid var(--line-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;padding:14px 24px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand-mark{background:linear-gradient(150deg, var(--accent), color-mix(in srgb, var(--accent) 60%, #7a3b12));width:42px;height:42px;color:var(--accent-ink);box-shadow:var(--glow);border-radius:13px;flex-shrink:0;place-items:center;font-size:1.3rem;display:grid}.brand-name{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:0;font-size:1.75rem;font-weight:600;line-height:1}.brand-sub{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.02em;font-size:.72rem}.topbar-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.mode-chip{font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--line);color:var(--ink-soft);white-space:nowrap;border-radius:99px;padding:.3rem .6rem;font-size:.72rem}.mode-chip.is-hot{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.vol-group{background:var(--surface);border:1px solid var(--line);border-radius:99px;align-items:center;gap:8px;padding:.3rem .7rem;display:flex}.vol-group span{font-family:var(--font-mono);color:var(--ink-soft);text-align:right;min-width:34px;font-size:.72rem}.btn{font-family:var(--font-ui);border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;white-space:nowrap;transition:transform .12s var(--ease), background .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease), color .2s var(--ease);justify-content:center;align-items:center;gap:.4em;padding:.5rem .9rem;font-size:.82rem;font-weight:500;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-2);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(1px)scale(.985)}.btn:focus-visible{box-shadow:var(--ring);outline:none}.btn:disabled{opacity:.38;cursor:not-allowed}.btn-solid{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:var(--glow);font-weight:600}.btn-solid:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 88%, #000);border-color:color-mix(in srgb, var(--accent) 88%, #000)}.btn-outline{border-color:var(--ink-faint);background:0 0}.btn-pill{border-radius:99px;padding:.42rem .85rem;font-size:.78rem}.btn-pill.is-active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.btn-icon{width:34px;height:34px;color:var(--ink-soft);border-radius:10px;padding:0;font-size:.9rem}.btn-icon:hover:not(:disabled){color:var(--ink)}.btn-danger{color:var(--ink-faint);background:0 0;border-color:#0000;border-radius:10px;width:34px;height:34px;padding:0}.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--red) 14%, transparent);color:var(--red)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--glow);transition:box-shadow .3s var(--ease), border-color .3s var(--ease), background .5s var(--ease);padding:20px;position:relative}.panel:hover{box-shadow:var(--glow-lg)}.panel-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.panel-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);margin:0;font-size:1.5rem;font-weight:600;line-height:1.15}.panel-sub{color:var(--ink-soft);margin:.25rem 0 0;font-size:.8rem;line-height:1.45}.badge{font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--line);color:var(--ink-soft);white-space:nowrap;border-radius:99px;flex-shrink:0;padding:.25rem .55rem;font-size:.68rem}.player-panel{padding-bottom:16px}.stage{margin-bottom:14px}.stage-frame{aspect-ratio:16/9;border-radius:var(--r-md);background:linear-gradient(160deg, var(--surface-2), var(--paper-deep));border:1px solid var(--line);transition:aspect-ratio .35s var(--ease), height .35s var(--ease);position:relative;overflow:hidden}.stage-audio .stage-frame{aspect-ratio:auto;border:none;height:0}.stage-player,.stage-player iframe{border:0;width:100%;height:100%;display:block}.stage-empty{color:var(--ink-faint);text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:0}.stage-empty p{font-family:var(--font-display);color:var(--ink-soft);margin:0;font-size:1.2rem;font-style:italic}.stage-empty small{font-size:.76rem}.stage-empty-icon{font-size:2.2rem;animation:4s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.now-playing{flex-direction:column;gap:10px;display:flex}.now-meta{flex-direction:column;min-width:0;display:flex}.now-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--accent);font-size:.66rem}.now-title{font-family:var(--font-display);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:1.35rem;font-weight:600;line-height:1.25;overflow:hidden}.seek-row{align-items:center;gap:10px;display:flex}.time{font-family:var(--font-mono);color:var(--ink-faint);min-width:40px;font-size:.7rem}.time:last-child{text-align:right}.controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.play-btn{width:50px;height:50px;box-shadow:0 6px 18px -6px color-mix(in srgb, var(--accent) 70%, transparent);border-radius:50%;padding:0;font-size:1rem}.play-btn:hover:not(:disabled){transform:translateY(-2px)scale(1.04)}.vol-inline{background:var(--surface-2);border:1px solid var(--line);border-radius:99px;align-items:center;gap:6px;margin-left:auto;padding:.3rem .7rem;font-size:.8rem;display:flex}.vol-inline input{width:82px}input[type=range]{appearance:none;background:var(--line);cursor:pointer;border-radius:99px;outline:none;flex:1;height:5px}input[type=range]:disabled{opacity:.4;cursor:not-allowed}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:2px solid var(--surface);width:15px;height:15px;transition:transform .15s var(--ease);border-radius:50%;box-shadow:0 1px 4px #00000040}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.25)}input[type=range]::-moz-range-thumb{background:var(--accent);border:2px solid var(--surface);cursor:pointer;border-radius:50%;width:13px;height:13px}.seek{height:6px}input[type=range]:focus-visible{box-shadow:var(--ring)}.deck-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px;display:grid}.deck{border-radius:var(--r-lg);border:1px solid var(--line-soft);background:var(--paper);min-width:0;transition:border-color .25s var(--ease), box-shadow .25s var(--ease);flex-direction:column;gap:12px;padding:14px;display:flex}.deck.is-playing{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));box-shadow:var(--glow)}.deck .stage{margin-bottom:0}.deck-head{align-items:center;gap:8px;min-width:0;display:flex}.deck-dot{background:var(--line);width:8px;height:8px;transition:background .25s var(--ease);border-radius:50%;flex-shrink:0}.deck-dot.is-on{background:var(--accent);animation:2.4s ease-in-out infinite pulse-soft}.deck-label{min-width:0;font-family:var(--font-display);color:var(--ink);border-radius:var(--r-sm);background:0 0;border:1px solid #0000;flex:1;padding:.1rem .35rem;font-size:1.15rem;font-weight:600}.deck-label:hover{border-color:var(--line-soft)}.deck-label:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.deck-status{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);font-size:.64rem}.deck.is-playing .deck-status{color:var(--accent)}.deck-pick{width:100%}.deck .now-title{font-size:1.12rem}.now-sub{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.deck-resume{color:var(--ink-soft);font-size:.76rem;font-family:var(--font-mono);margin:0}.deck-volume{background:var(--surface-2);border:1px solid var(--line);border-radius:99px;align-items:center;gap:8px;padding:.4rem .75rem;font-size:.8rem;display:flex}.deck-volume.is-disabled{opacity:.7}.deck-volume-value{font-family:var(--font-mono);color:var(--ink-faint);text-align:right;font-variant-numeric:tabular-nums;min-width:64px;font-size:.68rem}.deck-add{justify-content:center;margin-top:14px;display:flex}.stage-spotify .stage-frame{aspect-ratio:auto;background:0 0;border:none;border-radius:12px}.spotify-host iframe{border:0;border-radius:12px;width:100%;display:block}.stage-file .stage-frame{aspect-ratio:auto;place-items:center;height:96px;display:grid}.stage-file-art span{font-size:2.4rem;display:inline-block}.stage-file-art .is-spinning{animation:3s ease-in-out infinite float}.link-btn{font:inherit;color:var(--accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.76rem;text-decoration:underline}.link-btn:focus-visible{box-shadow:var(--ring);border-radius:4px;outline:none}.add-row-top{border-top:none;margin-top:0;padding-top:0}.add-extra{flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;display:flex}.detect{font-family:var(--font-mono);border:1px solid var(--line);border-radius:99px;padding:.2rem .55rem;font-size:.7rem}.detect.is-ok{color:var(--green);border-color:color-mix(in srgb, var(--green) 40%, var(--line))}.detect.is-bad{color:var(--red);border-color:color-mix(in srgb, var(--red) 35%, var(--line))}.track-thumb-icon{width:100%;height:100%;color:var(--ink-soft);place-items:center;font-size:1.2rem;display:grid}.deck-send{text-overflow:ellipsis;white-space:nowrap;max-width:110px;padding:.2rem .5rem;font-size:.68rem;overflow:hidden}.add-row{border-top:1px dashed var(--line);align-items:stretch;gap:8px;margin-top:16px;padding-top:16px;display:flex}.add-fields{flex:1;gap:8px;min-width:0;display:flex}.field{min-width:0;font-family:var(--font-mono);border-radius:var(--r-sm);border:1px solid var(--line);background:var(--paper);color:var(--ink);transition:border-color .2s var(--ease), box-shadow .2s var(--ease);flex:1;padding:.55rem .75rem;font-size:.78rem}.field::placeholder{color:var(--ink-faint)}.field:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.field-sm{padding:.3rem .5rem;font-size:.72rem}.add-preview{font-family:var(--font-mono);color:var(--ink-soft);animation:slide-in .3s var(--ease);align-items:center;gap:10px;margin-top:10px;font-size:.72rem;display:flex}.add-preview img{object-fit:cover;border:1px solid var(--line);border-radius:6px;width:64px;height:36px}.status{border-radius:var(--r-sm);animation:slide-in .3s var(--ease);margin:10px 0 0;padding:.5rem .75rem;font-size:.78rem}.status-ok{background:color-mix(in srgb, var(--green) 14%, transparent);color:var(--green)}.status-err{background:color-mix(in srgb, var(--red) 12%, transparent);color:var(--red)}@keyframes slide-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}.playlist-head{justify-content:space-between;align-items:center;gap:10px;margin:18px 0 8px;display:flex}.playlist-head h3{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-faint);margin:0;font-size:.7rem}.playlist-head .field{flex:0 160px;max-width:160px}.playlist{flex-direction:column;gap:6px;max-height:380px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.track{border-radius:var(--r-md);transition:background .2s var(--ease), border-color .2s var(--ease);border:1px solid #0000;align-items:center;gap:6px;display:flex}.track:hover{background:var(--surface-2);border-color:var(--line-soft)}.track.is-current{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.track-main{cursor:pointer;text-align:left;min-width:0;color:inherit;font:inherit;border-radius:var(--r-md);background:0 0;border:none;flex:1;align-items:center;gap:11px;padding:8px;display:flex}.track-main:focus-visible{box-shadow:var(--ring);outline:none}.track-thumb{background:var(--paper-deep);border-radius:8px;flex-shrink:0;width:72px;height:41px;position:relative;overflow:hidden}.track-thumb img{object-fit:cover;width:100%;height:100%;display:block}.track-thumb-badge{color:#fff;opacity:0;transition:opacity .2s var(--ease);background:#14100d73;place-items:center;font-size:.7rem;display:grid;position:absolute;inset:0}.track-main:hover .track-thumb-badge,.track.is-current .track-thumb-badge{opacity:1}.track-text{flex-direction:column;gap:1px;min-width:0;display:flex}.track-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;font-weight:500;overflow:hidden}.track-url{font-family:var(--font-mono);color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:.66rem;overflow:hidden}.track.is-current .track-title{color:var(--accent);font-weight:600}.track-actions{opacity:0;transition:opacity .2s var(--ease);gap:2px;padding-right:6px;display:flex}.track:hover .track-actions,.track:focus-within .track-actions{opacity:1}.empty-note{font-family:var(--font-display);color:var(--ink-soft);border-radius:var(--r-md);background:var(--surface-2);border:1px dashed var(--line);margin:8px 0 0;padding:14px 16px;font-size:1rem;font-style:italic;line-height:1.5}.preset-row{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.mixer{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;display:grid}.mix-cell{border-radius:var(--r-md);border:1px solid var(--line-soft);background:var(--paper);transition:border-color .25s var(--ease), background .25s var(--ease), transform .18s var(--ease), box-shadow .25s var(--ease);flex-direction:column;gap:7px;padding:10px 10px 12px;display:flex}.mix-cell:hover{box-shadow:var(--glow);transform:translateY(-2px)}.mix-cell.is-on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent)}.mix-toggle{cursor:pointer;color:inherit;font:inherit;border-radius:var(--r-sm);background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:0;display:flex}.mix-toggle:focus-visible{box-shadow:var(--ring);outline:none}.mix-icon{transition:transform .25s var(--ease);font-size:1.5rem;line-height:1}.mix-cell.is-on .mix-icon{animation:3.4s ease-in-out infinite pulse-soft}.mix-toggle:hover .mix-icon{transform:scale(1.15)rotate(-4deg)}.mix-label{color:var(--ink-soft);font-size:.74rem;font-weight:500}.mix-cell.is-on .mix-label{color:var(--accent);font-weight:600}.mix-slider{width:100%;height:4px}@keyframes pulse-soft{0%,to{opacity:1;transform:scale(1)}50%{opacity:.82;transform:scale(1.1)}}.keypad{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.key{font-family:var(--font-mono);border:1px solid var(--line);background:var(--surface);min-width:52px;height:52px;color:var(--ink);cursor:pointer;transition:transform 80ms var(--ease), background .2s var(--ease), border-color .2s var(--ease);border-bottom-width:4px;border-radius:12px;justify-content:center;align-items:center;padding:0 .6rem;font-size:1rem;font-weight:600;display:inline-flex;position:relative}.key:hover{background:var(--surface-2);border-color:var(--accent)}.key:active,.key.is-down{background:var(--accent-soft);border-bottom-width:1px;border-color:var(--accent);color:var(--accent);transform:translateY(3px)}.key:focus-visible{box-shadow:var(--ring);outline:none}.key.spacebar{min-width:130px;color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, var(--line));font-size:.8rem}.keyhint{font-family:var(--font-mono);color:var(--ink-faint);text-align:center;margin:12px 0 0;font-size:.68rem}.terminal-log{font-family:var(--font-mono);color:var(--ink-soft);border-radius:var(--r-sm);background:var(--paper-deep);border:1px solid var(--line-soft);align-items:center;gap:8px;min-height:34px;margin-top:14px;padding:.6rem .85rem;font-size:.76rem;display:flex}.terminal-log .prompt{color:var(--accent);font-weight:600}.terminal-log .text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cursor-blink{background:var(--green);flex-shrink:0;width:7px;height:13px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.start-overlay{z-index:100;background:var(--paper);cursor:pointer;transition:opacity .7s var(--ease), visibility .7s;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:fixed;inset:0}.start-overlay.is-hidden{opacity:0;pointer-events:none;visibility:hidden}.cup{margin-bottom:10px;font-size:4rem;line-height:1;animation:4.5s ease-in-out infinite float;position:relative}.steam{background:linear-gradient(to top, color-mix(in srgb, var(--ink-faint) 55%, transparent), transparent);opacity:0;border-radius:99px;width:5px;height:26px;animation:3.4s ease-in-out infinite steam;position:absolute;top:-22px;left:50%}.steam:nth-child(2){margin-left:-14px;animation-delay:.5s}.steam:nth-child(3){margin-left:10px;animation-delay:1.1s}@keyframes steam{0%{opacity:0;transform:translateY(6px)scaleY(.6)}35%{opacity:.75}to{opacity:0;transform:translateY(-22px)scaleY(1.35)}}.start-cmd{font-family:var(--font-mono);color:var(--ink);align-items:center;gap:6px;font-size:1.25rem;display:flex}.start-title{font-family:var(--font-display);color:var(--ink-soft);margin:6px 0 0;font-size:1.55rem;font-style:italic}.start-hint{color:var(--ink-faint);border:1px solid var(--line);border-radius:99px;margin-top:26px;padding:.5rem 1rem;font-size:.8rem}.footer{border-top:1px solid var(--line-soft);text-align:center;margin-top:48px;padding:28px 24px 0}.footer-quote{font-family:var(--font-display);color:var(--ink-soft);margin:0 0 8px;font-size:1.15rem;font-style:italic}.footer-meta{font-family:var(--font-mono);color:var(--ink-faint);margin:0;font-size:.68rem}@media (max-width:980px){.grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:620px){.shell{padding:0 14px 48px}.topbar{padding:12px 14px}.brand-name{font-size:1.4rem}.panel{border-radius:var(--r-md);padding:15px}.panel-title{font-size:1.28rem}.add-row,.add-fields{flex-direction:column}.vol-inline{width:100%;margin-left:0}.vol-inline input{flex:1;width:auto}.mixer{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}.track-actions{opacity:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.consent-wrap{z-index:200;animation:consent-up .45s var(--ease);justify-content:center;padding:16px;display:flex;position:fixed;inset:auto 0 0}@keyframes consent-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.consent-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:620px;max-height:calc(100vh - 32px);box-shadow:var(--glow-lg);padding:20px;overflow-y:auto}.consent-head{align-items:flex-start;gap:14px;display:flex}.consent-icon{flex-shrink:0;font-size:1.8rem;line-height:1}.consent-title{font-family:var(--font-display);color:var(--ink);margin:0 0 4px;font-size:1.4rem;font-weight:600}.consent-text{color:var(--ink-soft);margin:0;font-size:.84rem;line-height:1.5}.consent-options{flex-direction:column;gap:6px;margin:16px 0;display:flex}.consent-row{border-radius:var(--r-md);border:1px solid var(--line-soft);background:var(--paper);cursor:pointer;transition:border-color .2s var(--ease), background .2s var(--ease);justify-content:space-between;align-items:center;gap:14px;padding:11px 13px;display:flex}.consent-row:hover{border-color:var(--accent)}.consent-row.is-locked{cursor:default;opacity:.82}.consent-row.is-locked:hover{border-color:var(--line-soft)}.consent-row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.consent-row-text strong{color:var(--ink);font-size:.85rem}.consent-row-text span{color:var(--ink-soft);font-size:.76rem;line-height:1.4}.consent-lock{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--green);white-space:nowrap;flex-shrink:0;font-size:.64rem}.consent-check{width:19px;height:19px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.consent-actions{flex-wrap:wrap;gap:8px;display:flex}.consent-links{color:var(--ink-faint);margin:14px 0 0;font-size:.76rem}.consent-links a{color:var(--ink-soft);text-underline-offset:2px;text-decoration:underline}.consent-links a:hover{color:var(--accent)}.footer-nav{flex-wrap:wrap;justify-content:center;gap:8px 20px;margin:14px 0 16px;font-size:.8rem;display:flex}.footer-nav a,.footer-link-btn{color:var(--ink-soft);transition:color .2s var(--ease), border-color .2s var(--ease);border-bottom:1px solid #0000;text-decoration:none}.footer-nav a:hover,.footer-link-btn:hover{color:var(--accent);border-bottom-color:var(--accent)}.footer-link-btn{font:inherit;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #0000;padding:0}.legal{z-index:1;max-width:760px;margin:0 auto;padding:48px 24px 24px;position:relative}.legal-back{font-family:var(--font-mono);color:var(--ink-soft);border:1px solid var(--line);background:var(--surface);transition:border-color .2s var(--ease), color .2s var(--ease);border-radius:99px;margin-bottom:28px;padding:.4rem .8rem;font-size:.78rem;text-decoration:none;display:inline-block}.legal-back:hover{color:var(--accent);border-color:var(--accent)}.legal h1{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:0 0 6px;font-size:2.6rem;font-weight:600;line-height:1.1}.legal-meta{font-family:var(--font-mono);color:var(--ink-faint);margin:0 0 26px;font-size:.74rem}.legal-lead{color:var(--ink-soft);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);padding:16px 18px;font-size:1.02rem;line-height:1.65}.legal h2{font-family:var(--font-display);color:var(--ink);border-bottom:1px solid var(--line-soft);margin:36px 0 10px;padding-bottom:6px;font-size:1.5rem;font-weight:600}.legal p,.legal li{color:var(--ink-soft);font-size:.92rem;line-height:1.7}.legal strong{color:var(--ink)}.legal ul{padding-left:20px}.legal li{margin-bottom:6px}.legal a{color:var(--accent);text-underline-offset:2px}.legal code{font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--line-soft);color:var(--ink);border-radius:5px;padding:.12em .4em;font-size:.82em}.legal-table{border-collapse:collapse;width:100%;margin:14px 0;font-size:.84rem;display:block;overflow-x:auto}.legal-table th,.legal-table td{text-align:left;border-bottom:1px solid var(--line-soft);vertical-align:top;color:var(--ink-soft);padding:9px 12px;line-height:1.5}.legal-table th{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);border-bottom-color:var(--line);white-space:nowrap;font-size:.68rem}.legal-table tbody tr:hover{background:var(--surface)}.legal-note{border-radius:var(--r-md);background:var(--surface-2);border:1px dashed var(--line);margin-top:40px;padding:14px 16px;font-style:italic;color:var(--ink-faint)!important;font-size:.84rem!important}.faq-item{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);margin:0 0 10px;padding:0 16px}.faq-item summary{cursor:pointer;color:var(--ink);padding:14px 24px 14px 0;font-size:.95rem;font-weight:600;list-style:none;position:relative}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";font-family:var(--font-mono);color:var(--accent);transition:transform .2s var(--ease);position:absolute;top:12px;right:0}.faq-item[open] summary:after{transform:rotate(45deg)}.faq-item summary:focus-visible{box-shadow:var(--ring);border-radius:var(--r-sm);outline:none}.faq-item p{margin:0 0 14px}.contact-form{gap:16px;margin:8px 0 12px;display:grid}.contact-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.contact-field{align-content:start;gap:6px;display:grid}.contact-field>span{color:var(--ink);font-size:.82rem;font-weight:600}.contact-field small{color:var(--ink-faint);font-size:.74rem}.contact-field input,.contact-field select,.contact-field textarea{width:100%;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:.6rem .75rem;font-size:.9rem}.contact-field textarea{resize:vertical;min-height:140px;line-height:1.6}.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.contact-form .btn{justify-self:start}.contact-trap{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.contact-error{border-radius:var(--r-sm);background:color-mix(in srgb, var(--red) 10%, transparent);margin:0;padding:10px 14px;color:var(--red)!important;font-size:.86rem!important}.contact-done{border-radius:var(--r-md);background:color-mix(in srgb, var(--green) 12%, transparent);border:1px solid color-mix(in srgb, var(--green) 40%, transparent);margin:8px 0 12px;padding:18px 20px}.contact-done p{margin:0}.contact-done-title{font-family:var(--font-display);color:var(--ink)!important;margin-bottom:4px!important;font-size:1.4rem!important}.check-list{gap:8px;margin:0 0 16px;list-style:none;display:grid;padding:0!important}.check{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);align-items:flex-start;gap:12px;padding:10px 14px;display:flex;margin:0!important;font-size:.86rem!important}.check strong{font-size:.9rem}.check-icon{width:22px;height:22px;font-family:var(--font-mono);color:var(--accent-ink);border-radius:99px;flex:none;place-items:center;margin-top:1px;font-size:.72rem;font-weight:600;display:grid}.check.is-ok .check-icon{background:var(--green)}.check.is-warn .check-icon{background:var(--accent)}.check.is-fail .check-icon{background:var(--red)}@media (max-width:620px){.legal{padding:28px 16px 16px}.contact-row{grid-template-columns:1fr}.legal h1{font-size:2rem}.legal h2{font-size:1.3rem}.consent-card{padding:16px}.consent-actions .btn{flex:auto}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.msg-page{z-index:1;justify-content:center;align-items:center;min-height:72vh;padding:48px 24px 24px;display:flex;position:relative}.msg-card{text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:560px;box-shadow:var(--glow-lg);animation:slide-in .4s var(--ease);padding:36px 30px 26px}.msg-emoji{font-size:3.2rem;line-height:1;animation:4.5s ease-in-out infinite float;display:block}.msg-code{font-family:var(--font-mono);letter-spacing:.18em;color:var(--accent);margin:16px 0 4px;font-size:.74rem;font-weight:600}.msg-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:0 0 12px;font-size:2.1rem;font-weight:600;line-height:1.15}.msg-body p{color:var(--ink-soft);margin:0 0 8px;font-size:.92rem;line-height:1.65}.msg-digest{font-family:var(--font-mono);color:var(--ink-faint)!important;font-size:.74rem!important}.msg-digest code{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:5px;padding:.1em .4em}.msg-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:22px;display:flex}.msg-actions .btn{text-decoration:none}.msg-terminal{border-radius:var(--r-sm);background:var(--paper-deep);border:1px solid var(--line-soft);font-family:var(--font-mono);color:var(--ink-faint);text-align:left;align-items:center;gap:8px;margin-top:26px;padding:.6rem .85rem;font-size:.72rem;display:flex}.msg-terminal .prompt{color:var(--accent);font-weight:600}.msg-terminal .text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.loading-page{z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:70vh;display:flex;position:relative}.loading-cup{font-size:2.8rem;line-height:1;animation:2.6s ease-in-out infinite float}.loading-text{font-family:var(--font-display);color:var(--ink-soft);margin:0;font-size:1.15rem;font-style:italic}.loading-bar{background:var(--line);border-radius:99px;width:190px;height:4px;overflow:hidden}.loading-bar span{background:var(--accent);width:42%;height:100%;animation:brew 1.5s var(--ease) infinite;border-radius:99px;display:block}@keyframes brew{0%{transform:translate(-110%)}to{transform:translate(340%)}}@media (max-width:620px){.msg-page{min-height:66vh;padding:28px 16px 16px}.msg-card{padding:28px 20px 20px}.msg-title{font-size:1.65rem}.msg-actions .btn{flex:auto}}
