@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Permanent Marker;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/permanent-marker-latin-400-normal-BF23djCy.woff2)format("woff2"),url(/assets/permanent-marker-latin-400-normal-BnZj5c41.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--shell:#141312;--shell-2:#1d1b19;--shell-3:#28251f;--shell-edge:#3a362f;--window:#0b0a09;--bone:#f3efe6;--bone-dim:#b3ada2;--jcard:#f2c230;--jcard-shade:#e4b21f;--ink:#1d1d1b;--ink-soft:#4a3f1a;--rule:#1d1d1b47;--red:#d7372c;--red-fill:#c4302a;--blue-fill:#2f68b0;--red-hot:#ef5146;--blue:#3d7cc9;--metal:#b9b4aa;--label:#faf8f3;--error-on-dark:#ff8a7f;--error-on-card:#9e1f16;--font-print:"Archivo Variable", "Archivo", system-ui, sans-serif;--font-hand:"Permanent Marker", "Archivo Variable", cursive;--reel-period:1.8s;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font-print);color:var(--bone);background:var(--shell);-webkit-font-smoothing:antialiased;accent-color:var(--red);caret-color:var(--red-hot);font-size:16px;line-height:1.45}*{box-sizing:border-box}body{background:var(--shell);min-height:100vh;margin:0}::selection{background:var(--jcard);color:var(--ink)}.jcard ::selection{background:var(--ink);color:var(--jcard)}.slip ::selection{background:var(--ink);color:var(--jcard)}*{scrollbar-width:thin;scrollbar-color:var(--shell-edge) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--shell-edge);border:2px solid var(--shell);border-radius:10px}::-webkit-scrollbar-track{background:0 0}:focus-visible{outline:3px solid var(--red-hot);outline-offset:3px;border-radius:4px}.jcard :focus-visible,.slip :focus-visible{outline-color:var(--ink)}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:2px}a:hover{color:var(--jcard)}h1,h2,h3{letter-spacing:.01em;text-wrap:balance;margin:0;font-weight:800;font-stretch:125%;line-height:1.05}p{margin:0}.print{text-transform:uppercase;letter-spacing:.04em;font-weight:800;font-stretch:125%}.hand{font-family:var(--font-hand);letter-spacing:.01em;text-transform:none;font-weight:400;font-stretch:100%}.num{font-variant-numeric:tabular-nums}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}input,select,button,textarea{font:inherit;color:inherit}.field{border:1px solid var(--shell-edge);background:var(--window);width:100%;min-height:44px;color:var(--bone);border-radius:6px;padding:10px 12px}.field::placeholder{color:var(--bone-dim)}.jcard .field,.slip .field{border:0;border-bottom:2px solid var(--ink);color:var(--ink);background:#ffffff57;border-radius:2px 2px 0 0}.jcard .field::placeholder,.slip .field::placeholder{color:var(--ink-soft)}.btn{cursor:pointer;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;background:0 0;border:2px solid;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 18px;font-size:.8rem;font-weight:800;font-stretch:125%;transition:background-color .16s ease-out,color .16s ease-out,transform .12s ease-out;display:inline-flex}.btn:hover:not(:disabled){background:#f3efe61a}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-red:disabled,.btn-ink:disabled{opacity:1;background:var(--shell-3);border-color:var(--shell-3);color:var(--bone-dim)}.jcard .btn-red:disabled,.jcard .btn-ink:disabled,.slip .btn-red:disabled,.slip .btn-ink:disabled{color:var(--ink-soft);background:#1d1d1b1f;border-color:#0000}.btn svg{flex:none;width:18px;height:18px}.btn-red{background:var(--red-fill);border-color:var(--red-fill);color:var(--label)}.btn-red:hover:not(:disabled){background:#a92822;border-color:#a92822}.btn-ink{background:var(--ink);border-color:var(--ink);color:var(--jcard)}.btn-ink:hover:not(:disabled){background:#000}.jcard .btn:not(.btn-red):not(.btn-ink),.slip .btn:not(.btn-red):not(.btn-ink){color:var(--ink)}.jcard .btn:hover:not(:disabled):not(.btn-red):not(.btn-ink){background:#1d1d1b1a}.icon-btn{width:36px;height:36px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;padding:0;display:inline-grid}.icon-btn:hover:not(:disabled){background:#1d1d1b1f}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.icon-btn svg{width:18px;height:18px}.keys{align-items:stretch;gap:6px;display:flex}.key{background:linear-gradient(var(--shell-3), var(--shell-2));min-width:64px;min-height:58px;color:var(--bone);cursor:pointer;border:0;border-radius:4px 4px 7px 7px;align-content:center;justify-items:center;gap:4px;padding:8px 12px 10px;transition:transform 90ms ease-out,box-shadow 90ms ease-out,background-color .16s;display:grid;box-shadow:0 5px #000,0 7px 12px #00000073}.key svg{width:20px;height:20px}.key span{letter-spacing:.1em;text-transform:uppercase;font-size:.62rem;font-weight:800;font-stretch:125%}.key:hover:not(:disabled){background:linear-gradient(#332f28, var(--shell-3))}.key:active:not(:disabled),.key[aria-pressed=true]{transform:translateY(4px);box-shadow:0 1px #000,0 2px 4px #00000073}.key:disabled{opacity:.4;cursor:not-allowed}.key.key-red{background:linear-gradient(var(--red), var(--red-fill));color:var(--label);box-shadow:0 5px #7d1c15,0 7px 12px #00000073}.key.key-red:active:not(:disabled){box-shadow:0 1px #7d1c15}.msg{font-size:.9rem}.msg-error{color:var(--error-on-dark)}.jcard .msg-error,.slip .msg-error{color:var(--error-on-card);font-weight:600}.msg-note{color:var(--bone-dim)}.jcard .msg-note,.slip .msg-note{color:var(--ink-soft)}.cassette{width:210px;color:var(--ink);background:linear-gradient(#242120,#171514);border-radius:10px;padding:10px 10px 12px;position:relative;box-shadow:inset 0 1px #ffffff14,0 10px 22px -10px #000c}.cassette:before,.cassette:after{content:"";background:#3b3732;border-radius:50%;width:6px;height:6px;position:absolute;top:8px;box-shadow:inset 0 1px 1px #000}.cassette:before{left:8px}.cassette:after{right:8px}.cassette-label{background:var(--label);border-radius:3px;margin:4px 6px 0;padding:6px 10px 8px;position:relative;overflow:hidden}.cassette-band{color:var(--label);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;justify-content:space-between;gap:6px;margin:0 -10px 6px;padding:2px 10px;font-size:.68rem;font-weight:800;font-stretch:100%;display:flex}.cassette-band[data-platform=youtube]{background:var(--red-fill)}.cassette-band[data-platform=spotify]{background:var(--blue-fill)}.cassette-band[data-platform=soundcloud]{background:#55524b}.cassette-name{font-family:var(--font-hand);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:1.15rem;line-height:1.1;overflow:hidden}.cassette-tags{letter-spacing:.08em;text-transform:uppercase;height:1.45em;color:var(--ink-soft);gap:6px;margin-top:2px;font-size:.66rem;font-weight:700;font-stretch:110%;line-height:1.45;display:flex}.cassette-window{width:100%;height:auto;margin-top:8px;display:block}.cassette-status{text-align:center;letter-spacing:.1em;text-transform:uppercase;color:var(--bone-dim);margin-top:8px;font-size:.66rem;font-weight:700;font-stretch:110%}.cassette-status[data-tone=live]{color:var(--jcard)}.cassette-status[data-tone=warn]{color:var(--error-on-dark)}.cassette.is-offline{opacity:.55}.reel{transform-box:fill-box;transform-origin:50%}.is-spinning .reel{animation:reel-spin var(--reel-period) linear infinite}@keyframes reel-spin{to{transform:rotate(360deg)}}.spool{transition:r .9s ease-out}.page{align-content:start;justify-items:center;gap:28px;min-height:100vh;padding:clamp(16px,4vw,40px);display:grid}.brand{letter-spacing:.08em;color:var(--bone);font-size:1.25rem;font-weight:900;font-stretch:125%;text-decoration:none}.brand:hover{color:var(--jcard)}.jcard{background:var(--jcard);color:var(--ink);border-radius:3px;position:relative;box-shadow:0 30px 60px -30px #000000e6,inset 0 2px #ffffff40}.spine{writing-mode:vertical-rl;background:var(--red-fill);color:var(--label);text-orientation:sideways;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-size:.8rem;font-weight:900;font-stretch:125%;display:flex;overflow:hidden;transform:rotate(180deg)}.spine .hand{text-transform:none;letter-spacing:.02em;font-size:1rem}.fold{border-left:1px solid var(--rule)}.slip{background:var(--jcard);width:min(460px,100%);color:var(--ink);border-radius:3px;overflow:hidden;box-shadow:0 24px 50px -28px #000000e6}.slip-stripe{background:linear-gradient(90deg, var(--red) 0 62%, var(--blue) 62% 100%);height:10px}.slip-body{gap:18px;padding:24px;display:grid}.slip h1,.slip h2{text-transform:uppercase;font-size:clamp(1.5rem,5vw,2rem)}.slip .lead{color:var(--ink-soft);margin-top:8px;font-size:.95rem}.landing{gap:28px;width:min(1100px,100%);display:grid}.landing-case{grid-template-columns:58px minmax(0,1.35fr) minmax(0,1fr);min-height:420px;display:grid;overflow:hidden}.landing-front{align-content:center;gap:22px;padding:clamp(24px,5vw,56px);display:grid}.landing-front h1{text-transform:uppercase;letter-spacing:-.01em;max-width:12ch;font-size:clamp(2.4rem,7.5vw,5.4rem);font-weight:900;line-height:.92}.landing-front h1 .hand{text-transform:none;color:var(--red);transform-origin:0;margin-top:.1em;font-size:.62em;font-weight:400;line-height:1.1;display:block;transform:rotate(-2deg)}.landing-front .lead{max-width:46ch;color:var(--ink-soft);font-size:clamp(1rem,2vw,1.2rem)}.landing-actions{flex-wrap:wrap;align-items:end;gap:14px 22px;display:flex}.code-slot{gap:6px;display:grid}.code-slot label{letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-weight:800;font-stretch:125%}.code-slot-row{gap:8px;display:flex}.counter{background:var(--ink);width:11ch;min-height:44px;color:var(--jcard);font-variant-numeric:tabular-nums;letter-spacing:.3em;text-transform:uppercase;border:0;border-radius:4px;padding:8px 12px;font-size:1.15rem;font-weight:800;font-stretch:100%;box-shadow:inset 0 3px 6px #0009}.counter::placeholder{color:#f2c23073;letter-spacing:.3em}.landing-flap{align-content:center;gap:14px;padding:clamp(24px,4vw,44px);display:grid}.landing-flap h2{text-transform:uppercase;font-size:1.6rem;font-weight:900}.landing-flap ol{margin:0;padding:0;list-style:none}.landing-flap li{border-bottom:1px solid var(--rule);font-family:var(--font-hand);grid-template-columns:1.8em 1fr auto;align-items:baseline;gap:8px;padding:9px 0;font-size:1.1rem;display:grid}.landing-flap li .num{font-family:var(--font-print);color:var(--ink-soft);font-size:.85rem;font-weight:700}.landing-flap small{color:var(--ink-soft);font-size:.8rem}.landing-tapes{flex-wrap:wrap;justify-content:center;gap:18px;display:flex}.landing-tapes-caption{text-align:center;color:var(--bone-dim);max-width:60ch;margin:0 auto;font-size:.95rem}.join-form{gap:18px;display:grid}.join-form .label{letter-spacing:.1em;text-transform:uppercase;gap:6px;font-size:.72rem;font-weight:800;font-stretch:125%;display:grid}.join-form .name-input{font-family:var(--font-hand);text-transform:none;letter-spacing:.01em;font-size:1.35rem}.tape-types{border:0;gap:8px;margin:0;padding:0;display:grid}.tape-types legend{letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;padding:0;font-size:.72rem;font-weight:800;font-stretch:125%}.tape-type{cursor:pointer;background:#ffffff38;border:2px solid #0000;border-radius:4px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.tape-type:hover{background:#ffffff57}.tape-type:has(input:checked){border-color:var(--ink);background:#ffffff73}.tape-type:has(input:focus-visible){outline:3px solid var(--ink);outline-offset:2px}.tape-type input{opacity:0;pointer-events:none;position:absolute}.tape-type-chip{width:34px;height:22px;color:var(--label);border-radius:3px;place-items:center;font-size:.7rem;font-weight:900;font-stretch:125%;display:grid}.tape-type-chip[data-platform=youtube]{background:var(--red-fill)}.tape-type-chip[data-platform=spotify]{background:var(--blue-fill)}.tape-type-chip[data-platform=soundcloud]{background:#55524b}.tape-type-name{font-weight:700}.tape-type-name small{color:var(--ink-soft);font-size:.8rem;font-weight:500;display:block}.tape-type-mark{font-family:var(--font-hand);color:var(--red);opacity:0;font-size:1.1rem}.tape-type:has(input:checked) .tape-type-mark{opacity:1}.room{gap:24px;width:min(1280px,100%);margin:0 auto;padding:clamp(12px,3vw,28px);display:grid}.room-bar{flex-wrap:wrap;align-items:center;gap:12px 16px;display:flex}.room-bar .brand{margin-right:auto}.room-bar .platform-switcher{color:var(--bone-dim);align-items:center;gap:8px;font-size:.85rem;display:flex}.room-bar select{background:var(--window);border:1px solid var(--shell-edge);min-height:44px;color:var(--bone);border-radius:6px;padding:0 10px;font-weight:700}.status-strip{flex-wrap:wrap;gap:8px;display:flex}.status-pill{background:var(--shell-3);color:var(--jcard);border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:700}.manual-link{color:var(--bone-dim);align-items:center;gap:8px;font-size:.9rem;display:flex}.manual-link .field{max-width:380px}.room-card{grid-template-columns:56px minmax(0,1.2fr) minmax(0,1fr);min-height:440px;display:grid}.front{flex-direction:column;gap:18px;padding:clamp(18px,3vw,32px);display:flex}.front>.host-deck{margin-top:auto}.now{gap:16px;display:grid}.now-title-wrap{max-width:100%;display:inline-block;position:relative}.now-title{font-family:var(--font-hand);letter-spacing:0;text-transform:none;overflow-wrap:anywhere;z-index:1;padding:.15em .3em;font-size:clamp(1.8rem,4vw,3rem);font-weight:400;line-height:1.08;position:relative}.now-circle{pointer-events:none;width:108%;height:112%;position:absolute;inset:-6% -4%;overflow:visible}.now-circle path,.now-underline path{fill:none;stroke:var(--red);stroke-width:3.2px;stroke-linecap:round}.now-title-wrap.is-long .now-title{padding:0 0 .25em;font-size:clamp(1.4rem,2.6vw,2.1rem)}.now-underline{width:min(100%,22em);height:14px;margin-top:-4px;display:block}.now-underline path{stroke-width:3.6px}.now-artist{text-transform:uppercase;letter-spacing:.04em;font-size:.95rem;font-weight:800;font-stretch:125%}.now-empty h2{text-transform:uppercase;font-size:clamp(1.6rem,3.4vw,2.4rem);font-weight:900}.now-empty p{color:var(--ink-soft);max-width:40ch;margin-top:10px}.deck-window{background:var(--shell);border-radius:10px;gap:8px;padding:12px 14px 10px;display:grid;box-shadow:inset 0 3px 10px #000000b3,0 1px #ffffff4d}.deck-reels{width:100%;max-width:560px;height:auto;margin:0 auto;display:block}.deck-counter{color:var(--jcard);font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;font-size:.85rem;font-weight:700;display:flex}.is-whirring .reel{animation:.28s linear infinite reel-spin}.seek{width:100%;accent-color:var(--ink)}.now-state{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.state-tag{background:var(--ink);color:var(--jcard);letter-spacing:.1em;text-transform:uppercase;border-radius:3px;align-items:center;gap:6px;padding:4px 10px;font-size:.68rem;font-weight:800;font-stretch:125%;display:inline-flex}.state-tag[data-tone=live]:before{content:"";background:var(--red-hot);border-radius:50%;width:7px;height:7px}.now-note{color:var(--ink-soft);font-weight:600}.host-deck{border-top:1px solid var(--rule);gap:10px;padding-top:6px;display:grid}.host-deck-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.side-a{align-content:start;gap:16px;padding:clamp(18px,3vw,32px);display:grid}.side-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.side-head h2{text-transform:uppercase;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:900}.side-head p{color:var(--ink-soft);font-size:.85rem;font-weight:600}.tracklist{margin:0;padding:0;list-style:none}.track{border-bottom:1px solid var(--rule);grid-template-columns:2.2em minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;display:grid}.track-no{font-family:var(--font-hand);text-align:center;font-size:1.3rem;position:relative}.track.is-current .track-no:after{content:"";border:2.5px solid var(--red);border-radius:50% 46% 52% 48%;position:absolute;inset:-4px -2px;transform:rotate(-8deg)}.track-main{min-width:0}.track-title{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.track-sub{color:var(--ink-soft);flex-wrap:wrap;gap:4px 10px;font-size:.8rem;display:flex}.match{align-items:center;gap:4px;font-weight:600;display:inline-flex}.match svg{width:14px;height:14px}.match[data-status=none]{color:var(--error-on-card)}.track-end{align-items:center;gap:10px;display:flex}.track-actions{gap:2px;display:flex}.track-time{color:var(--ink-soft);text-align:right;min-width:2.8em;font-size:.85rem;font-weight:700}.tracklist-empty{color:var(--ink-soft);border-bottom:1px solid var(--rule);padding:14px 0}.add-song{gap:10px;padding-top:6px;display:grid}.add-song h3{text-transform:uppercase;letter-spacing:.06em;font-size:.9rem}.row{gap:8px;display:flex}.row .field{flex:1;min-width:0}.tabs{flex-wrap:wrap;gap:4px;display:flex}.tab{min-height:36px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:0 12px;font-size:.85rem;font-weight:700}.tab:hover{background:#1d1d1b1a}.tab[aria-selected=true]{background:var(--ink);color:var(--jcard)}.results{margin:0;padding:0;list-style:none;display:grid}.result{border-bottom:1px dashed var(--rule);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 0;display:grid}.result-main{min-width:0}.result-title{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.result-sub{color:var(--ink-soft);font-size:.8rem}.deck{gap:14px;display:grid}.deck-head{align-items:baseline;gap:12px;display:flex}.deck-head h2{text-transform:uppercase;letter-spacing:.06em;font-size:1.1rem}.deck-head p{color:var(--bone-dim);font-size:.9rem}.deck-tapes{gap:16px;margin:0;padding:4px 2px 12px;list-style:none;display:flex;overflow-x:auto}.lower{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:start;gap:20px;display:grid}.lower-col{align-content:start;gap:20px;display:grid}.strip{background:var(--window);box-shadow:inset 0 2px 8px #000000b3, inset 0 0 0 1px var(--shell-edge);border-radius:6px;gap:12px;padding:16px;display:grid}.strip h2,.notes h2{text-transform:uppercase;letter-spacing:.06em;font-size:1rem}.notes{background:var(--jcard);color:var(--ink);border-radius:3px;gap:12px;padding:18px 20px 20px;display:grid;box-shadow:0 24px 50px -28px #000000e6}.notes h2{font-size:1.3rem;font-weight:900}.notes .panel-head p{color:var(--ink-soft)}.notes .field{border:0;border-bottom:2px solid var(--ink);color:var(--ink);background:#ffffff57;border-radius:2px 2px 0 0}.notes .field::placeholder{color:var(--ink-soft)}.notes :focus-visible{outline-color:var(--ink)}.panel-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.panel-head p{color:var(--bone-dim);font-size:.85rem}.requests{gap:8px;margin:0;padding:0;list-style:none;display:grid}.request{background:var(--jcard);color:var(--ink);border-radius:4px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.request-title{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.request-from{color:var(--ink-soft);font-size:.8rem}.request-from .hand{color:var(--ink);font-size:.95rem}.request-actions{gap:6px;display:flex}.request-actions .btn{min-height:36px;padding:0 12px}.reactions{flex-wrap:wrap;gap:8px;display:flex}.reaction-key{background:var(--shell-3);cursor:pointer;border:0;border-radius:6px;width:48px;height:44px;font-size:1.35rem;transition:transform 90ms,box-shadow 90ms;box-shadow:0 3px #000}.reaction-key:hover{background:#332f28}.reaction-key:active{transform:translateY(3px);box-shadow:0 0 #000}.chat-log{align-content:start;min-height:120px;max-height:340px;margin:0;padding:0 4px 0 0;list-style:none;display:grid;overflow-y:auto}.chat-line{border-bottom:1px solid var(--rule);gap:1px;padding:8px 0;display:grid}.chat-name{font-family:var(--font-hand);color:var(--ink);font-size:1.05rem}.chat-line.is-mine .chat-name{color:var(--red-fill)}.chat-text{color:var(--ink);overflow-wrap:anywhere}.chat-empty{color:var(--ink-soft);border-bottom:1px solid var(--rule);padding:8px 0}.reaction-layer{pointer-events:none;z-index:20;position:fixed;inset:0;overflow:hidden}.floating-reaction{font-size:2rem;animation:3s cubic-bezier(.16,1,.3,1) forwards float-up;position:absolute;bottom:0}@keyframes float-up{0%{opacity:1;transform:translateY(0)rotate(-6deg)}to{opacity:0;transform:translateY(-70vh)rotate(8deg)}}.debug{background:var(--window);border:1px dashed var(--shell-edge);color:var(--bone-dim);border-radius:8px;padding:12px 14px}.debug summary{cursor:pointer;color:var(--bone);font-weight:700}.debug dl{grid-template-columns:auto 1fr;gap:4px 12px;margin:8px 0 0;font-family:ui-monospace,monospace;font-size:.85rem;display:grid}.debug dd{margin:0}#player-dock{background:var(--window);width:calc(min(1280px,100%) - 2*clamp(12px,3vw,28px));box-shadow:inset 0 2px 8px #000000b3, inset 0 0 0 1px var(--shell-edge);border-radius:6px;flex-wrap:wrap;align-items:flex-start;gap:12px;margin:0 auto 40px;padding:14px;display:flex}#player-dock:before{content:"Your player";letter-spacing:.1em;text-transform:uppercase;color:var(--bone-dim);flex-basis:100%;font-size:.72rem;font-weight:800;font-stretch:125%}#player-dock:empty{display:none}#player-dock iframe{border:0;border-radius:6px;width:320px;max-width:100%;display:block}body:not(:has(.room)) #player-dock{opacity:0;pointer-events:none;width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}@media (width<=960px){.landing-case{grid-template-columns:58px minmax(0,1fr)}.landing-flap{border-left:0;border-top:1px solid var(--rule);grid-column:2}.room-card{grid-template-columns:44px minmax(0,1fr)}.side-a{border-left:0;border-top:1px solid var(--rule);grid-column:2}.lower{grid-template-columns:1fr}}@media (width<=600px){.room-bar{grid-template-columns:minmax(0,1fr) auto auto;gap:8px;display:grid}.room-bar .platform-switcher{min-width:0}.room-bar .platform-switcher select{width:100%;min-width:0}.room-bar .brand{margin:0}.wide-only{display:none}.room-bar .btn{padding:0 12px;font-size:.72rem}.bar-copy{grid-area:1/2}.bar-leave{grid-area:1/3}.room-bar .platform-switcher{grid-area:2/1/auto/-1}.room-bar .platform-switcher select{flex:1}.room{flex-direction:column;display:flex}.room-card{display:contents}.room-card .spine{border-radius:3px 3px 0 0;order:1}.room-card .front{background:var(--jcard);border-radius:0 0 3px 3px;order:2;margin-top:-24px}.deck{order:3}.room-card .side-a{background:var(--jcard);border-top:0;border-radius:3px;order:4}.lower{flex-direction:column;order:5;display:flex}.lower-col{display:contents}.requests-panel{order:1}.notes{order:2}.react-panel{order:3}.lower .debug{order:4}.deck-tapes>li{flex:0 0 calc(50% - 8px)}.deck-tapes .cassette{width:100%}.link-row{flex-direction:column}#player-dock iframe{width:100%}.room-card{grid-template-columns:1fr}.room-card .spine{writing-mode:horizontal-tb;padding:8px 16px;font-size:.72rem;transform:none}.side-a{grid-column:1}.landing-case{grid-template-columns:1fr}.landing-case .spine{writing-mode:horizontal-tb;padding:8px 16px;transform:none}.landing-flap{grid-column:1}.key{min-width:56px}}@media (prefers-reduced-motion:reduce){.is-spinning .reel{animation:none}.spool{transition:none}.is-whirring .reel{animation:none}.floating-reaction{animation:none;bottom:40%}.btn,.key{transition:none}}
