:root{--bg: #f5f2fa;--surface: #ffffff;--surface-2: #eee8f6;--ink: #1e1929;--muted: #6c6480;--line: #e1d9ec;--accent: #6d3a96;--accent-ink: #ffffff;--accent-soft: #ece1f5;--card-face: #fbf8f1;--card-edge: #d9cfbf;--card-ink: #2a2233;--card-back: #1b2440;--card-back-2: #3a4870;--action: #c0582c;--effect: #3f68c9;--victory: #b0841f;--you: #6d3a96;--them: #3d7a6e;--radius: 14px;--radius-sm: 8px;--shadow: 0 1px 2px rgb(30 25 41 / .06), 0 4px 16px rgb(30 25 41 / .06);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #120d1f;--surface: #1b1430;--surface-2: #271d42;--ink: #f3eefe;--muted: #a99cc8;--line: #33285a;--accent: #c39bf5;--accent-ink: #1b1430;--accent-soft: #2f2352;--card-face: #241b3d;--card-edge: #4a3c78;--card-ink: #f3eefe;--card-back: #141b33;--card-back-2: #34406a;--action: #ec8a5c;--effect: #7fd4ff;--victory: #e2c37a;--you: #c39bf5;--them: #6fe0d2;--shadow: 0 1px 2px rgb(0 0 0 / .3), 0 4px 16px rgb(0 0 0 / .25);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;overscroll-behavior-x:none;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}h1,h2,h3{margin:0;line-height:1.2}[hidden]{display:none!important}.app{max-width:720px;margin:0 auto;padding:0 16px calc(24px + env(safe-area-inset-bottom));min-height:100vh}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 0 10px;background:var(--bg)}.brand{font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:.01em;white-space:nowrap}@media(max-width:400px){.brand{font-size:19px;line-height:1.1}.brand small{display:block;margin:1px 0 0}.topbar{gap:8px}.tab{padding:6px 11px}}.brand small{font-family:var(--font);font-size:11px;font-weight:400;color:var(--muted);margin-left:6px}.tabs{display:flex;gap:2px;padding:3px;border-radius:999px;background:var(--surface-2)}.tab{border:0;background:transparent;padding:6px 14px;border-radius:999px;font-size:14px;font-weight:500;color:var(--muted)}.tab[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.page-title{font-family:var(--serif);font-size:28px;font-weight:600;margin:12px 0 4px}.page-sub{color:var(--muted);margin:0 0 16px}.update-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0;padding:10px 14px;border-radius:var(--radius);background:var(--accent-soft);font-size:14px}.btn{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:10px 18px;font-weight:600;font-size:15px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-small{padding:6px 12px;font-size:13px}.btn:disabled{opacity:.45;cursor:default}.icon-btn{border:0;background:var(--surface-2);width:32px;height:32px;border-radius:999px;display:grid;place-items:center;flex:none}.legend{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.legend-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px;font-size:13px;color:var(--muted)}.legend-item strong{display:flex;align-items:center;gap:6px;color:var(--ink);font-size:14px}.rule-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.rule-list li{display:flex;gap:14px;padding:14px 16px;border-top:1px solid var(--line)}.rule-list li:first-child{border-top:0}.rule-num{flex:none;width:24px;height:24px;border-radius:999px;display:grid;place-items:center;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--muted);margin-top:1px}.type-chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.type-action{color:var(--action)}.type-effect{color:var(--effect)}.type-victory{color:var(--victory)}.tile{--w: 64px;position:relative;width:var(--w);aspect-ratio:5 / 8;border-radius:calc(var(--w) * .12);border:1px solid var(--card-edge);background:var(--card-face);color:var(--card-ink);padding:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;overflow:hidden;box-shadow:var(--shadow);transition:transform .15s ease,box-shadow .15s ease;flex:none}.tile-num{font-family:var(--serif);font-weight:600;font-size:calc(var(--w) * .3);line-height:1;margin-top:calc(var(--w) * .14)}.tile-name{font-size:calc(var(--w) * .15);line-height:1.15;text-align:center;padding:0 4px}.tile-types{display:flex;gap:3px;margin-bottom:calc(var(--w) * .1)}.tile-dot{width:6px;height:6px;border-radius:999px}.tile-back{border-color:var(--card-back);background:var(--card-back) url(/assets/back-DGj2L3RY.webp) center / cover no-repeat;color:#ffffffd9;justify-content:center}.tile-back.tile-banished{background:linear-gradient(#080c189e,#080c189e),var(--card-back) url(/assets/back-DGj2L3RY.webp) center / cover no-repeat}.tile-back .tile-num{margin:0;font-size:calc(var(--w) * .24);opacity:.85}.tile-banished-tag{font-size:calc(var(--w) * .12);text-transform:uppercase;letter-spacing:.06em;margin-top:4px;opacity:.8}.tile-empty{border:1.5px dashed var(--line);background:transparent;box-shadow:none}.tile-selected{transform:translateY(-8px);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent),var(--shadow)}.tile-new{box-shadow:0 0 0 2px var(--accent),var(--shadow)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:12px;justify-items:center}.card-grid .tile{--w: 88px}.sheet-backdrop{position:fixed;inset:0;z-index:50;background:#0a061073;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s ease}.sheet{width:100%;max-width:560px;max-height:88vh;overflow-y:auto;background:var(--surface);border-radius:20px 20px 0 0;padding:16px 16px calc(20px + env(safe-area-inset-bottom));animation:rise .2s ease}@media(min-width:640px){.sheet-backdrop{align-items:center}.sheet{border-radius:20px}}.sheet-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.sheet-head h2{font-family:var(--serif);font-size:24px;font-weight:600;flex:1}.sheet-num{color:var(--muted);font-family:var(--serif);font-size:18px}.card-rules{display:flex;flex-direction:column;gap:10px}.card-rule{padding:12px 14px;border-radius:var(--radius);background:var(--surface-2)}.card-rule p{margin:4px 0 0}.flavor{margin-top:16px;color:var(--muted);font-family:var(--serif);font-style:italic;font-size:17px}.flavor p{margin:0 0 8px}.setup{display:grid;gap:12px;margin-top:8px}.mode{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:16px;display:grid;gap:4px;box-shadow:var(--shadow)}.mode strong{font-size:17px}.mode span{color:var(--muted);font-size:14px}.statusbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:13px;color:var(--muted);margin:4px 0 12px}.statusbar strong{color:var(--ink)}.statusbar .spacer{flex:1}.board{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 8px;overflow-x:auto}.board-grid{--cols: 5;--gap: 6px;--chrome: calc(2 * var(--gutter, 16px) + 22px);--w: clamp(44px, calc((min(100vw, 720px) - var(--chrome) - (var(--cols) - 1) * var(--gap)) / var(--cols)), 120px);display:grid;grid-auto-flow:column;grid-template-rows:auto auto;justify-content:center;column-gap:var(--gap);row-gap:14px}.board-grid .tile{--w: inherit;width:var(--w)}.board-row-label{font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 4px 14px}.board-row-label.them{color:var(--them)}.board-row-label.you{color:var(--you);margin:14px 4px 4px}.col-num{font-size:11px;color:var(--muted);text-align:center}.vp{font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:5px;color:var(--victory);font-size:17px;font-weight:700}.board-grid .tile{overflow:visible}.tile-mark{position:absolute;top:-7px;right:-7px;z-index:1;box-shadow:0 1px 3px #1e192940;min-width:calc(var(--w) * .34);height:calc(var(--w) * .34);padding:0 3px;border-radius:999px;display:grid;place-items:center;font-size:calc(var(--w) * .17);font-weight:700;line-height:1;color:var(--accent-ink);background:var(--victory);border:1.5px solid var(--victory)}.tile-mark.pending{background:var(--card-face);color:var(--victory);opacity:.55}.tile-active{box-shadow:0 0 0 2px var(--accent),0 0 14px color-mix(in srgb,var(--accent) 55%,transparent);transform:translateY(-3px)}.caption{margin:10px auto 0;width:fit-content;max-width:100%;padding:7px 16px;border-radius:18px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 8px;background:#1e1929eb;color:#fff;font-size:14px;font-weight:600;text-align:center;animation:fade .2s ease}.playback-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;color:var(--muted);font-size:14px}.hand-area{margin-top:16px}.hand-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.hand-head h3{font-size:15px}.hand-head span{font-size:13px;color:var(--muted)}.hand{--w: 68px;display:flex;gap:8px;overflow-x:auto;padding:12px 2px 6px;justify-content:safe center}.hand .tile{--w: inherit;width:var(--w)}.choice{margin-top:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px}.choice-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.choice-head h3{font-family:var(--serif);font-size:20px;font-weight:600}.choice ul{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:14px}.choice li{display:flex;gap:8px;align-items:flex-start}.choice li svg{flex:none;margin-top:2px}.hint{color:var(--muted);font-size:14px;text-align:center;margin:8px 0}.log{margin-top:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px}.log summary{font-size:14px;font-weight:600;cursor:pointer}.log[open] summary{margin-bottom:6px}.log ol{margin:0;padding-left:20px;font-size:14px;color:var(--muted)}.log li{padding:2px 0}.log li.big{color:var(--ink);font-weight:600}.curtain{text-align:center;padding:48px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-top:16px}.curtain h2{font-family:var(--serif);font-size:26px;margin-bottom:6px}.curtain p{color:var(--muted);margin:0 0 20px}.result{margin-top:16px;text-align:center;background:var(--accent-soft);border-radius:var(--radius);padding:20px 16px}.result h2{font-family:var(--serif);font-size:28px}.result p{margin:6px 0 14px;color:var(--muted)}.awards{list-style:none;padding:0;margin:0 auto 16px;max-width:360px;text-align:left;font-size:14px}.awards li{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--line)}.row-gap{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(24px);opacity:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.game-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 0 10px}.pips{display:inline-flex;gap:7px}.pip{width:8px;height:8px;border-radius:999px;background:var(--line)}.pip.done{background:var(--accent)}.pip.now{background:transparent;box-shadow:0 0 0 2px var(--accent)}.stack-count{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.stack-icon{position:relative;width:11px;height:15px;border-radius:2px;background:var(--card-back);box-shadow:3px -2px 0 -1px var(--card-back-2)}.board-row-label .stack-count{font-size:16px;color:color-mix(in srgb,var(--ink) 85%,transparent)}.board-row-label .stack-icon{width:13px;height:18px}.hand-big{--w: 96px}.hand-who{text-align:center;font-weight:600;color:var(--accent);font-size:14px}.tile-with-art{justify-content:flex-start;gap:calc(var(--w) * .05)}.tile-art{position:relative;display:block;width:calc(100% - 4px);flex:1 1 0;min-height:0;margin:2px 2px 0;border-radius:calc(var(--w) * .09);background-size:cover;background-position:center 40%}.tile-art .tile-num{position:absolute;top:calc(var(--w) * .04);left:calc(var(--w) * .06);margin:0;font-size:calc(var(--w) * .2);color:#fff;text-shadow:0 1px 3px rgb(0 0 0 / .7)}.tile-with-art .tile-name{flex:none;margin-bottom:calc(var(--w) * .06)}.menu-sheet .sheet-head h2{font-size:22px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}.facts div{background:var(--surface-2);border-radius:var(--radius-sm);padding:8px 12px}.facts dt{font-size:12px;color:var(--muted)}.facts dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}.menu-sheet .log{margin:0 0 8px}.menu-row{display:flex;justify-content:space-between;width:100%;border:0;border-top:1px solid var(--line);background:transparent;padding:14px 4px;font-weight:600;text-align:left}.menu-row span{color:var(--muted)}.menu-row.danger{color:var(--action)}.menu-discard{justify-content:flex-start}.app.immersive{--gutter: 8px;padding-left:var(--gutter);padding-right:var(--gutter)}.app.immersive .board{margin:0 calc(-1 * var(--gutter));padding:14px 3px;border-radius:0;border-left:0;border-right:0}.app.immersive .board-grid{--gap: 5px;--chrome: 12px}.sheet{container-type:inline-size}.sheet-hero{position:relative;margin:-16px -16px 12px;padding:120px 16px 4px;height:166px;align-items:flex-end;border-radius:20px 20px 0 0;background:var(--art) center var(--art-y, 22%) / cover no-repeat;cursor:pointer;user-select:none;-webkit-user-select:none;transition:height .45s cubic-bezier(.2,.7,.2,1)}.sheet-hero.art-open{height:min(calc((100cqw + 32px) * 12 / 7),calc(min(86vh,780px) - 8px))}.sheet-hero.art-open:before{background:linear-gradient(to bottom,transparent 72%,color-mix(in srgb,var(--surface) 70%,transparent) 88%,var(--surface) 100%)}.sheet-hero .sheet-expand{position:absolute;top:12px;left:12px;background:color-mix(in srgb,var(--surface) 75%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}@media(prefers-reduced-motion:reduce){.sheet-hero{transition:none}}.sheet-hero:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(to bottom,transparent 25%,color-mix(in srgb,var(--surface) 70%,transparent) 62%,var(--surface) 100%)}.sheet-hero>*{position:relative}.sheet-hero .sheet-close{position:absolute;top:12px;right:12px;background:color-mix(in srgb,var(--surface) 75%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.sheet-hero h2,.sheet-hero .sheet-num{text-shadow:0 1px 8px var(--surface)}.board.playing{cursor:pointer}.piles{display:inline-flex;gap:14px}.stack-icon.discard{background:var(--card-face);border:1px solid var(--card-edge);box-shadow:3px -2px 0 -1px var(--card-edge);transform:rotate(-8deg)}.caption-src{display:inline-flex;align-items:center;gap:6px;padding:2px 8px 2px 2px;border-radius:999px;background:#ffffff1f;color:var(--accent);font-size:13px;white-space:nowrap}.caption-art{width:20px;height:20px;border-radius:999px;background-size:cover;background-position:center 30%}.anim-count{position:relative;display:inline-flex;align-items:center}.anim-n{display:inline-block}.anim-n.merged{animation:count-pulse .45s ease}.delta{position:absolute;top:50%;white-space:nowrap;padding:0 6px;border-radius:999px;font-size:.85em;font-weight:700;line-height:1.5;color:var(--ink);background:var(--accent-soft);animation:delta-in .7s ease forwards}.delta.up{color:#5fd39a}.delta.down{color:#f08a8a}.vp .delta{color:var(--victory)}.delta.on-right{left:calc(100% + 5px);--toward: -14px}.delta.on-left{right:calc(100% + 5px);--toward: 14px}@keyframes delta-in{0%{opacity:0;transform:translateY(-50%) translateY(-8px) scale(.5)}22%{opacity:1;transform:translateY(-50%) scale(1.25)}40%{transform:translateY(-50%) scale(1)}72%{opacity:1;transform:translateY(-50%) translate(0)}to{opacity:0;transform:translateY(-50%) translate(var(--toward)) scale(.6)}}@keyframes count-pulse{0%{transform:scale(1)}40%{transform:scale(1.5);color:var(--ink)}to{transform:scale(1)}}.fx-source{box-shadow:0 0 0 2px var(--accent),0 0 16px color-mix(in srgb,var(--accent) 60%,transparent)}.fx-target{box-shadow:0 0 0 2px var(--accent),0 0 16px color-mix(in srgb,var(--accent) 60%,transparent);transform:translateY(-3px)}.fx-active{z-index:3;transform:translateY(-4px) scale(1.08);animation:fx-activate .7s ease-in-out infinite alternate}@keyframes fx-activate{0%{box-shadow:0 0 0 2px var(--accent),0 0 10px color-mix(in srgb,var(--accent) 50%,transparent)}to{box-shadow:0 0 0 3px var(--accent),0 0 26px var(--accent)}}.fx-target{box-shadow:0 0 0 2px var(--ink),0 0 14px color-mix(in srgb,var(--ink) 40%,transparent)}.fx-changed{animation:fx-flash .9s ease;box-shadow:0 0 0 2px var(--accent)}.fx-arrive{animation:fx-arrive .5s ease;box-shadow:0 0 0 2px #5fd39a,0 0 14px #5fd39a80}.fx-leaving{box-shadow:0 0 0 2px #f08a8a,0 0 14px #f08a8a80;transform:translateY(-6px)}.fx-skipped{animation:fx-shake .5s ease 2;opacity:.75}.fx-skipped:after{content:"✕";position:absolute;inset:0;display:grid;place-items:center;font-size:calc(var(--w) * .6);color:#f08a8a;text-shadow:0 1px 6px rgb(0 0 0 / .6)}.fx-shake{animation:fx-shake .5s ease 2}.fx-shield{animation:fx-shield 1.1s ease;box-shadow:0 0 0 3px var(--effect),0 0 20px color-mix(in srgb,var(--effect) 70%,transparent)}@keyframes fx-flash{0%{transform:scale(1)}30%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes fx-arrive{0%{opacity:0;transform:translateY(24px) scale(.85)}to{opacity:1;transform:none}}@keyframes fx-shake{0%,to{translate:0}20%{translate:-5px}40%{translate:5px}60%{translate:-3px}80%{translate:3px}}@keyframes fx-shield{0%{box-shadow:0 0 0 0 var(--effect)}40%{box-shadow:0 0 0 6px var(--effect),0 0 28px var(--effect)}to{box-shadow:0 0 0 3px var(--effect),0 0 20px color-mix(in srgb,var(--effect) 70%,transparent)}}@media(prefers-reduced-motion:reduce){.delta,.anim-n.merged,.fx-changed,.fx-arrive,.fx-skipped,.fx-shake,.fx-shield{animation:none}}.captions{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:12px}.captions .caption{margin:0}.caption.past{background:transparent;color:var(--ink);font-weight:500;font-size:12.5px;padding:1px 12px;animation:none}.caption.past .caption-src{background:transparent;padding:0;font-size:12px}.caption.past .caption-art{width:14px;height:14px}.caption.past-1{opacity:.6}.caption.past-2{opacity:.3}.tile-effect-on{border-color:color-mix(in srgb,var(--effect) 70%,var(--card-edge));box-shadow:0 0 8px color-mix(in srgb,var(--effect) 28%,transparent),var(--shadow)}.tile-effect-badge{position:absolute;z-index:2;top:50%;left:-3px;transform:translateY(-50%);width:calc(var(--w) * .28);height:calc(var(--w) * .28);min-width:17px;min-height:17px;display:grid;place-items:center;border-radius:999px;background:var(--effect);color:var(--bg);box-shadow:0 0 6px 1px color-mix(in srgb,var(--effect) 55%,transparent),0 0 14px color-mix(in srgb,var(--effect) 30%,transparent)}.hand .tile-effect-badge{display:none}.hand-fan{position:relative;height:var(--fan-h, 228px);margin:0 calc(-1 * var(--gutter, 16px));overflow-x:clip;overflow-y:visible;touch-action:pan-y;-webkit-user-select:none;user-select:none}.fan-card{--fw: calc(var(--fan-h, 228px) * .49);position:absolute;left:50%;top:14px;width:var(--fw);aspect-ratio:5 / 8;margin-left:calc(var(--fw) / -2);padding:0;display:flex;flex-direction:column;border:1.5px solid var(--card-edge);border-radius:11px;background:var(--card-face);color:var(--card-ink);overflow:hidden;box-shadow:0 6px 18px #00000059;transform-origin:50% 55%;transform:translate(calc(var(--off) * 64px)) rotate(calc(var(--off) * 6deg)) scale(calc(1 - var(--abs) * .06));filter:brightness(calc(1 - var(--abs) * .15));transition:transform .35s cubic-bezier(.2,.8,.2,1),filter .35s ease,box-shadow .2s ease}.fan-card.current{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent),0 10px 26px #00000073}.hand-fan.turning .fan-card{transition:none}.fan-art{position:relative;flex:1;margin:2px 2px 0;border-radius:9px;background-size:cover;background-position:center 35%}.fan-num{position:absolute;top:4px;left:7px;font-family:var(--serif);font-weight:600;font-size:19px;color:#fff;text-shadow:0 1px 3px rgb(0 0 0 / .7)}.fan-name{padding:5px 4px 7px;font-size:13px;text-align:center;line-height:1.15}.hand-hint{text-align:center;font-size:12px;color:var(--muted);margin-top:2px}.sheet-backdrop{overflow:hidden}.sheet-track{width:100%;max-width:560px;display:grid;align-items:end;animation:rise .2s ease;touch-action:pan-y}.sheet-track>.sheet{grid-area:1 / 1;max-width:none;height:min(86vh,780px);animation:none;will-change:transform;touch-action:pan-y;overscroll-behavior:contain}.sheet-track>.sheet.neighbor{pointer-events:none}.sheet-hero .play-btn{flex:none;position:relative}@media(prefers-reduced-motion:reduce){.fan-card{transition:none}}.fx-drop-up{animation:fx-drop-up .55s cubic-bezier(.2,.8,.2,1)}.fx-drop-down{animation:fx-drop-down .55s cubic-bezier(.2,.8,.2,1) .15s backwards}@keyframes fx-drop-up{0%{opacity:0;transform:translateY(140px) scale(1.25) rotate(-6deg)}to{opacity:1;transform:none}}@keyframes fx-drop-down{0%{opacity:0;transform:translateY(-90px) scale(1.15) rotate(6deg)}to{opacity:1;transform:none}}.fx-flip{animation:fx-flip .6s ease;backface-visibility:hidden}@keyframes fx-flip{0%{transform:perspective(500px) rotateY(90deg) scale(1.1)}60%{transform:perspective(500px) rotateY(-12deg) scale(1.1)}to{transform:none}}.fx-first,.fx-second{overflow:visible}.fx-first{z-index:3;transform:translateY(-4px) scale(1.06);box-shadow:0 0 0 2px var(--accent),0 0 22px var(--accent)}.fx-second{opacity:.6;transform:scale(.96)}.fx-first:after,.fx-second:after{position:absolute;bottom:-9px;left:50%;transform:translate(-50%);padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;white-space:nowrap}.fx-first:after{content:"1st";background:var(--accent);color:var(--accent-ink)}.fx-second:after{content:"2nd";background:var(--surface-2);color:var(--muted)}@media(prefers-reduced-motion:reduce){.fx-active,.fx-drop-up,.fx-drop-down,.fx-flip{animation:none}}.game-bar{padding-bottom:18px}.hand-area{margin-top:24px}.game-screen{--bar-h: 60px;--captions-h: clamp(62px, 11.5dvh, 98px);--fan-h: clamp(170px, 27dvh, 228px);--labels-h: 140px;display:flex;flex-direction:column;min-height:calc(100dvh - 24px - env(safe-area-inset-bottom))}.game-screen .board-grid{--w: clamp( 40px, min( calc((min(100vw, 720px) - var(--chrome) - (var(--cols) - 1) * var(--gap)) / var(--cols)), calc((100dvh - 24px - var(--bar-h) - var(--captions-h) - var(--fan-h) - var(--labels-h)) / 3.2) ), 120px )}.app .game-screen>.board{margin-top:auto;margin-bottom:auto}.game-bottom{position:relative;min-height:var(--fan-h)}.game-bottom .hand-who{position:absolute;top:0;left:0;right:0;z-index:20}.board-row-label{position:relative}.skip-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:3px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--ink);font-size:12px;font-weight:600;line-height:1.4}.captions{margin:0 0 12px;height:calc(var(--captions-h, 98px) - 12px);overflow:hidden;justify-content:flex-end;flex:none}.hand-wrap{position:relative}.fan-card{translate:0 var(--lift, 0px);transition:transform .35s cubic-bezier(.2,.8,.2,1),filter .35s ease,box-shadow .2s ease,translate .4s cubic-bezier(.34,1.4,.64,1)}.hand-wrap.quick-on .fan-card.current{--lift: -16px}.quick-play{--orb: 19px;position:absolute;z-index:30;left:50%;bottom:calc((.216 * var(--fan-h, 228px) + 2px - 24px - env(safe-area-inset-bottom)) / 2 - var(--orb) / 2);width:var(--orb);height:var(--orb);margin-left:calc(var(--orb) / -2);padding:0;border:0;border-radius:50%;background:radial-gradient(circle at 50% 45%,#fff6d6,#f7e7a0 22%,#ecd055 55%,#d9a81c);box-shadow:0 0 8px 1px #ffe25a80,0 0 20px 6px #ffd64033;opacity:0;transform:scale(.3);pointer-events:none;transition:opacity .14s ease,transform .16s ease}.quick-play:before{content:"";position:absolute;inset:-10px;border-radius:50%}.quick-play.shown{opacity:1;transform:scale(1);pointer-events:auto;transition:opacity .25s ease,transform .5s cubic-bezier(.34,1.7,.64,1);animation:orb-breathe 2.4s ease-in-out .5s infinite}.quick-play.shown:after{content:"";position:absolute;inset:-2px;border-radius:50%;border:2px solid rgb(255 230 110 / .85);animation:orb-ring .8s ease-out forwards;pointer-events:none}.quick-play.shown:active{transform:scale(.82);transition:transform .08s ease}@keyframes orb-breathe{0%,to{box-shadow:0 0 8px 1px #ffe25a80,0 0 20px 6px #ffd64033}50%{box-shadow:0 0 11px 3px #ffe86e9e,0 0 28px 10px #ffd64042}}@keyframes orb-ring{0%{transform:scale(1);opacity:1}to{transform:scale(1.8);opacity:0}}@media(prefers-reduced-motion:reduce){.quick-play,.quick-play.shown{transition:opacity .2s ease;transform:none;animation:none}.quick-play.shown:after{animation:none;opacity:0}.fan-card{transition:none}}.vp{padding:2px 8px;margin-right:-2px;border-radius:999px;transition:opacity .4s ease,background-color .4s ease,box-shadow .4s ease,transform .4s ease}.vp svg{transition:color .4s ease}.vp.leading{background:color-mix(in srgb,var(--victory) 16%,transparent);box-shadow:0 0 14px color-mix(in srgb,var(--victory) 35%,transparent);transform:scale(1.08)}.vp.trailing{opacity:.72}.vp.fewest svg{color:var(--effect)}.vp.fewest.leading{background:color-mix(in srgb,var(--effect) 16%,transparent);box-shadow:0 0 14px color-mix(in srgb,var(--effect) 35%,transparent)}.tile-empty{transition:border-color .4s ease,background-color .4s ease}.tile-empty.tile-next{border:1.5px solid color-mix(in srgb,var(--accent) 60%,transparent);background:color-mix(in srgb,var(--accent) 7%,transparent)}.fan-name-num{font-family:var(--serif);font-weight:600;color:var(--muted)}.fan-card.fx-discard-out{animation:fx-discard-out .55s cubic-bezier(.4,0,.8,.4) forwards;box-shadow:0 0 0 2px #f08a8a,0 0 14px #f08a8a80}@keyframes fx-discard-out{0%{translate:0 0;opacity:1}25%{translate:0 -10px;opacity:1}to{translate:0 160px;opacity:0}}.fan-card.fx-leaving{translate:0 -10px}.fan-card.fx-arrive{animation:fan-arrive .5s ease;box-shadow:0 0 0 2px #5fd39a,0 0 14px #5fd39a80}@keyframes fan-arrive{0%{translate:0 60px;opacity:0}to{translate:0 0;opacity:1}}.hand-wrap.inactive{pointer-events:none}.hand-wrap .hand-fan{transition:filter .4s ease}.hand-wrap.inactive .hand-fan{filter:saturate(.55) brightness(.72)}.hand-wrap.inactive .fan-card.current:not([class*=fx-]){border-color:var(--card-edge);box-shadow:0 6px 18px #00000059}.app.immersive .board{transition:border-color .4s ease,box-shadow .4s ease}.app.immersive .board.playing{border-color:var(--accent);box-shadow:0 0 18px color-mix(in srgb,var(--accent) 22%,transparent)}.flight{position:fixed;z-index:60;width:14px;height:20px;border-radius:3px;pointer-events:none;background:linear-gradient(160deg,var(--card-back-2),var(--card-back));box-shadow:0 2px 8px #0006}.flight.face-up{background:var(--card-face);border:1px solid var(--card-edge)}.tile-banished-mark{width:calc(var(--w) * .26);height:calc(var(--w) * .26);margin-top:calc(var(--w) * .06);opacity:.7}.tile-name-num{font-family:var(--serif);font-weight:600;color:var(--muted)}.mode-group{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);transition:border-color .25s ease}.mode-group.open{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.mode-group>.mode{width:100%;border:0;background:transparent;box-shadow:none}.level-drawer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.2,.8,.2,1)}.mode-group.open .level-drawer{grid-template-rows:1fr}.level-list{overflow:hidden;display:grid;gap:8px;padding:0 12px}.mode-group.open .level-list{padding-bottom:12px}.level{display:grid;gap:2px;text-align:left;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);opacity:0;transform:translateY(-6px);transition:opacity .25s ease,transform .3s ease,border-color .2s ease}.mode-group.open .level{opacity:1;transform:none}.mode-group.open .level:nth-child(2){transition-delay:.04s}.mode-group.open .level:nth-child(3){transition-delay:.08s}.level strong{font-size:15px}.level span{color:var(--muted);font-size:13px}.level.last{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.level:active{transform:scale(.98)}.legal{margin:32px 0 8px;text-align:center;font-size:12px;color:var(--muted)}.legal a{color:inherit;text-decoration:underline;text-underline-offset:2px}.join-row{grid-template-columns:1fr auto auto;align-items:center;gap:8px}.join-row label{display:grid;gap:2px}.code-input{width:5.2em;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:600 18px/1 var(--font);letter-spacing:.18em;text-transform:uppercase;text-align:center}.code-input::placeholder{color:color-mix(in srgb,var(--muted) 55%,transparent)}.code-input:focus{outline:2px solid var(--accent);outline-offset:1px}.mode-group.open .level.join-row{transition-delay:.04s}.room-panel{margin-top:8px;display:grid;justify-items:center;gap:14px;text-align:center;padding:28px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.room-panel h2{font-family:var(--serif);font-size:24px}.room-panel p{margin:0;color:var(--muted);max-width:30ch}.room-code{display:flex;gap:8px}.room-code span{display:grid;place-items:center;width:52px;height:64px;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);font:600 32px/1 var(--serif);animation:rise .35s ease both}.room-code span:nth-child(2){animation-delay:.05s}.room-code span:nth-child(3){animation-delay:.1s}.room-code span:nth-child(4){animation-delay:.15s}.room-wait{display:inline-flex;align-items:center;gap:8px}.dots{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:waiting-pulse 1.4s ease-in-out infinite}@keyframes waiting-pulse{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}.waiting-friend{display:flex;justify-content:center;align-items:center;gap:8px;font-weight:500}.away{font-size:12px;color:var(--muted);padding:2px 8px;border:1px solid var(--line);border-radius:999px}@media(prefers-reduced-motion:reduce){.dots,.room-code span{animation:none}}.share-btn{display:inline-flex;align-items:center;gap:6px;transition:transform .12s ease,background-color .25s ease,border-color .25s ease}.share-btn:active{transform:scale(.95)}.share-btn:disabled{opacity:.75}.share-btn.done{background:color-mix(in srgb,var(--accent) 75%,var(--surface));animation:share-pop .3s ease}@keyframes share-pop{40%{transform:scale(1.06)}}.room-link{width:100%;max-width:320px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink);font:13px/1.3 var(--font);text-align:center}@media(prefers-reduced-motion:reduce){.share-btn,.share-btn.done{transition:none;animation:none}}
