:root{--bg: #f4efe4;--bg2: #ebe3d3;--card: #ffffff;--ink: #1d2433;--muted: #6b7280;--line: #e8e0cf;--brand: #0f3d3e;--brand2: #1b5e5a;--gold: #f5b82e;--gold2: #e89a14;--green: #22a06b;--red: #e5484d;--blue: #3e63dd;--radius: 18px;--shadow: 0 1px 2px rgba(29, 36, 51, .06), 0 8px 24px -8px rgba(29, 36, 51, .14);--shadow-lg: 0 20px 60px -15px rgba(15, 61, 62, .35);--font: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--display: "Baloo 2", "Nunito", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-weight:600;color:var(--ink);background:radial-gradient(circle at 12% 8%,rgba(245,184,46,.16),transparent 32%),radial-gradient(circle at 88% 92%,rgba(34,160,107,.12),transparent 35%),var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select{font:inherit;color:inherit}h1,h2,h3{font-family:var(--display);margin:0 0 .4em;line-height:1.15}h2{font-size:1.5rem}h3{font-size:1.15rem}p{margin:.4em 0}.muted{color:var(--muted)}.small{font-size:.82rem}.center{text-align:center;justify-content:center}.grow{flex:1}.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:0;border-radius:12px;padding:.62rem 1rem;background:#fff;color:var(--ink);font-weight:800;cursor:pointer;box-shadow:inset 0 0 0 2px var(--line),0 2px 0 var(--line);transition:transform .12s ease,box-shadow .12s ease,background .15s;text-align:center;line-height:1.2}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(1px);box-shadow:inset 0 0 0 2px var(--line)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:linear-gradient(180deg,#ffcf55,var(--gold));box-shadow:0 3px 0 var(--gold2),0 8px 18px -6px #e89a1499;color:#3b2700}.btn.primary:active:not(:disabled){box-shadow:0 1px 0 var(--gold2)}.btn.buy{background:linear-gradient(180deg,#2fbf82,var(--green));color:#fff;box-shadow:0 3px #17784f;flex-direction:column;gap:0}.btn.buy small{font-weight:600;opacity:.85;font-size:.72rem}.btn.sell{background:#fff4f4;box-shadow:inset 0 0 0 2px #f6c8c9,0 2px #f6c8c9;color:#b4232a}.btn.danger{background:var(--red);color:#fff;box-shadow:0 3px #a92f33}.btn.ghost{background:transparent;box-shadow:inset 0 0 0 2px var(--line)}.btn.big{padding:.85rem 1.2rem;font-size:1.05rem;width:100%}.btn.huge{padding:1.1rem 1.4rem;font-size:1.3rem;width:100%;border-radius:16px}.btn.small{padding:.45rem .75rem;font-size:.88rem}.btn.tiny{padding:.25rem .55rem;font-size:.78rem;border-radius:8px}.icon-btn{border:0;background:transparent;font-size:1.25rem;cursor:pointer;padding:.35rem .45rem;border-radius:10px}.icon-btn:hover{background:#0000000d}.link{background:none;border:0;color:var(--brand2);font-weight:800;cursor:pointer;margin-top:1rem}input,select{width:100%;border:2px solid var(--line);border-radius:12px;padding:.6rem .8rem;background:#fff;outline:none;transition:border-color .15s}input:focus,select:focus{border-color:var(--gold)}.field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.field>span{font-size:.85rem;color:var(--muted);font-weight:800}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem}.card-title{font-size:1rem;margin-bottom:.6rem}.badge{display:inline-block;font-style:normal;font-size:.7rem;font-weight:800;background:var(--bg2);border-radius:999px;padding:.1rem .5rem;margin-left:.35rem;vertical-align:middle}.badge.me{background:#dcf3e8;color:#17784f}.badge.turn{background:var(--gold);color:#3b2700}.chip{color:#fff;font-size:.75rem;font-weight:800;padding:.15rem .55rem;border-radius:999px;margin-left:auto;white-space:nowrap}.money{font-variant-numeric:tabular-nums;font-weight:800;white-space:nowrap}.money.neg{color:var(--red)}.money.pos{color:var(--green)}.logo{display:flex;align-items:center;gap:.6rem}.logo-coin{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#ffe29a,var(--gold) 55%,var(--gold2));color:var(--brand);font-family:var(--display);font-weight:800;font-size:2.2rem;box-shadow:inset 0 -4px #00000026,0 6px 16px -4px #e89a1499;animation:coin 6s ease-in-out infinite}.logo-text{font-family:var(--display);font-weight:800;font-size:3.2rem;color:var(--brand);letter-spacing:-.02em}.logo.small .logo-coin{width:34px;height:34px;font-size:1.2rem;animation:none}.logo.small .logo-text{font-size:1.55rem}@keyframes coin{0%,to{transform:rotateY(0)}50%{transform:rotateY(180deg)}}.home{min-height:100%;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;max-width:1100px;margin:0 auto;padding:2rem 1.5rem}.home-hero .tagline{font-size:1.2rem;color:#3b4556;margin:1rem 0 1.5rem;line-height:1.5}.hero-art{display:flex;gap:.8rem;font-size:2.6rem}.hero-art span{display:grid;place-items:center;width:70px;height:70px;background:#fff;border-radius:20px;box-shadow:var(--shadow);animation:float 4s ease-in-out infinite}.hero-art span:nth-child(2){animation-delay:.4s}.hero-art span:nth-child(3){animation-delay:.8s}.hero-art span:nth-child(4){animation-delay:1.2s}.hero-art span:nth-child(5){animation-delay:1.6s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.home-card{padding:1.6rem}.avatar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.45rem}.avatar-opt{border:0;background:none;padding:3px;border-radius:50%;cursor:pointer;transition:transform .15s}.avatar-opt:hover{transform:scale(1.08)}.avatar-opt.sel{transform:scale(1.1)}.avatar-opt .avatar{display:block;width:100%;height:auto}.color-row{display:flex;gap:.45rem;margin-top:.6rem;flex-wrap:wrap}.color-opt{width:30px;height:30px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 2px var(--line);cursor:pointer}.color-opt.sel{box-shadow:0 0 0 3px var(--ink)}.color-opt:disabled{opacity:.2;cursor:not-allowed}.home-actions{display:flex;flex-direction:column;gap:.7rem}.or{text-align:center;color:var(--muted);font-size:.85rem}.join-row{display:flex;gap:.5rem}.code-input{text-transform:uppercase;letter-spacing:.3em;font-weight:900;text-align:center;font-size:1.2rem}.open-seats{background:#fff8e6;border-radius:12px;padding:.7rem;display:flex;flex-direction:column;gap:.4rem}.topbar{display:flex;align-items:center;gap:.8rem;padding:.7rem 1.2rem}.game-top{background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;padding:.5rem 1rem}.room-code{font-weight:900;letter-spacing:.1em;color:var(--muted)}.round{background:var(--bg2);border-radius:999px;padding:.15rem .7rem;font-size:.85rem;font-weight:800;white-space:nowrap}.timer{font-weight:900;font-variant-numeric:tabular-nums;background:#e8f5ee;color:#17784f;padding:.15rem .7rem;border-radius:999px}.timer.warn{background:#fde8e8;color:var(--red);animation:pulse 1s infinite}.lobby,.setup{max-width:1150px;margin:0 auto;padding-bottom:2rem}.lobby-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:0 1.2rem}.big-code{font-family:var(--display);font-size:3.6rem;font-weight:800;letter-spacing:.15em;color:var(--brand);text-align:center;background:var(--bg);border-radius:16px;margin:.5rem 0}.copy-row{display:flex;gap:.5rem}.seat-list{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.5rem}.seat-list li{display:flex;align-items:center;gap:.7rem;padding:.4rem;border-radius:14px;background:var(--bg)}.seat-name{flex:1;display:flex;flex-direction:column}.seat-name small{color:var(--muted);font-size:.78rem}.seat-badges{display:flex;gap:.3rem}.seat-badges .badge{margin:0}.empty-seat{justify-content:center;color:var(--muted);border:2px dashed var(--line);background:none!important;min-height:52px}.offline-seat{opacity:.5}.edit-seat{margin-top:.8rem}.seg{display:flex;flex-wrap:wrap;gap:.35rem}.seg button{border:0;padding:.45rem .75rem;border-radius:10px;background:var(--bg);font-weight:800;cursor:pointer}.seg button.sel{background:var(--brand);color:#fff}.seg button:disabled:not(.sel){opacity:.6;cursor:default}.waiting{text-align:center;color:var(--muted);animation:pulse 2s infinite}.setup-grid{display:grid;grid-template-columns:1.25fr 1.6fr 1fr;gap:1rem;padding:0 1.2rem;align-items:start}.prof-card{background:linear-gradient(160deg,var(--brand2),var(--brand));color:#fff}.prof-card .muted{color:#ffffffbf}.prof-card .gc-nums{background:#ffffff1a}.prof-card .gc-nums dt{color:#ffffffb3}.prof-card .gc-nums .hl dd{color:#ffe29a}.prof-top{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}.prof-top small{opacity:.8}.prof-icon{font-size:2.6rem;background:#ffffff26;border-radius:18px;width:70px;height:70px;display:grid;place-items:center}.flip-in{animation:flipIn .8s cubic-bezier(.2,.9,.3,1.2)}@keyframes flipIn{0%{transform:perspective(800px) rotateY(90deg);opacity:0}to{transform:none;opacity:1}}.dream-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}.dream{border:2px solid var(--line);background:#fff;border-radius:16px;padding:.8rem;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:.2rem;transition:all .15s}.dream:hover{border-color:var(--gold);transform:translateY(-2px)}.dream.sel{border-color:var(--gold);background:#fff8e6;box-shadow:0 0 0 3px #f5b82e59}.dream-icon{font-size:1.8rem}.dream small{color:var(--muted);font-size:.76rem}.dream em{font-style:normal;font-weight:900;color:var(--brand2);font-size:.85rem}.game{min-height:100%;display:flex;flex-direction:column}.game-grid{display:grid;grid-template-columns:300px minmax(0,1fr) 390px;gap:1rem;padding:1rem;flex:1;align-items:start;max-width:1800px;width:100%;margin:0 auto}.col-left,.col-right{display:flex;flex-direction:column;gap:1rem;min-width:0}.col-left{position:sticky;top:70px;max-height:calc(100vh - 86px)}.col-board{display:flex;flex-direction:column;gap:.7rem;align-items:center;position:sticky;top:70px}.board-card{position:relative;width:100%;max-width:min(100%,calc(100vh - 150px))}.log-card{flex:1;min-height:160px;display:flex;flex-direction:column;overflow:hidden}.tabbar{display:none}.board-wrap{position:relative;width:100%;aspect-ratio:1}.board{width:100%;height:100%;display:block;filter:drop-shadow(0 20px 40px rgba(15,61,62,.28));-webkit-user-select:none;user-select:none}.space path{transition:filter .15s}.space:hover path:first-of-type{filter:brightness(1.12)}.sp-icon{text-anchor:middle;dominant-baseline:central}.sp-label{text-anchor:middle;dominant-baseline:central;fill:#fff;font-family:var(--font);font-weight:900;paint-order:stroke;stroke:#0000002e;stroke-width:3px}.space.fast .sp-label{font-size:13px}.my-dream path:nth-of-type(3){animation:dash 1.2s linear infinite}@keyframes dash{to{stroke-dashoffset:-28}}.ring-title{fill:#ffe29a;font-family:var(--display);font-weight:800;letter-spacing:.25em;text-anchor:middle}.center-title{text-anchor:middle;font-family:var(--display);font-weight:800;fill:var(--brand)}.center-sub{text-anchor:middle;font-weight:900;fill:#b08d57;letter-spacing:.2em}.deck-label{text-anchor:middle;fill:#fff;font-weight:900}.deck-count{text-anchor:middle;fill:#ffffffd9;font-weight:800}.deck{transition:transform .2s}.center-card{animation:cardIn .45s cubic-bezier(.2,.9,.3,1.3);transform-origin:0 120px}.center-card-text{text-anchor:middle;font-weight:900;fill:var(--ink)}.center-turn{text-anchor:middle;font-weight:800;fill:var(--muted)}@keyframes cardIn{0%{transform:scale(.4) translateY(-60px);opacity:0}to{transform:none;opacity:1}}.pawn{transition:transform .18s cubic-bezier(.3,.7,.4,1)}.pawn-hop{animation:hop .19s ease-out}.pawn.active .pawn-hop>circle{stroke:#fff;stroke-width:4;animation:glow 1.4s ease-in-out infinite}@keyframes hop{0%{transform:translateY(0) scale(1)}45%{transform:translateY(-18px) scale(1.08)}to{transform:translateY(0) scale(1)}}@keyframes glow{0%,to{stroke-opacity:1}50%{stroke-opacity:.3}}.dice-stage{position:absolute;left:50%;top:58%;transform:translate(-50%,-50%) scale(.6);display:flex;gap:18px;align-items:center;opacity:0;transition:opacity .3s,transform .35s;pointer-events:none}.dice-stage.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.die-wrap{width:58px;height:58px;perspective:400px}.cube{width:58px;height:58px;position:relative;transform-style:preserve-3d;transition:transform .9s cubic-bezier(.2,.8,.25,1.05)}.face{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(145deg,#fff,#f1ece2);border-radius:12px;display:grid;grid-template-columns:repeat(3,1fr);padding:8px;box-shadow:inset 0 0 0 2px #e4dccb}.face span{display:grid;place-items:center}.face .pip:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--brand)}.face.front{transform:translateZ(29px)}.face.back{transform:rotateY(180deg) translateZ(29px)}.face.right{transform:rotateY(90deg) translateZ(29px)}.face.left{transform:rotateY(-90deg) translateZ(29px)}.face.top{transform:rotateX(90deg) translateZ(29px)}.face.bottom{transform:rotateX(-90deg) translateZ(29px)}.dice-sum{font-family:var(--display);font-size:1.8rem;font-weight:800;color:var(--brand)}.reaction-bar{display:flex;gap:.2rem;background:#fff;border-radius:999px;padding:.3rem .5rem;box-shadow:var(--shadow);flex-wrap:wrap;justify-content:center}.reaction-bar button{border:0;background:none;font-size:1.35rem;cursor:pointer;padding:.2rem .35rem;border-radius:50%;transition:transform .12s}.reaction-bar button:hover{transform:scale(1.3) rotate(-8deg)}.reaction-bar button:active{transform:scale(.9)}.reaction-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.floater{position:absolute;bottom:6%;display:flex;flex-direction:column;align-items:center;animation:floatUp 2.6s ease-out forwards}.floater .fe{font-size:2.6rem;filter:drop-shadow(0 4px 6px rgba(0,0,0,.2))}.floater .fn{color:#fff;font-size:.7rem;font-weight:900;padding:.05rem .45rem;border-radius:999px}@keyframes floatUp{0%{transform:translateY(20px) scale(.4) rotate(0);opacity:0}15%{transform:translateY(0) scale(1.15) rotate(var(--rot));opacity:1}80%{opacity:1}to{transform:translateY(-340px) scale(1) rotate(calc(var(--rot) * -1));opacity:0}}.players{display:flex;flex-direction:column;gap:.5rem}.player{position:relative;border-radius:16px;background:var(--bg);transition:box-shadow .2s,background .2s}.player.turn{background:#fff8e6;box-shadow:0 0 0 2px var(--gold)}.player.viewing{box-shadow:0 0 0 2px var(--pc)}.player.turn.viewing{box-shadow:0 0 0 2px var(--gold),0 0 0 4px var(--pc)}.player-main{display:flex;gap:.6rem;width:100%;border:0;background:none;padding:.55rem;text-align:left;cursor:pointer;align-items:flex-start}.pl-avatar{position:relative;flex-shrink:0}.dot{position:absolute;right:0;bottom:0;width:12px;height:12px;border-radius:50%;border:2px solid #fff}.dot.on{background:var(--green)}.dot.off{background:#b8b8b8}.dot.open{background:var(--gold)}.pl-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.pl-name{font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pl-name em{font-style:normal;color:var(--muted);font-weight:700}.pl-prof{font-size:.75rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pl-nums{display:flex;gap:.5rem;font-size:.85rem;flex-wrap:wrap;align-items:baseline}.ft-badge{font-size:.72rem;background:var(--brand);color:#ffe29a;padding:0 .4rem;border-radius:999px}.pl-badges{display:flex;flex-direction:column;gap:.2rem;align-items:flex-end}.pl-badges .badge{margin:0}.pl-menu{position:absolute;top:.2rem;right:.2rem}.pl-menu .icon-btn{font-size:1rem}.menu{position:absolute;right:0;top:100%;background:#fff;border-radius:12px;box-shadow:var(--shadow-lg);z-index:30;min-width:240px;padding:.3rem}.menu button{display:block;width:100%;border:0;background:none;text-align:left;padding:.6rem .7rem;border-radius:8px;cursor:pointer;font-weight:700}.menu button:hover{background:var(--bg)}.menu button.danger{color:var(--red)}.progress .bar{height:10px;border-radius:999px;background:#e9e3d6;overflow:hidden}.progress .bar div{height:100%;border-radius:999px;background:linear-gradient(90deg,#f5b82e,#22a06b);transition:width .8s cubic-bezier(.2,.8,.2,1)}.progress.fast .bar div{background:linear-gradient(90deg,#6e56cf,#d6409f)}.progress.compact .bar{height:6px}.progress-head,.progress-foot{display:flex;justify-content:space-between;font-size:.8rem;margin:.2rem 0}.progress-head{font-weight:900}.progress-foot{color:var(--muted)}.progress:not(.compact){background:var(--bg);border-radius:14px;padding:.6rem .7rem;margin:.7rem 0}.log{overflow-y:auto;display:flex;flex-direction:column;gap:.3rem;padding-right:.3rem;flex:1}.log-item{display:flex;gap:.5rem;font-size:.8rem;padding:.35rem .5rem;border-radius:10px;border-left:3px solid var(--pc);background:#faf8f3;animation:slideIn .3s ease-out}.log-item time{color:var(--muted);font-size:.7rem;flex-shrink:0;padding-top:.1rem}.log-item.plus span{color:#17784f}.log-item.minus span{color:#b4232a}.log-item.gold{background:#fff5d6}.log-item.muted{opacity:.7}@keyframes slideIn{0%{transform:translate(-8px);opacity:0}to{transform:none;opacity:1}}.panel{display:flex;flex-direction:column;gap:.8rem}.panel-head{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.waiting-box{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1rem 0;gap:.4rem}.bob{animation:float 2.4s ease-in-out infinite}.rolling{text-align:center;padding:1.2rem 0}.rolling-dots{display:flex;justify-content:center;gap:.4rem}.rolling-dots span{width:10px;height:10px;background:var(--gold);border-radius:50%;animation:bounce .9s infinite}.rolling-dots span:nth-child(2){animation-delay:.15s}.rolling-dots span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.roll-box{text-align:center;display:flex;flex-direction:column;gap:.6rem}.roll-box .row{justify-content:center}.roll-box .row .btn{width:auto;flex:1}.choose-deal h3{text-align:center}.deal-choice{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.choice{border:0;border-radius:16px;padding:1rem .8rem;color:#fff;cursor:pointer;display:flex;flex-direction:column;gap:.3rem;text-align:left;transition:transform .15s;min-height:120px}.choice:hover{transform:translateY(-3px) rotate(-1deg)}.choice b{font-family:var(--display);font-size:1.25rem}.choice span{font-size:.8rem;opacity:.9;font-weight:600}.small-deal{background:linear-gradient(150deg,#2fbf82,#178a59);box-shadow:0 4px #126c46}.big-deal{background:linear-gradient(150deg,#169e8b,#0c5f54);box-shadow:0 4px #09473f}.charity{display:flex;flex-direction:column;gap:.5rem}.end-turn{margin-top:.2rem}.landed-note{background:var(--bg);padding:.8rem;border-radius:12px;text-align:center;font-weight:700}.game-card{border-radius:18px;overflow:hidden;box-shadow:0 0 0 2px var(--c),0 12px 28px -12px var(--c);animation:dealIn .5s cubic-bezier(.2,.9,.3,1.15);background:#fff}@keyframes dealIn{0%{transform:perspective(900px) rotateY(-80deg) translate(40px);opacity:0}to{transform:none;opacity:1}}.gc-head{background:var(--c);color:#fff;padding:.5rem .9rem;font-weight:900;font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;display:flex;justify-content:space-between}.ticker{background:#ffffff40;padding:0 .5rem;border-radius:6px;letter-spacing:.1em}.gc-body{padding:.9rem;display:flex;flex-direction:column;gap:.6rem}.gc-body h3{margin:0;font-size:1.25rem}.gc-body>p{margin:0;color:#3b4556}.gc-nums{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin:0;background:var(--bg);border-radius:12px;padding:.6rem}.gc-nums div{display:flex;flex-direction:column}.gc-nums dt{font-size:.72rem;color:var(--muted);font-weight:800}.gc-nums dd{margin:0;font-weight:900;font-variant-numeric:tabular-nums}.gc-nums .hl dd{font-size:1.15rem;color:var(--brand2)}.gc-nums .roi dd{color:#8e4ec6}.gc-paid{background:#fdecec;color:var(--red);padding:.5rem .7rem;border-radius:10px;font-weight:900;text-align:center}.gc-paid.won{background:#e5f6ee;color:var(--green)}.deal-actions{display:flex;flex-direction:column;gap:.5rem}.offer-form{display:flex;flex-direction:column;gap:.5rem;background:var(--bg);padding:.7rem;border-radius:12px}.offer-form label{display:flex;flex-direction:column;font-size:.8rem;gap:.2rem;color:var(--muted)}.offer-box{background:#fff8e6;border-radius:12px;padding:.8rem;box-shadow:inset 0 0 0 2px #f7dd9c;animation:pulse 2s infinite}.trade{background:var(--bg);padding:.7rem;border-radius:12px;display:flex;flex-direction:column;gap:.5rem}.trade-top{display:flex;justify-content:space-between;font-size:.82rem;flex-wrap:wrap;gap:.3rem}.qty-row{display:flex;gap:.3rem;align-items:center}.qty-row input{flex:1;min-width:70px;padding:.4rem .6rem}.trade-btns{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.sell-list{display:flex;flex-direction:column;gap:.4rem}.sell-row{display:flex;gap:.5rem;align-items:center;justify-content:space-between;background:var(--bg);padding:.5rem .6rem;border-radius:12px}.sell-row>div{display:flex;flex-direction:column;font-size:.85rem;min-width:0}.sell-row small{color:var(--muted);font-size:.72rem}.debt{display:flex;flex-direction:column;gap:.6rem}.debt-alert{background:#fdecec;color:#8f1d22;padding:.8rem;border-radius:12px;font-weight:800}.stepper{display:inline-flex;align-items:center;background:var(--bg);border-radius:12px;overflow:hidden}.stepper button{border:0;background:none;width:38px;height:38px;font-size:1.2rem;font-weight:900;cursor:pointer}.stepper button:disabled{opacity:.3}.stepper span{min-width:120px;text-align:center;font-weight:900;font-variant-numeric:tabular-nums}.sheet-card{position:relative}.back-me{position:absolute;top:.8rem;right:.8rem;z-index:2}.st-head{display:flex;align-items:center;gap:.7rem}.st-who{flex:1;display:flex;flex-direction:column;min-width:0}.st-who strong{font-size:1.1rem}.st-who span{font-size:.8rem;color:var(--muted)}.st-dream{display:flex;flex-direction:column;align-items:center;background:#fff0f7;border-radius:12px;padding:.2rem .5rem;font-size:1.4rem}.st-dream small{font-size:.6rem;color:#b0306f;font-weight:900}.st-kpis{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.8rem}.kpi{background:var(--bg);border-radius:14px;padding:.55rem .7rem;display:flex;flex-direction:column}.kpi small{color:var(--muted);font-size:.75rem;font-weight:800;display:flex;align-items:center;gap:.25rem}.kpi .money{font-size:1.35rem;font-family:var(--display)}.ft-note{background:#f5f0ff;padding:.5rem .7rem;border-radius:10px}.st-sec{border-top:1px solid var(--line)}.st-sec-head{width:100%;display:flex;align-items:center;gap:.5rem;background:none;border:0;padding:.6rem 0;cursor:pointer;font-family:var(--display);font-size:1.05rem;font-weight:800}.st-sec-head>span:first-child{flex:1;text-align:left;display:flex;align-items:center;gap:.3rem}.chev{transition:transform .2s;color:var(--muted)}.st-sec:not(.open) .chev{transform:rotate(-90deg)}.st-sec-body{padding-bottom:.6rem;display:flex;flex-direction:column;gap:.15rem}.st-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-size:.87rem;padding:.2rem 0}.st-label{display:flex;align-items:center;gap:.3rem;min-width:0}.st-val{display:flex;align-items:center;gap:.4rem}.st-sub{display:flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--muted);font-weight:900;margin-top:.3rem;text-transform:uppercase;letter-spacing:.04em}.st-sub .money{margin-left:auto;color:var(--green)}.asset-row{display:flex;flex-direction:column;font-size:.85rem;padding:.25rem 0;border-bottom:1px dashed var(--line)}.asset-row small{color:var(--muted);font-size:.72rem}.empty{color:var(--muted);font-size:.8rem;font-style:italic}.bank{margin-top:.6rem;background:linear-gradient(160deg,#eef6f4,#e3efec);border-radius:14px;padding:.7rem;display:flex;flex-direction:column;gap:.5rem}.bank-head{font-weight:900;display:flex;align-items:center;gap:.3rem}.bank-row{display:flex;gap:.5rem}.bank-row .btn{flex:1}.bank .stepper{background:#fff;width:100%;justify-content:space-between}.tip{position:relative;display:inline-flex}.info-dot{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#e4ddcf;color:#6b5a3a;font-size:.65rem;font-weight:900;cursor:help}.tip-bubble{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) scale(.9);background:var(--ink);color:#fff;font-size:.78rem;font-weight:600;line-height:1.4;padding:.55rem .7rem;border-radius:10px;width:max-content;max-width:250px;opacity:0;pointer-events:none;transition:all .15s;z-index:50;text-transform:none;letter-spacing:0;font-family:var(--font)}.tip-bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--ink)}.tip.open .tip-bubble{opacity:1;transform:translate(-50%) scale(1)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1e2373;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:100;padding:1rem;animation:fade .2s}.modal{background:#fff;border-radius:22px;box-shadow:var(--shadow-lg);width:min(560px,100%);max-height:90vh;display:flex;flex-direction:column;animation:pop .3s cubic-bezier(.2,.9,.3,1.2)}.modal.wide{width:min(860px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.2rem .4rem}.modal-head h2{margin:0}.modal-body{padding:.4rem 1.2rem 1.2rem;overflow-y:auto}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{transform:scale(.85);opacity:0}}@keyframes pulse{50%{opacity:.75}}.toasts{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:.4rem;z-index:200;width:min(440px,calc(100% - 2rem))}.toast{background:var(--ink);color:#fff;padding:.75rem 1rem;border-radius:14px;box-shadow:var(--shadow-lg);animation:pop .25s;font-weight:700}.toast.error{background:#8f1d22}.toast.ok{background:#17784f}.offline{position:fixed;top:0;left:0;right:0;background:var(--red);color:#fff;text-align:center;padding:.4rem;font-weight:800;z-index:300}.boot{min-height:100%;display:grid;place-items:center;align-content:center;gap:1rem}.spinner{width:44px;height:44px;border-radius:50%;border:5px solid var(--bg2);border-top-color:var(--gold);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.rules section{margin-bottom:1.2rem}.rules ul{padding-left:1.2rem;margin:.4rem 0}.rules li{margin:.3rem 0}.rules-spaces{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.5rem;margin-top:.5rem}.rs{display:flex;gap:.6rem;align-items:flex-start;background:var(--bg);padding:.5rem;border-radius:12px}.rs-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:1.2rem;flex-shrink:0}.rs p{margin:0;font-size:.8rem;color:var(--muted)}.end-modal{text-align:center;padding:1.5rem}.trophy{font-size:4rem;animation:float 2s ease-in-out infinite}.end-reason{font-size:1.1rem}.ranking{list-style:none;padding:0;margin:1rem 0;display:flex;flex-direction:column;gap:.4rem;text-align:left}.ranking li{display:flex;align-items:center;gap:.6rem;background:var(--bg);padding:.5rem .7rem;border-radius:14px}.ranking li.first{background:#fff5d6;box-shadow:0 0 0 2px var(--gold)}.rank{font-size:1.4rem;width:2rem;text-align:center}.rk-name{flex:1;display:flex;flex-direction:column;font-weight:900}.rk-name small{color:var(--muted);font-weight:600}.rk-score{font-size:.8rem;font-weight:800;text-align:right}@media(max-width:1350px){.game-grid{grid-template-columns:270px minmax(0,1fr) 360px}}@media(max-width:1100px){.game-grid{grid-template-columns:minmax(0,1fr) 360px}.col-left{grid-column:1 / -1;grid-row:2;position:static;max-height:none;display:grid;grid-template-columns:1fr 1fr}.col-board{position:static}.log-card{max-height:360px}}@media(max-width:900px){.home{grid-template-columns:1fr;gap:1.5rem;padding:1.2rem 1rem}.logo-text{font-size:2.6rem}.lobby-grid,.setup-grid{grid-template-columns:1fr;padding:0 1rem}.hide-sm{display:none}.game-grid{display:block;padding:.6rem .6rem 5.5rem}.col-left,.col-right,.col-board{display:none}.tab-play .col-board{display:flex}.tab-play .col-right{display:flex;margin-top:.6rem}.tab-play .col-right .sheet-card{display:none}.tab-sheet .col-right{display:flex}.tab-sheet .col-right .panel{display:none}.tab-players .col-left,.tab-log .col-left{display:flex}.tab-players .log-card{display:none}.tab-log .col-left>.card:first-child{display:none}.tab-log .log-card{max-height:none;height:calc(100vh - 170px)}.board-card{max-width:100%}.tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);z-index:40;padding-bottom:env(safe-area-inset-bottom)}.tabbar button{flex:1;border:0;background:none;padding:.5rem 0 .6rem;display:flex;flex-direction:column;align-items:center;font-size:.72rem;font-weight:800;color:var(--muted);position:relative;cursor:pointer}.tabbar button span{font-size:1.35rem}.tabbar button.sel{color:var(--brand)}.ping{position:absolute;top:6px;right:calc(50% - 20px);width:10px;height:10px;background:var(--red);border-radius:50%;animation:pulse 1s infinite}.game-top{padding:.4rem .6rem;gap:.4rem}.game-top .logo-text{display:none}.reaction-bar button{font-size:1.15rem;padding:.15rem .25rem}.avatar-grid{grid-template-columns:repeat(6,1fr)}}@media(max-width:420px){.hero-art span{width:54px;height:54px;font-size:2rem}.deal-choice{grid-template-columns:1fr}.choice{min-height:0}.big-code{font-size:2.8rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.badge.bot{background:#eef0ff;color:#3e4bb5}.bot-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:-.3rem 0 .8rem}.setup-col{display:flex;flex-direction:column;gap:1rem;min-width:0}.prof-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.prof-head h3{margin:0}.prof-list{display:flex;flex-direction:column;gap:.35rem;max-height:420px;overflow-y:auto;margin-top:.6rem;padding-right:.2rem}.prof-opt{display:flex;align-items:center;gap:.6rem;border:2px solid var(--line);background:#fff;border-radius:12px;padding:.45rem .6rem;text-align:left;cursor:pointer;transition:all .15s;font:inherit}.prof-opt:hover:not(:disabled){border-color:var(--brand)}.prof-opt.sel{border-color:var(--brand);background:#eefaf4;box-shadow:0 0 0 3px #22a06b33}.prof-opt:disabled,.dream:disabled{cursor:default;opacity:.6}.prof-opt.sel:disabled,.dream.sel:disabled{opacity:1}.dream:disabled:hover{transform:none}.po-icon{font-size:1.4rem;width:1.8rem;text-align:center}.po-name{flex:1;min-width:0;display:flex;flex-direction:column;font-weight:700;font-size:.88rem}.po-name small{color:var(--muted);font-weight:500;font-size:.72rem}.po-cf{font-weight:900;color:var(--brand2);font-size:.82rem;white-space:nowrap}.ready-btn{width:100%;margin-bottom:.5rem}.num-input{font-variant-numeric:tabular-nums}.trade-block{display:flex;flex-direction:column;gap:.45rem}.sell-block{border-top:1px dashed #d9dde5;padding-top:.55rem}.preset-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:.3rem}.preset-row .btn{flex-direction:column;gap:0;line-height:1.15;padding-top:.3rem;padding-bottom:.3rem}.preset-row .btn small{font-weight:600;opacity:.75;font-size:.7rem}.btn.sell{flex-direction:column;gap:0}.btn.sell small{font-weight:600;opacity:.85;font-size:.72rem}.choice .afford{margin-top:auto;font-size:.72rem;background:#00000029;border-radius:8px;padding:.2rem .4rem;opacity:1}.deal-tips{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.6rem}.tip-col{background:var(--bg);border-radius:12px;padding:.55rem .7rem;font-size:.78rem}.tip-col ul{list-style:none;margin:.3rem 0 0;padding:0;display:flex;flex-direction:column;gap:.25rem}.tip-col li{padding-left:1.2rem;position:relative;line-height:1.3}.tip-col li:before{position:absolute;left:0;font-weight:900}.tip-col li.pro:before{content:"＋";color:#22a06b}.tip-col li.con:before{content:"－";color:#e5484d}.deal-advice{background:#fff5d6;border-radius:12px;padding:.5rem .7rem;font-size:.84rem;margin:.6rem 0 .2rem;font-weight:600}.end-modal{overflow-y:auto}.key-moves{text-align:left;margin:.4rem 0 1rem}.key-moves h3{margin:0 0 .4rem;text-align:center}.km-tabs{display:flex;flex-wrap:wrap;gap:.3rem;justify-content:center;margin-bottom:.5rem}.km-tab{display:inline-flex;align-items:center;gap:.35rem;border:0;background:var(--bg);border-radius:999px;padding:.2rem .6rem .2rem .25rem;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer}.km-tab.sel{background:#fff5d6;box-shadow:0 0 0 2px var(--gold)}.km-lead{font-size:.82rem;font-weight:800;margin:.5rem 0 .3rem}.km-lead.bad{color:#b4232a}.km-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.km-list li{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;align-items:center;background:var(--bg);border-radius:10px;padding:.4rem .6rem;font-size:.82rem}.km-list li.key{background:#fff5d6;font-weight:800}.km-list.bad li{background:#fff4f4}.km-round{font-size:.7rem;color:var(--muted);font-weight:700;white-space:nowrap}.km-imp{display:flex;flex-direction:column;align-items:flex-end;font-weight:800;font-size:.75rem;white-space:nowrap}.km-imp .pos{color:#22a06b}.km-imp .neg{color:#e5484d}@media(max-width:640px){.deal-tips{grid-template-columns:1fr}.km-list li{grid-template-columns:1fr auto}.km-round{grid-column:1 / -1}}.up{color:#17784f!important}.down{color:#b4232a!important}.toast.news{background:#1e3a8a}.log-item.news{background:#eef2ff;border-left-color:var(--blue)}.center-world{text-anchor:middle;font-weight:900;fill:#3e63dd}.market-btn{background:linear-gradient(180deg,#5b7cf0,var(--blue));color:#fff;box-shadow:0 3px #2c47a8}.world-bar{display:flex;align-items:center;gap:.7rem;width:100%;border:0;border-bottom:1px solid var(--line);background:#10213f;color:#e6ecff;padding:.35rem 1rem;cursor:pointer;font-size:.8rem;overflow:hidden;text-align:left}.wb-events{display:flex;gap:.4rem;flex-shrink:0;max-width:45%;overflow:hidden}.wb-ev{background:#ffffff1f;border-radius:999px;padding:.12rem .6rem;font-weight:800;white-space:nowrap}.wb-ev.calm{opacity:.75}.wb-ticker{flex:1;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}.wb-track{display:inline-flex;animation:ticker 60s linear infinite}.world-bar:hover .wb-track{animation-play-state:paused}.wb-set{display:inline-flex;gap:1.4rem;padding-right:1.4rem;white-space:nowrap}.wb-tk em{font-style:normal;font-weight:800}.wb-tk em.up{color:#4ade80!important}.wb-tk em.down{color:#f87171!important}.wb-open{flex-shrink:0;font-weight:900;color:#ffd166}@keyframes ticker{0%{transform:translate(0)}to{transform:translate(-50%)}}.market{display:flex;flex-direction:column;gap:.9rem}.market h3{font-size:1.05rem;margin-bottom:.45rem}.scenarios{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.6rem}.scenario{background:#f3f5ff;border:2px solid #dfe5ff;border-radius:14px;padding:.6rem .75rem;display:flex;flex-direction:column;gap:.3rem}.scenario p{margin:0;font-size:.82rem;color:#3b4556}.scenario-head{display:flex;align-items:center;gap:.45rem}.scenario-head small{margin-left:auto;background:#3e63dd;color:#fff;border-radius:999px;padding:.05rem .5rem;font-weight:800;white-space:nowrap}.sc-icon{font-size:1.4rem}.fx{display:flex;flex-wrap:wrap;gap:.25rem}.fx-chip{font-size:.7rem;font-weight:800;border-radius:999px;padding:.1rem .45rem;background:#fff}.fx-chip.up{box-shadow:inset 0 0 0 1.5px #9ee2c0}.fx-chip.down{box-shadow:inset 0 0 0 1.5px #f6c8c9}.portfolio{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.portfolio .kpi{background:var(--bg);border-radius:12px;padding:.5rem .7rem;display:flex;flex-direction:column}.portfolio .kpi small{color:var(--muted);font-size:.72rem;font-weight:800}.portfolio .kpi b{font-variant-numeric:tabular-nums}.filters{display:flex;gap:.35rem;flex-wrap:wrap}.stock-list{display:flex;flex-direction:column;gap:.3rem}.stock-head,.stock-main{display:grid;grid-template-columns:minmax(0,1.6fr) 28px 90px minmax(0,1fr) minmax(0,1fr);gap:.5rem;align-items:center}.stock-head{font-size:.7rem;color:var(--muted);font-weight:800;padding:0 .6rem;text-transform:uppercase;letter-spacing:.03em}.stock-head span:nth-child(n+4){text-align:right}.stock-row{border-radius:12px;background:#faf8f3;box-shadow:inset 0 0 0 1.5px var(--line)}.stock-row.hl{box-shadow:inset 0 0 0 2px #3e63dd;background:#f3f5ff}.stock-row.open{background:#fff}.stock-main{width:100%;border:0;background:none;padding:.45rem .6rem;cursor:pointer;text-align:left}.stock-main small{display:block;font-size:.7rem;color:var(--muted);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.st-name{min-width:0}.st-sector{font-size:1.1rem;text-align:center}.st-price,.st-own{text-align:right;font-variant-numeric:tabular-nums}.st-price small,.st-own small{font-weight:800}.spark polyline{stroke:var(--muted)}.spark.up polyline{stroke:var(--green)}.spark.down polyline{stroke:var(--red)}.stock-detail{padding:0 .6rem .7rem;display:flex;flex-direction:column;gap:.5rem}.stock-detail .gc-nums dd{font-size:.85rem}.trade-note{background:var(--bg);padding:.5rem .7rem;border-radius:10px;margin:0}.ipo-list{display:flex;flex-wrap:wrap;gap:.35rem}.ipo-chip{background:#fff7e0;border-radius:999px;padding:.2rem .65rem;font-size:.78rem;box-shadow:inset 0 0 0 1.5px #f5d98a}.news{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.news li{display:grid;grid-template-columns:24px 1fr auto;gap:.4rem;font-size:.82rem;background:#faf8f3;border-radius:10px;padding:.4rem .6rem}.news li small{color:var(--muted);white-space:nowrap}.news-stocks{display:flex;flex-direction:column;gap:.35rem}.news-stock{position:relative}.move-tag{position:absolute;top:-6px;right:8px;z-index:1;font-size:.68rem;font-weight:900;padding:.05rem .4rem;border-radius:999px;color:#fff!important}.move-tag.up{background:var(--green)}.move-tag.down{background:var(--red)}.news-stocks .stock-main{grid-template-columns:minmax(0,1.5fr) 24px 64px minmax(0,1fr) minmax(0,1fr)}.news-stocks .spark{width:64px}.gc-scenario{background:#eef2ff;color:#1e3a8a;border-radius:10px;padding:.4rem .6rem;font-size:.9rem}.ipo-box{display:flex;flex-direction:column;gap:.5rem}@media(max-width:900px){.world-bar{padding:.3rem .6rem}.wb-events{max-width:55%}.wb-open,.market-btn{display:none}.portfolio{grid-template-columns:1fr 1fr}}@media(max-width:560px){.stock-head,.stock-main,.news-stocks .stock-main{grid-template-columns:minmax(0,1.3fr) 60px minmax(0,1fr) minmax(0,.9fr)}.stock-head span:nth-child(2),.st-sector{display:none}.spark{width:60px}}body.k3d{background:#0f3d3e;overflow:hidden}#world{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;z-index:0;outline:none;touch-action:none}#root{position:relative;z-index:1;height:100%;overflow:auto}body:not([data-screen=game]) #root{background:linear-gradient(90deg,#f4efe4ed,#f4efe4cc,#f4efe49e)}body[data-screen=game] #root{overflow:hidden;pointer-events:none}body[data-screen=game] .toasts{bottom:118px}.logo:after{content:"3D";font:800 .7rem var(--font);background:var(--brand);color:var(--gold);border-radius:6px;padding:.1rem .35rem;margin-left:.35rem;align-self:center}.logo.small:after{display:none}.hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;-webkit-user-select:none;user-select:none}.hud .pe,.hud .pe *{pointer-events:auto}.hud .card{background:#fffffff2}kbd{font:800 .72rem var(--font);background:#fff;color:var(--ink);border:1px solid #d8cfbf;border-bottom-width:3px;border-radius:6px;padding:.05rem .35rem;margin:0 .1rem}.k3-top{position:absolute;top:0;left:0;right:0;height:54px;background:#ffffffdb;-webkit-backdrop-filter:none;backdrop-filter:none}.k3-badge{font-weight:900;font-size:.75rem;background:var(--brand);color:var(--gold);border-radius:6px;padding:.1rem .4rem}.k3-top .btn.on{background:var(--brand);color:#fff}.k3-world{position:absolute;top:54px;left:0;right:0}.k3-world .world-bar{background:#10213fe0}.k3-players{position:absolute;top:96px;left:12px;display:flex;flex-direction:column;gap:6px;z-index:2}.k3-chip{display:flex;align-items:center;gap:.5rem;border:0;background:#ffffffe0;border-radius:999px;padding:3px 12px 3px 3px;cursor:pointer;box-shadow:0 4px 14px -6px #00000059;border-left:4px solid var(--pc);text-align:left;transition:transform .15s;min-width:150px}.k3-chip:hover{transform:translate(3px)}.k3-chip.turn{box-shadow:0 0 0 3px var(--gold),0 6px 18px -6px #0006}.k3-chip-info{display:flex;flex-direction:column;line-height:1.1;font-size:.78rem}.k3-chip-info b{font-size:.82rem;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.k3-ft{margin-left:auto}.drawer{position:absolute;top:96px;left:12px;bottom:12px;width:min(440px,calc(100vw - 460px));min-width:340px;display:flex;flex-direction:column;gap:8px;transform:translate(calc(-100% - 24px));transition:transform .25s cubic-bezier(.2,.8,.2,1);z-index:5}.drawer.open{transform:none}.drawer-tabs{display:flex;gap:4px;background:#ffffffeb;border-radius:14px;padding:4px;box-shadow:var(--shadow)}.drawer-tabs button:not(.icon-btn){flex:1;border:0;background:none;border-radius:10px;padding:.45rem;font-weight:800;cursor:pointer;color:var(--muted)}.drawer-tabs button.sel{background:var(--brand);color:#fff}.drawer-body{flex:1;overflow:auto;border-radius:var(--radius);overscroll-behavior:contain}.drawer-body .log-card{max-height:none}.dock{position:absolute;top:96px;right:12px;bottom:118px;width:400px;transform:translate(calc(100% + 12px));transition:transform .25s cubic-bezier(.2,.8,.2,1);z-index:4}.dock.open{transform:none}.dock-body{height:100%;overflow:auto;border-radius:var(--radius);overscroll-behavior:contain}.dock-body::-webkit-scrollbar,.drawer-body::-webkit-scrollbar{width:8px}.dock-body::-webkit-scrollbar-thumb,.drawer-body::-webkit-scrollbar-thumb{background:#0003;border-radius:8px}.dock.attention .panel{box-shadow:0 0 0 3px var(--gold),var(--shadow-lg)}.dock-toggle{position:absolute;left:-38px;top:8px;width:30px;height:44px;border:0;border-radius:10px 0 0 10px;background:#ffffffe6;font-size:1.4rem;font-weight:900;cursor:pointer;box-shadow:var(--shadow)}.dock-toggle .ping{position:absolute;top:4px;right:4px}.minimap{position:absolute;left:12px;bottom:12px;border-radius:50%;box-shadow:0 0 0 3px #ffffffd9,0 10px 30px -10px #00000080;z-index:1}.crosshair{position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#fff;box-shadow:0 0 0 1.5px #00000073;opacity:0;transition:opacity .2s}.hud.locked .crosshair{opacity:.9}.hud.locked .k3-players,.hud.locked .dock,.hud.locked .drawer{opacity:.88}.k3-bottom{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px}.k3-hint{background:#0f1e23b8;color:#fff;font-size:.85rem;font-weight:700;border-radius:999px;padding:.35rem .9rem;white-space:nowrap}.k3-hint kbd{background:#fffffff2}.k3-bottom .reaction-bar{background:#ffffffd9}.k3-banner{position:absolute;top:26%;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#ffe29a,#f5b82e);color:var(--brand);font:800 1.6rem var(--display);padding:.6rem 1.6rem;border-radius:999px;box-shadow:var(--shadow-lg);animation:k3pop 3.2s ease forwards;white-space:nowrap}@keyframes k3pop{0%{opacity:0;transform:translate(-50%,20px) scale(.9)}10%{opacity:1;transform:translate(-50%) scale(1)}85%{opacity:1}to{opacity:0;transform:translate(-50%,-10px)}}.k3-dice{position:absolute;top:100px;left:50%;transform:translate(-50%);background:#fffffff0;border-left:5px solid var(--pc);border-radius:999px;padding:.4rem 1rem;font-weight:700;box-shadow:var(--shadow);animation:fade .25s;white-space:nowrap}.k3-dice b{font-size:1.1rem}.k3-pop{position:absolute;top:62px;right:12px;width:310px;background:#fffffff7;border-radius:16px;box-shadow:var(--shadow-lg);padding:.8rem;display:flex;flex-direction:column;gap:.35rem;z-index:20}.k3-pop-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.2rem}.fps{font-weight:900;font-size:.8rem;background:#e8f7ee;color:#127a4a;border-radius:8px;padding:.1rem .45rem}.fps.warn{background:#fde8e8;color:#b42318}.k3-opt{display:flex;justify-content:space-between;align-items:center;border:2px solid var(--line);background:#fff;border-radius:10px;padding:.45rem .7rem;cursor:pointer;font-weight:800}.k3-opt em{font-style:normal;font-size:.75rem;color:var(--muted);font-weight:700}.k3-opt.sel{border-color:var(--brand);background:#eef6f5}.k3-keys{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;margin:.5rem 0;padding-top:.5rem;border-top:1px solid var(--line)}body[data-screen=game] .modal-back,body[data-screen=game] .modal-back *{pointer-events:auto}
