:root{--bg:#0e1013;--panel:#161a20;--panel-2:#1c2129;--line:#272d37;--text:#e6e9ee;--muted:#8a93a2;--accent:#6fd3b0;--gold:#f0c05a;--bad:#e0705f}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.55 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#app{height:100%}#app:not(.is-playing){overflow-y:auto}#app.is-playing{grid-template-rows:auto auto 1fr auto;height:100%;display:grid}button,select{font:inherit;color:inherit}.intro{text-align:center;max-width:900px;margin:0 auto;padding:6vh 24px}.intro h1{letter-spacing:.01em;margin:0 0 6px;font-size:34px}.intro header p{color:var(--muted);margin:0 0 32px}.picks{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.intro .you{color:var(--text);max-width:640px;margin:0 auto 26px;font-size:16px;line-height:1.5}.intro .you strong{color:var(--accent)}.pick.is-chosen{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.pick .wearing{color:var(--muted);margin:-6px 0 10px;font-size:11px;font-style:italic;display:block}.pick .role{text-transform:uppercase;letter-spacing:.07em;color:var(--accent);border:1px solid var(--line);border-radius:10px;margin-bottom:6px;padding:1px 8px;font-size:10px;display:inline-block}.maker{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-top:22px;padding:18px 20px}.maker h2{margin:0 0 14px;font-size:17px}.maker .field{grid-template-columns:92px 1fr;align-items:center;gap:12px;margin-bottom:10px;display:grid}.maker .field>span{color:var(--muted);font-size:12px}.maker input[type=text],.maker input:not([type]){background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;border-radius:8px;width:100%;padding:7px 10px;font-size:14px}.maker input[type=range]{width:100%;accent-color:var(--accent)}.swatches{flex-wrap:wrap;gap:6px;display:flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:6px;width:22px;height:22px;padding:0}.swatch.is-on{border-color:var(--text);transform:scale(1.12)}.maker-fields{grid-template-columns:1fr 1fr;gap:2px 30px;display:grid}.maker .field.wide{grid-column:1/-1;max-width:420px}.maker-actions{gap:10px;margin-top:16px;display:flex}.intro-lang{justify-content:center;gap:8px;margin:18px 0 8px;display:flex}.lang{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);font:inherit;cursor:pointer;border-radius:8px;padding:5px 14px;font-size:12px}.lang.is-on{border-color:var(--accent);color:var(--accent)}.maker-actions .btn:not(.ghost){background:var(--accent);color:#0b0f14;border-color:var(--accent);font-weight:700}.maker-actions .btn{flex:1}.small{font-size:11px}.pick{background:var(--panel);border:1px solid var(--line);cursor:pointer;text-align:center;border-radius:14px;padding:18px;transition:border-color .14s,transform .14s}.pick:hover{border-color:var(--accent);transform:translateY(-2px)}.pick h3{margin:8px 0 4px}.pick p{color:var(--muted);min-height:38px;margin:0 0 12px;font-size:13px}.pick-art{width:100%;height:220px;display:block}.pick dl{grid-template-columns:repeat(4,1fr);gap:6px;margin:0;display:grid}.pick dl div{background:var(--panel-2);border-radius:8px;padding:6px 4px}.pick dt{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:10px}.pick dd{margin:0;font-weight:650}.topbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px 18px;padding:10px 16px;display:flex}.brand b{letter-spacing:.02em}.meter{flex-direction:column;min-width:130px;font-size:12px;display:flex}.meter .label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:10px}.meter span:not(.label){font-weight:650}.meter small{color:var(--accent)}.bar{background:#0d1015;border-radius:3px;height:5px;margin-top:3px;overflow:hidden}.bar span{background:var(--accent);height:100%;transition:width .18s linear;display:block}#day-bar{background:var(--gold)}.topbar .btn,.topbar a.btn{margin-left:auto}.topbar a.btn+a.btn,.topbar .btn+a.btn{margin-left:6px}.tabs{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:2px;padding:0 12px;display:flex}.tab{cursor:pointer;color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:10px 14px;display:flex}.tab:hover{color:var(--text)}.tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.tab-icon{font-size:15px}.screen{scrollbar-width:thin;padding:18px;overflow-y:auto}.log{border-top:1px solid var(--line);background:var(--panel);max-height:116px;padding:6px 16px;font-size:12px;overflow:hidden}.log-line{color:var(--muted)}.log-good{color:var(--accent)}.log-bad{color:var(--bad)}.panel.frame-wood,.panel.frame-leather,.panel.frame-parchment,.panel.frame-brass{background:linear-gradient(#191d24,#14171c);border-radius:0;padding:14px 16px 16px}.map-detail.frame-parchment{padding-top:0}.frame-parchment{color:var(--text)}.village-banner{background:#0f1216;align-items:flex-end;min-height:168px;margin-bottom:16px;display:flex;position:relative;overflow:hidden}.village-art{width:100%;height:100%;display:block;position:absolute;inset:0}.village-plate{border-left:3px solid var(--gold);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0d1015d9;border-radius:4px;max-width:460px;margin:12px;padding:10px 16px;position:relative}.village-plate h2{color:var(--gold);letter-spacing:.01em;margin:0;font-size:19px}.village-plate p{color:#d8cdb4;margin:2px 0 8px;font-size:12px}.village-plate small{color:var(--muted);font-size:11px}.village-meter{background:#0007;border-radius:3px;height:6px;margin-bottom:5px;overflow:hidden}.village-meter span{background:linear-gradient(90deg, #a9812f, var(--gold));height:100%;display:block}.expedition{grid-template-columns:1fr minmax(280px,340px);align-items:start;gap:16px;display:grid}.map-wrap{background:#2a1d0d;padding:6px;overflow:hidden}.map-sheet{width:100%;height:auto;display:block}.map-paper{fill:#d9c6a0}.map-grain path{stroke:#8a6f45;stroke-width:1.2px;fill:none;opacity:.28}.river{fill:none;stroke:#4a7a9c;stroke-width:7px;stroke-linecap:round;opacity:.55}.lake{fill:#4a7a9c;opacity:.5}.trail{fill:none;stroke:#8a6f45;stroke-width:3px;stroke-dasharray:7 8;opacity:.4;transition:stroke .14s,stroke-width .14s,opacity .14s}.trail.is-open{stroke:#6b4a2c;opacity:.85;stroke-dasharray:none;stroke-width:4px}.trail.is-next{stroke:#b8862c;opacity:.75}.trail.is-highlighted{stroke:var(--gold,#f0c05a);stroke-width:6px;opacity:1}.village-node .village-halo{fill:#f0c05a;opacity:.18}.village-node .village-disc{fill:#efe0bd;stroke:#6b4a2c;stroke-width:3px}.village-label{fill:#3c2716;font:700 15px ui-sans-serif,system-ui}.village-sub{fill:#7a6242;font:11px ui-sans-serif,system-ui}.map-node{cursor:pointer}.map-node .node-halo{fill:var(--accent);opacity:0;transition:opacity .14s}.map-node .node-disc{fill:var(--sky1)}.map-node .node-ring{fill:none;stroke:#3c2716;stroke-width:3px}.map-node .node-num{fill:#fff;font:700 17px ui-sans-serif,system-ui}.map-node .node-lock{fill:#6b5636}.map-node .node-label{fill:#3c2716;font:600 12px ui-sans-serif,system-ui}.map-node .node-cost{fill:#8a5a2c;font:700 12px ui-sans-serif,system-ui}.map-node .node-cost.can-afford{fill:#2f7a4a}.map-node:hover .node-halo{opacity:.35}.map-node.is-selected .node-halo{opacity:.55}.map-node.is-selected .node-ring{stroke:#2b1d0d;stroke-width:5px}.map-node.is-locked .node-disc{fill:var(--sky1);opacity:.4}.map-node.is-locked .node-label{fill:#6b5636}.map-node.is-next .node-ring{stroke:#b8862c;stroke-width:5px}.map-node.is-next .node-disc{opacity:.85}.map-node.is-next .node-halo{opacity:.3;animation:2.6s ease-in-out infinite map-breathe}@keyframes map-breathe{0%,to{opacity:.18}50%{opacity:.42}}.node-body.is-revealing{transform-origin:50%;animation:.9s ease-out map-reveal}@keyframes map-reveal{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}.trail.is-revealing{animation:.7s ease-out map-trail-in}@keyframes map-trail-in{0%{opacity:0}}.node-pips use.on,.pips use.on{color:#a8451f}.node-pips use.off,.pips use.off{color:#3c271633}.map-detail{color:#2f2416;background:linear-gradient(#ece0c4,#d8c8a4);padding:0 0 14px;overflow:hidden}.detail-preview{background:#0f1216;height:150px;position:relative}.detail-preview svg{width:100%;height:100%;display:block}.detail-tag{color:#9ad8ff;background:#0d1015cc;border-radius:10px;padding:2px 8px;font-size:11px;position:absolute;bottom:8px;left:8px}.detail-body{padding:12px 16px 0}.detail-body h3{color:#3c2716;margin:0 0 2px;font-size:17px}.detail-body .muted{color:#6b5636}.detail-body .small{font-size:11px}.rename{color:var(--muted);cursor:pointer;opacity:.5;background:0 0;border:0;padding:0 4px;font-size:12px}.rename:hover{color:var(--accent);opacity:1}.body-line{flex-wrap:wrap;gap:4px;margin:4px 0 2px;display:flex}.body-line .tag{text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--line);color:var(--muted);border-radius:9px;padding:1px 7px;font-size:10px}.body-line .t-fly{color:#8fd8f0;border-color:#4a7f99}.body-line .t-hop{color:#d8c88a;border-color:#7a6a3a}.roster-tools{flex-wrap:wrap;align-items:center;gap:10px;margin:2px 0 12px;display:flex}.roster-tools label{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.roster-tools select{background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;border-radius:7px;padding:4px 8px;font-size:12px}.roster-tools .danger{border-color:var(--bad);color:var(--bad);margin-left:auto}.roster-tools .danger:hover{background:var(--bad);color:#0b0f14}.hat-thumb{display:block;overflow:visible}.hat-chip{width:22px;height:22px}.hat-card{width:62px;height:62px;margin:0 auto}.detail-body .locked{color:#8a5a2c;font-size:12px;font-weight:650}.detail-stats{flex-direction:column;gap:3px;margin:10px 0 12px;font-size:12px;display:flex}.detail-stats div{border-bottom:1px dashed #b6a381;justify-content:space-between;gap:8px;padding-bottom:3px;display:flex}.detail-stats dt{color:#6b5636}.detail-stats dd{margin:0;font-weight:700}.detail-stats .danger{align-items:center;gap:6px;display:flex}.detail-stats .pips{width:68px;height:12px;display:inline-block}.detail-stats .pips svg,.pips{overflow:visible}.btn.big{width:100%;padding:11px;font-size:14px;font-weight:650}.map-detail .btn{color:#2f2416;background:#c9b287;border-color:#8a6f45}.map-detail .btn.gold{color:#2b1d0d;background:#e8b855;border-color:#8a5a2c}.map-detail .btn:disabled{opacity:.5}.intent{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.intent.is-empty{display:none}.intent-row{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:5px 10px;font-size:12px;display:flex}.intent-row b{font-weight:650}.intent-row span{color:var(--muted)}.intent-target{font-weight:650;color:var(--bad)!important}@keyframes move-pulse{0%{transform:scale(1)}to{transform:scale(1.05)}}.intent-row.is-fleeing{border-color:var(--gold);color:var(--gold);background:linear-gradient(90deg,#2a2010,#1a1610);animation:.9s ease-in-out infinite flee-pulse}.intent-row.is-fleeing span{color:#e0cd9a}.intent-row.is-flying{color:#bfe0f0;border-color:#6fb3d3}.intent-row.is-pack{flex-wrap:wrap;gap:6px}.quarry-pick{border-color:var(--line);color:var(--muted)}.quarry-pick em{opacity:.7;margin-left:4px;font-style:normal}.quarry-pick.is-on{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.reaction{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-top:8px;padding:8px 10px}.reaction.is-live{border-color:var(--warn,#f0a23a);box-shadow:0 0 0 1px var(--warn,#f0a23a) inset}.reaction.is-hopeless{border-color:var(--bad)}.reaction.is-hopeless .reaction-cue em{color:var(--bad)}.reaction.is-hopeless .wind-bar i{background:var(--bad)}.reaction-head{align-items:center;gap:8px;margin-bottom:6px;font-size:12px;display:flex}.reaction-head .muted{font-size:11px}.reaction-cue em{color:var(--warn,#f0a23a);font-style:normal}.wind-bar{background:#2a2f38;border-radius:3px;flex:1;height:5px;overflow:hidden}.wind-bar i{background:var(--warn,#f0a23a);height:100%;display:block}.moves{flex-wrap:wrap;gap:6px;display:flex}.move{text-align:left;background:var(--panel-2);border:1px solid var(--line);color:var(--text);cursor:pointer;font:inherit;border-radius:9px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;gap:0 7px;padding:5px 10px 5px 8px;display:grid}.move-icon{grid-row:1/3;font-size:17px}.move-name{font-size:12px;font-weight:600}.move-who{color:var(--muted);font-size:10px}.move-cd{color:var(--muted);grid-row:1/3;margin-left:4px;font-size:11px}.move:hover:not(:disabled){border-color:var(--accent)}.move.is-cooling{opacity:.4;cursor:default}.move.is-answer{border-color:var(--warn,#f0a23a);color:var(--warn,#f0a23a);box-shadow:0 0 0 1px var(--warn,#f0a23a) inset;animation:.5s ease-in-out infinite alternate move-pulse}.intent-row.is-fleeing .icon{width:15px;height:15px}@keyframes flee-pulse{0%,to{box-shadow:inset 0 0 #f0c05a29}50%{box-shadow:inset 0 0 40px #f0c05a29}}.escape-bar{background:#0007;border-radius:3px;flex:1;min-width:90px;height:5px;overflow:hidden}.escape-bar i{background:var(--gold);height:100%;transition:width .12s linear;display:block}.doctrine{text-transform:uppercase;letter-spacing:.06em;border:1px solid;border-radius:10px;padding:1px 7px;font-size:10px;font-weight:700}.d-feral{color:#8a93a2}.d-fixated{color:#8fb7e8}.d-opportunist{color:var(--gold)}.d-tactician{color:var(--bad)}.mind{flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;display:flex}.mind em{color:var(--muted);opacity:.75;font-style:normal}.command-strip{flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:8px;font-size:10px;display:flex}.command-strip .cmd{border:1px solid var(--line);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;border-radius:10px;padding:2px 8px}.command-strip .cmd.is-on{color:var(--accent);border-color:var(--accent)}.command-strip small{color:var(--muted);margin-left:auto}.icon{vertical-align:-.12em;width:1em;height:1em;display:inline-block}.portrait-wrap{position:relative}.badges{flex-direction:column;gap:4px;display:flex;position:absolute;top:6px;left:6px}.badge{border:1px solid var(--tone);color:var(--tone);background:#0d1015d0;border-radius:12px;align-items:center;gap:4px;padding:1px 7px 1px 5px;font-size:10px;font-weight:700;line-height:1.5;display:inline-flex}.badge .icon{width:12px;height:12px}.badge em{font-style:normal}.hp-badge{pointer-events:none}.banner{z-index:60;border:2px solid var(--gold);color:var(--gold);text-align:center;opacity:0;pointer-events:none;background:#1b1206ee;border-radius:14px;flex-direction:column;align-items:center;gap:2px;max-width:min(560px,88vw);padding:16px 32px;transition:opacity .18s,transform .18s;display:flex;position:fixed;top:96px;left:50%;transform:translate(-50%,-14px);box-shadow:0 16px 48px #000a}.banner strong{letter-spacing:.01em;font-size:19px}.banner span{color:#e6d4a8;font-size:13px}.banner.is-visible{opacity:1;transform:translate(-50%)}.banner.is-good{border-color:var(--accent);color:var(--accent);background:#06180fee}.banner.is-good span{color:#bfe7d8}.veil{opacity:0;pointer-events:none;z-index:70;background:#000;transition:opacity .7s;position:fixed;inset:0}.veil.is-on{opacity:1;pointer-events:all}.set-discovery{z-index:80;opacity:0;pointer-events:none;background:#06080c00;justify-content:center;align-items:center;transition:opacity .22s,background .22s;display:flex;position:fixed;inset:0}.set-discovery.is-on{opacity:1;pointer-events:all;background:#06080cb8}.set-card{--set-accent:var(--gold);border:2px solid var(--set-accent);text-align:center;background:linear-gradient(#171310,#0e0c0a);border-radius:16px;flex-direction:column;align-items:center;gap:10px;max-width:min(420px,88vw);padding:26px 32px;animation:.26s set-card-in;display:flex;box-shadow:0 20px 60px #000c,0 0 0 6px #ffffff08}.set-card h3{color:var(--set-accent);margin:0;font-size:21px}.set-card p{color:var(--muted);margin:0;font-size:13px}.set-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--set-accent);opacity:.85;margin:0;font-size:11px;font-weight:700}.set-card .btn{margin-top:6px;padding:10px 28px}.set-armoured .set-card{--set-accent:#9aa3ad}.set-arcane .set-card{--set-accent:#b088e8}.set-wild .set-card{--set-accent:#7fc067}@keyframes set-card-in{0%{opacity:0;transform:scale(.92)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.hat-set-pill{--set-accent:var(--gold);border:1px solid var(--set-accent);color:var(--set-accent);background:#00000059;border-radius:999px;align-self:center;align-items:baseline;gap:6px;padding:4px 12px;font-size:12px;display:flex}.hat-set-pill span{color:var(--muted);font-size:11px}.hat-set-pill.hat-set-armoured{--set-accent:#9aa3ad}.hat-set-pill.hat-set-arcane{--set-accent:#b088e8}.hat-set-pill.hat-set-wild{--set-accent:#7fc067}.btn{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:8px 12px;transition:border-color .12s,background .12s}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.small{padding:4px 8px;font-size:12px}.btn.ghost{background:0 0}.btn.gold{border-color:var(--gold);color:var(--gold)}.btn.is-on{border-color:var(--accent);color:var(--accent)}a.btn{text-decoration:none}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:16px;padding:16px}.panel h2{margin:0 0 4px;font-size:17px}.panel h2 small,.panel h3 small{color:var(--muted);font-size:12px;font-weight:400}.panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 8px;font-size:13px}.cols{grid-template-columns:minmax(320px,380px) 1fr;align-items:start;gap:16px;display:grid}.muted{color:var(--muted)}.empty{color:var(--muted);font-style:italic}.warn{color:var(--gold);margin-left:8px;font-size:12px}.ok{color:var(--accent);font-size:13px}.pill{background:var(--panel-2);color:var(--muted);border-radius:20px;padding:1px 8px;font-size:11px}.pill.gold{color:var(--gold)}.pill.dark{color:#9ad8ff}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;margin:8px 0;display:grid}.stats.compact{grid-template-columns:repeat(2,minmax(0,1fr));font-size:12px}.stats div{justify-content:space-between;gap:6px;min-width:0;display:flex}.stats dt{color:var(--muted);flex:none}.stats dd{overflow-wrap:anywhere;text-align:right;margin:0;font-weight:650}.flag{border-left:2px solid var(--muted);background:#1a1f27;border-radius:4px;flex-wrap:wrap;align-items:center;gap:6px;padding:4px 8px;font-size:11px;display:flex}.flag.bad{border-left-color:var(--bad);color:var(--bad)}.flag small{color:var(--muted)}.timer{background:var(--panel-2);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.fx-grid{grid-template-columns:repeat(auto-fill,minmax(126px,1fr));gap:6px;margin:0 0 10px;display:grid}.fx-effect{background:#0d1015;border-radius:8px;align-items:center;gap:8px;padding:7px 10px;display:flex}.fx-effect.is-on{box-shadow:inset 0 0 0 1px #f0c05a66}.fx-icon{flex:none;font-size:18px;line-height:1}.fx-text{flex-direction:column;gap:1px;min-width:0;display:flex}.fx-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);white-space:nowrap;font-size:9px}.fx-value{color:var(--gold);overflow-wrap:anywhere;font-size:15px;font-weight:700}.field{color:var(--muted);flex-direction:column;gap:4px;max-width:260px;font-size:12px;display:flex}select{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:7px 8px}.cards{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.card{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.card.is-on{border-color:var(--accent)}.card.is-sold{opacity:.45}.card-body{flex-direction:column;gap:6px;padding:10px 12px 12px;display:flex}.card h4{justify-content:space-between;align-items:center;gap:8px;margin:0;font-size:14px;display:flex}.card p{margin:0;font-size:12px}.portrait{background:radial-gradient(at 50% 40%,#1d232b,#12151a);width:100%;height:130px;display:block}.portrait-lg{border-radius:10px;flex:none;width:130px;height:190px}.avatar-row{flex-wrap:wrap;align-items:flex-start;gap:14px;display:flex}.avatar-row .stats{flex:200px;min-width:0}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--panel-2);border:1px solid var(--tier,var(--line));cursor:pointer;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:flex}.chip.is-on{box-shadow:inset 0 0 0 1px var(--accent)}.chip b{color:var(--tier,var(--text))}.chip em{color:var(--muted);font-style:normal}.assign{color:var(--muted);flex-direction:column;gap:3px;font-size:11px;display:flex}.assign select{padding:6px 8px;font-size:12px}.card.is-shown{border-color:#7a6a3a}.row{flex-wrap:wrap;gap:8px;display:flex}.form-line{flex-wrap:nowrap;align-items:flex-end;gap:2px;margin:0 0 10px;padding:4px 2px;list-style:none;display:flex;overflow-x:auto}.form-slot{text-align:center;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;flex-direction:column;flex:none;align-items:center;gap:3px;width:92px;padding:6px 6px 8px;font-size:11px;display:flex}.form-slot.is-you{border-color:#3d4a5c}.form-slot.is-held{box-shadow:inset 0 0 0 2px var(--accent);opacity:.6}.form-slot.is-open{box-shadow:inset 0 0 0 2px #78dcaa80}.form-portrait{cursor:grab;justify-content:center;align-items:flex-end;width:100%;height:56px;display:flex}.form-portrait[draggable]{cursor:grab}.form-portrait .portrait{width:100%;height:100%;transform:scale(var(--scale,1));transform-origin:bottom;background:0 0}.form-front{border:1px dashed var(--line);width:30px;height:56px;color:var(--muted);border-radius:8px;flex:none;justify-content:center;align-items:center;margin-bottom:24px;font-size:16px;display:flex}.form-front.is-open{border-color:var(--gold);color:var(--gold);box-shadow:inset 0 0 0 2px #e6be5a59}.form-gap{flex:none;justify-content:center;width:30px;margin-bottom:24px;display:flex}.form-gap-input{writing-mode:vertical-lr;width:16px;height:46px;accent-color:var(--accent);direction:rtl}.rank-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10px}.rank-name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-weight:650;overflow:hidden}.rank-name small{color:var(--muted);font-weight:400}.rank-stats{color:var(--muted);font-size:10px}.rank-threat{color:var(--gold);font-size:11px;font-weight:700}.field.inline{max-width:340px}.biomes{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;display:grid}.biome{border:1px solid var(--line);background:linear-gradient(160deg, var(--sky0), var(--sky1));border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.biome.is-locked{filter:saturate(.25)brightness(.7)}.biome-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.biome h4{margin:0;font-size:14px}.biome p{color:#fffc;margin:0;font-size:12px}.biome .btn{background:#0e1013cc}.locked{color:#fffa;font-size:12px}.hunt{flex-direction:column;gap:10px;height:100%;display:flex;position:relative}.hunt-over{pointer-events:none;background:radial-gradient(#0a0e1459,#0a0e14b3 75%);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.hunt-over-line{text-align:center;background:#0a0e14bf;border-radius:10px;margin:0;padding:6px 18px;font-size:16px;font-weight:650}.hunt-over-cta{pointer-events:auto;letter-spacing:.04em;background:linear-gradient(#322a12,#221c0d);border-width:2px;border-radius:14px;padding:18px 40px;font-size:20px;font-weight:750;animation:1.6s ease-in-out infinite catch-pulse}.stage{background:#0b0d10;border-radius:12px;flex:1;width:100%;min-height:380px;display:block;overflow:hidden}.hunt-bar{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:stretch;gap:10px;padding:10px 14px;display:flex}.odds{color:var(--muted);margin-right:auto;font-size:13px}.odds b{color:var(--accent);font-size:16px}.phase{flex-direction:column;justify-content:center;gap:5px;min-width:260px;margin-right:auto;display:flex}.phase-line{font-size:15px;font-weight:650}.phase-sub{color:var(--muted);font-size:12px}.phase-sub b{color:var(--accent);font-size:14px}.odds-bar{background:#0d1015;border-radius:4px;max-width:320px;height:7px;overflow:hidden}.odds-bar span{background:var(--muted);width:0;height:100%;transition:width .14s linear;display:block}.odds-bar span.is-ready{background:var(--gold)}.btn.catch{border:2px solid var(--line);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:150px;padding:10px 20px 13px;line-height:1.15;display:flex;position:relative;overflow:hidden}.btn.catch .catch-icon{font-size:20px}.btn.catch .catch-label{letter-spacing:.09em;font-size:15px;font-weight:750}.btn.catch small{color:var(--muted);font-size:11px}.catch-cooldown{background:#ffffff1f;border-radius:2px;height:3px;display:block;position:absolute;bottom:5px;left:6px;right:6px;overflow:hidden}.catch-cooldown b{background:var(--accent);width:0;height:100%;transition:width 90ms linear;display:block}.btn.catch.is-ready{border-color:var(--gold);color:var(--gold);background:linear-gradient(#322a12,#221c0d);animation:1.15s ease-in-out infinite catch-pulse}.btn.catch.is-ready small{color:#d8b962}@keyframes catch-pulse{0%,to{box-shadow:0 0 #f0c05a6b}50%{box-shadow:0 0 0 8px #f0c05a00}}.btn.tall{flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:88px;display:flex}.btn.tall small{color:var(--muted);font-size:10px}.hp-back{fill:#0b0d10cc}.hp-name{fill:#e6e9ee;font:11px ui-sans-serif,system-ui}.danger-mark{pointer-events:none;animation:1.1s ease-in-out infinite danger-pulse}.danger-mark use{color:#e0705f}.danger-mark text{fill:#e0705f;letter-spacing:.06em;font:800 11px ui-sans-serif,system-ui}@keyframes danger-pulse{0%,to{opacity:1}50%{opacity:.55}}.gib{pointer-events:none}.hat-tell-armoured{transform-origin:50%;animation:2.6s ease-in-out infinite hat-shimmer}@keyframes hat-shimmer{0%,to{filter:brightness()}50%{filter:brightness(1.4)}}.hat-tell-wild{transform-origin:50% 100%;animation:3.2s ease-in-out infinite hat-twitch}@keyframes hat-twitch{0%,84%,to{transform:rotate(0)}88%{transform:rotate(-3.5deg)}93%{transform:rotate(2.5deg)}97%{transform:rotate(-1deg)}}.hat-sparkle{opacity:0;animation:2.1s ease-in-out infinite hat-sparkle}.hat-sparkle-b{animation-delay:.7s}@keyframes hat-sparkle{0%,to{opacity:0;transform:translateY(0)}45%{opacity:.9;transform:translateY(-.12px)}}.cast-bar{pointer-events:none}.cast-back{fill:#0b0d10cc}.cast-fill{transition:width 90ms linear}.cast-label{fill:#e6e9ee;text-transform:uppercase;letter-spacing:.04em;font:700 9px ui-sans-serif,system-ui}.pens{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:12px;display:grid}.pen{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:8px;padding:10px;display:flex}.pen-head{justify-content:space-between;align-items:center;display:flex}.pen h4{margin:0;font-size:13px}.exhibit-scene{pointer-events:none}.pen-empty{height:130px;color:var(--muted);background:#12151a;border-radius:8px;place-items:center;font-style:italic;display:grid}.picked{align-items:center;gap:12px;margin:12px 0 18px;display:flex}.slot{border:1px dashed var(--line);text-align:center;max-width:200px;color:var(--muted);border-radius:10px;flex:1;padding:12px}.slot.is-filled{border-style:solid;border-color:var(--accent);color:var(--text)}.gear{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.gear-card{background:var(--panel-2);border:1px solid var(--tier,var(--line));text-align:center;border-radius:12px;flex-direction:column;gap:6px;padding:12px;display:flex}.gear-card.is-sold{opacity:.4}.gear-icon{font-size:26px}.gear-card h4{color:var(--tier);margin:0;font-size:12px;line-height:1.3}.gear-card p{min-height:34px;margin:0;font-size:11px}.gear-effect{background:#0d1015;border-radius:7px;justify-content:space-between;align-items:baseline;gap:8px;padding:5px 9px;display:flex}.gear-effect span{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:10px}.gear-effect b{color:var(--tier);font-size:15px}.gear-meta{color:var(--muted);font-size:10px}.gear-meta em{color:var(--gold);font-style:normal}.progress{background:#0d1015;border-radius:4px;height:8px;margin:10px 0 4px;overflow:hidden}.progress span{background:var(--accent);height:100%;display:block}.beast-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.beast{background:var(--panel-2);border:1px solid var(--line);opacity:.45;border-radius:10px;flex-direction:column;padding:8px 10px;display:flex}.beast.is-known{opacity:1;border-color:#2f3a46}.beast b{font-size:13px}.beast small{color:var(--muted);font-size:11px}@media (max-width:1100px){.expedition{grid-template-columns:1fr}}@media (max-width:960px){.cols,.picks{grid-template-columns:1fr}}@media (max-width:640px){.rank-row{flex-wrap:wrap;row-gap:4px;display:flex}.maker-fields{grid-template-columns:1fr}.pick dl{grid-template-columns:repeat(2,1fr)}}.teach-layer{z-index:60;pointer-events:none;position:fixed;inset:0}.teach-dim{background:#06080ccc;transition:opacity .12s;position:fixed}.teach-ring{border:2px solid var(--accent);border-radius:10px;animation:1.4s ease-in-out infinite alternate teach-breathe;position:fixed;box-shadow:0 0 0 3px #6fd3b055,0 0 22px #6fd3b066}@keyframes teach-breathe{0%{box-shadow:0 0 0 3px #6fd3b033,0 0 12px #6fd3b044}to{box-shadow:0 0 0 5px #6fd3b066,0 0 26px #6fd3b088}}.teach-card{background:var(--panel);border:1px solid var(--accent);pointer-events:auto;border-radius:12px;width:320px;max-width:calc(100vw - 24px);padding:13px 15px;position:fixed;box-shadow:0 12px 34px #000a}.teach-card h4{color:var(--accent);margin:0 0 5px;font-size:15px}.teach-card p{margin:0;font-size:13px;line-height:1.45}.teach-more{color:var(--muted);display:none;margin-top:8px!important;font-size:12px!important}.teach-layer.is-open .teach-more{display:block}.teach-actions{gap:8px;margin-top:11px;display:flex}.teach-actions button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:8px;flex:1;padding:6px 10px;font-size:12px}.teach-ok{font-weight:700;background:var(--accent)!important;color:#0b0f14!important;border-color:var(--accent)!important}.teach-layer.is-open .teach-why{display:none}[data-tip]{cursor:help}.tipcard{z-index:70;pointer-events:none;background:var(--panel);border:1px solid var(--line);border-radius:10px;width:260px;padding:9px 11px;position:fixed;box-shadow:0 10px 26px #000a}.tipcard b{color:var(--accent);margin-bottom:3px;font-size:12px;display:block}.tipcard span{font-size:12px;line-height:1.45;display:block}.tipcard em{color:var(--muted);margin-top:6px;font-size:11px;font-style:normal;display:block}.tab.has-nudge{position:relative}.tab.has-nudge:after{content:"";background:var(--accent);border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite alternate teach-breathe;position:absolute;top:8px;right:6px}.settings-panel{background:var(--panel);border:1px solid var(--accent);border-radius:12px;max-width:520px;margin-bottom:14px;padding:14px 16px}.settings-panel h3{margin:0 0 12px;font-size:16px}.switch{align-items:center;gap:10px;margin-bottom:10px;display:flex}.switch span{flex-direction:column;display:flex}.switch b{font-size:13px;font-weight:600}.switch em{color:var(--muted);font-size:11px;font-style:normal}.switch select{background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;border-radius:7px;margin-left:auto;padding:4px 8px;font-size:12px}.guide{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-top:10px;display:grid}.guide-entry{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.guide-entry h4{color:var(--accent);margin:0 0 5px;font-size:13px}.guide-entry p{margin:0 0 4px;font-size:12px;line-height:1.45}.guide-entry.is-locked{opacity:.45}.guide-entry.is-locked h4{color:var(--muted);font-style:italic}.tempo{flex-wrap:wrap;align-items:center;gap:6px;padding:4px 0 6px;display:flex}.tempo-label{opacity:.6;margin-right:2px;font-size:12px}.is-paused .stage{filter:saturate(.55)brightness(.82)}.is-paused .stage:after{content:""}.is-dramatic .stage{filter:saturate(1.25)contrast(1.08);transition:filter .14s,box-shadow .14s;box-shadow:inset 0 0 120px 40px #0a14288c}.is-dramatic .hunt-bar{box-shadow:0 0 0 1px #8cc8ff59}.is-dramatic .tempo-label:after{content:" · slow";color:#8fd8f0}@media (prefers-reduced-motion:reduce){.is-dramatic .stage{transition:none}}.is-night-vision .stage{filter:saturate(.55)sepia(.35)hue-rotate(70deg)saturate(2.2)brightness(1.05);box-shadow:inset 0 0 90px 30px #143c1e80}.log-times{opacity:.85;background:#ffffff1f;border-radius:8px;margin-left:6px;padding:0 5px;font-size:11px}.chip[disabled]{cursor:default;opacity:.92}.chip-act{letter-spacing:.03em;background:#ffffff24;border-radius:8px;margin-left:6px;padding:1px 6px;font-size:10px;font-style:normal}.chip.is-on .chip-act{background:#78dcaa47}.town{flex-direction:column;gap:14px;display:flex}.town-carrying{background:#8cc8ff24;border-radius:8px;padding:8px 12px;box-shadow:inset 0 0 0 1px #8cc8ff59}.plots{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;display:grid}.plot{background:#ffffff0a;border-radius:12px;padding:10px;transition:box-shadow .12s,background .12s;position:relative;box-shadow:inset 0 0 0 1px #ffffff14}.plot-sign{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.plot-sign span{opacity:.65;font-size:12px}.plot-scene{width:100%;height:92px;display:block}.plot-list{flex-wrap:wrap;gap:6px;min-height:30px;margin-top:6px;display:flex}.plot-list em{opacity:.45;font-size:12px}.plot.is-open{background:#78dcaa1f;box-shadow:inset 0 0 0 2px #78dcaa80}.plot.is-refused{background:#ff786417;box-shadow:inset 0 0 0 2px #ff786466}.plot-refusal{color:#f0a08c;margin-top:6px;font-size:12px}.town-monster{color:inherit;font:inherit;cursor:grab;background:#ffffff14;border:0;border-radius:999px;align-items:center;gap:6px;padding:3px 8px 3px 3px;font-size:12px;display:flex}.town-monster.is-held{cursor:grabbing;background:#8cc8ff4d}.town-portrait{background:#00000040;border-radius:50%;flex:none;width:26px;height:26px}.town-info{flex-direction:column;gap:2px;min-width:0;display:flex}.town-name-row{align-items:baseline;gap:4px;display:flex}.town-name-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.town-level{color:var(--gold);flex:none;font-size:9px;font-weight:700}.town-xp{background:#ffffff24;border-radius:2px;width:52px;height:3px;display:block;overflow:hidden}.town-xp b{background:var(--gold);height:100%;display:block}.yard-works{border-top:1px solid #ffffff14;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;padding-top:8px;display:flex}.yard-rating{opacity:.7;flex:100%;margin:0 0 2px;font-size:12px}.yard-works .btn[disabled]{opacity:.5}.danger-zone{border:1px solid var(--bad);background:color-mix(in srgb, var(--bad) 8%, transparent);border-radius:10px;margin-top:16px;padding:12px}.danger-zone h4{color:var(--bad);letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px;font-size:13px}.danger-zone p{color:var(--muted);margin:0 0 10px;font-size:12px}.btn.danger{border-color:var(--bad);color:var(--bad);font-weight:600}.btn.danger:hover{background:var(--bad);color:#0b0f14}.town h2 small{color:var(--muted);margin-left:8px;font-size:13px;font-weight:400}.town-view{background:var(--panel-2);border-radius:12px;margin-bottom:12px;position:relative;overflow:hidden}.town-sky{width:100%;height:170px;display:block}.town-doors{background:linear-gradient(#0000,#060a10d1 55%);flex-wrap:wrap;gap:6px;padding:8px 10px;display:flex;position:absolute;bottom:0;left:0;right:0}.door{color:var(--text);font:inherit;cursor:pointer;background:#0a1018b8;border:1px solid #ffffff2e;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:flex}.door:hover{border-color:var(--accent);background:#142030e6}.door-icon{font-size:14px}.hint{color:var(--muted);margin:2px 0 6px;font-size:12px}.zoo-crowd{width:100%;height:74px;display:block}.is-teaching .stage{filter:saturate(.7)brightness(.85)}.is-teaching .hunt-bar{opacity:.55}.town-monster.is-busy{opacity:.7;cursor:default}.town-progress{background:#ffffff29;border-radius:2px;width:46px;height:4px;margin-left:4px;display:block;overflow:hidden}.town-progress b{background:var(--accent);height:100%;transition:width .2s linear;display:block}.paused-banner{background:color-mix(in srgb, var(--bad) 18%, transparent);box-shadow:inset 0 0 0 2px var(--bad);color:var(--bad);letter-spacing:.22em;text-align:center;text-transform:uppercase;border-radius:8px;margin:0 0 6px;padding:6px 12px;font-size:20px;font-weight:800}.bag-group{margin-bottom:10px}.bag-group h4{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 5px;font-size:12px;font-weight:600}.card.is-open,.panel.is-open{box-shadow:inset 0 0 0 2px #78dcaa80}.card.is-refused,.panel.is-refused{box-shadow:inset 0 0 0 2px #ff786466}.chip.is-held{box-shadow:inset 0 0 0 2px var(--accent);cursor:grabbing}.chip.is-equippable{cursor:grab}.town h2{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.hub-toggle{margin-left:auto}.town-hub{gap:8px;position:relative}.town-hub .town-carrying:not(.is-on){display:none}.town-hub .town-carrying{z-index:6;pointer-events:none;max-width:90%;box-shadow:inset 0 0 0 1px var(--gold), 0 6px 18px #0008;background:#161a20e6;position:absolute;top:52px;left:50%;transform:translate(-50%)}.hub{aspect-ratio:16/9;border:1px solid var(--line);-webkit-user-select:none;user-select:none;touch-action:none;background:#7f9b55;border-radius:12px;width:min(100%,177.778vh - 533.333px);min-width:min(100%,560px);margin:0 auto;position:relative;overflow:hidden}.hub-svg{width:100%;height:100%;display:block}.hub.is-dragging,.hub.is-dragging *{cursor:grabbing!important}.hub-zone{fill:#0000;stroke:#0000;stroke-width:3px;pointer-events:none;transition:fill .12s,stroke .12s}.hub-zone.is-hover{stroke:#ffeeb4d9;stroke-dasharray:9 6}.hub-zone.is-open{fill:#6fd3b024;stroke:#6fd3b0bf;stroke-dasharray:none}.hub-zone.is-open.is-hover{fill:#6fd3b04d;stroke:#6fd3b0;stroke-width:4px}.hub-zone.is-refused{fill:#e0705f38;stroke:#e0705f;stroke-dasharray:none}.hub-sign{pointer-events:none}.hub-sign text{fill:#3e2a18;letter-spacing:.02em;font:700 13px Georgia,Times New Roman,serif}.hub-line-mark{fill:#5a4a36;opacity:.8;pointer-events:none;font:italic 700 13px Georgia,serif}.hub-avatar .hub-hit{cursor:grab}.hub-more{fill:#2d3a1d;pointer-events:none;font:700 14px Georgia,serif}.hub-people{pointer-events:none}.hub-hit{fill:#0000;pointer-events:all}.hub-monster .hub-hit,.hub-avatar .hub-hit{cursor:grab}.hub-actor>g{pointer-events:none}.hub-monster.is-held>g{filter:drop-shadow(0 0 2px #fff6c9)drop-shadow(0 0 5px #f0c05a)}.hub-monster:hover>g{filter:drop-shadow(0 0 2px #fff6c9)}.hub-bubble{animation:1.8s ease-in-out infinite hub-bubble}@keyframes hub-bubble{0%,to{opacity:.2;transform:translateY(0)}50%{opacity:.9;transform:translateY(-5px)}}.hub-card{z-index:5;opacity:0;pointer-events:none;background:#161a20f0;border:1px solid #6b4a2e;border-radius:10px;min-width:200px;max-width:300px;padding:10px 12px;font-size:12px;transition:opacity .12s;position:absolute;box-shadow:0 10px 28px #0009}.hub-card.is-on{opacity:1}.hub-card.is-pinned{pointer-events:auto;border-color:var(--gold)}.hub-card h4{color:var(--gold);margin:0 0 6px;font-family:Georgia,serif;font-size:15px}.hub-card p{margin:2px 0}.hub-card-hint{color:var(--muted);font-style:italic;margin-top:6px!important}.hub-card-refusal{color:#f0a090;font-weight:600;margin-top:6px!important}.hub-card-more{color:var(--gold);opacity:.8;font-size:11px;margin-top:6px!important}.hub-card-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.legal-link{color:#ffffff80;z-index:5;font-size:11px;text-decoration:none;position:fixed;bottom:8px;left:10px}.legal-link:hover{color:#ffffffd9;text-decoration:underline}#app.is-playing~.legal-link{display:none}
