:root{--ink:#233d49;--muted:#728690;--blue:#168aa9;--paper:#fff;--line:#dbe6e9;--red:#d64e68}*{box-sizing:border-box}body{margin:0;background:#f7f8f4;color:var(--ink);font-family:system-ui,-apple-system,'Segoe UI',sans-serif;font-size:15px}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:12px;padding:12px 18px;min-height:44px;background:white;color:var(--ink);font-weight:700;transition:transform .15s,background .15s}button:hover{background:#edf8fc}button:active{transform:scale(.97)}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #57bbd7;outline-offset:3px}.primary{background:var(--blue);color:white;border-color:var(--blue)}.primary:hover{background:#13718b}.danger{background:#ffedf0;color:var(--red)}.small{padding:7px 12px;min-height:36px;font-size:12px}input,select{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;color:var(--ink);max-width:100%}.top{max-width:1200px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:20px 24px;gap:10px}.top>div{display:flex;gap:6px}.brand{font-size:12px;letter-spacing:2px;text-decoration:none;color:var(--ink);font-weight:900}.brand span{color:var(--blue)}main{max-width:1160px;margin:auto;padding:0 24px 24px}h1{font-size:clamp(30px,5vw,48px);letter-spacing:-2px;margin:14px 0}h2{font-size:23px;margin:8px 0 16px}h3{margin:0 0 12px}p{line-height:1.8}.eyebrow{font-size:11px;letter-spacing:3px;font-weight:800;color:var(--blue)}.muted{color:var(--muted);font-size:13px}.hero{padding:48px 20px 30px;text-align:center}.hero p{margin:12px auto;max-width:600px}.showcase{display:flex;justify-content:center;gap:10px;margin:26px 0}.showcase .card:nth-child(1){transform:rotate(-10deg)}.showcase .card:nth-child(3){transform:rotate(10deg)}.modes{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:820px;margin:0 auto}.panel{background:white;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 10px 30px #233d4905}.panel label{display:block;font-size:12px;font-weight:700;margin:14px 0 7px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.field{display:flex;gap:8px;margin-bottom:12px}.field input{min-width:0;flex:1}.full{width:100%}.lobby{max-width:720px;margin:35px auto}.room{font-size:32px;font-weight:900;letter-spacing:5px;color:var(--blue)}.seats{display:grid;gap:10px;margin:20px 0}.seat{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#f4f8fa;border-radius:12px;padding:12px}.seat-actions{display:flex;gap:4px}.gamebar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:12px 0}.timer{padding:8px 14px;border-radius:20px;background:#fff;font-weight:800;font-variant-numeric:tabular-nums}.timer.urgent{background:#ffedf0;color:var(--red);animation:pulse .8s infinite}.table{border:1px solid #c8e0e6;background:radial-gradient(ellipse at center,#f1fbfc,#e0eff2);border-radius:28px;padding:18px;position:relative;min-height:460px}.opponents{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px}.player{border:1px solid #d8e8eb;background:#ffffffce;border-radius:14px;padding:12px;transition:box-shadow .2s}.player.active{box-shadow:0 0 0 2px var(--blue)}.player-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.avatar{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#dfedf2;color:var(--blue);font-weight:900;flex-shrink:0}.player-name{font-weight:800;font-size:13px;overflow-wrap:anywhere}.player-meta{font-size:11px;color:var(--muted);margin:6px 0}.penalties{display:flex;flex-wrap:wrap;gap:4px;min-height:26px}.penalty{font-size:10px;border-radius:6px;background:#f0f5f6;padding:4px 6px;display:flex;align-items:center;gap:4px}.penalty.hot{background:#fff0f2;border:1px solid #e3768b;color:#b9314e;font-weight:800}.penalty .fruit{display:inline-flex;align-items:center;justify-content:center;width:62px;height:62px;flex-shrink:0}.fruit svg{display:block;width:100%;height:100%;overflow:visible}.fruit-placeholder{display:block;width:80%;height:80%;border-radius:50%}.fruit[hidden]{display:none}.card .name{font-size:11px;text-align:center;line-height:1.4;max-width:100%;overflow-wrap:anywhere}.card img{flex-shrink:0}.choice .fruit{width:44px;height:44px}.penalty .fruit{width:22px;height:22px}.showcase .fruit{width:70px;height:70px}.back{color:#fff;background:repeating-linear-gradient(45deg,#528f8a 0 3px,#5b9b94 3px 11px);border:4px solid white;gap:8px}.seal{border:2px solid #ffffff80;border-radius:50%;font-size:32px;width:58px;height:58px;display:grid;place-items:center;color:#fff}.back small{font-size:8px;letter-spacing:1px}.central .card{width:112px;height:154px}.slide{animation:slide .45s ease-out}.flip{animation:flip .6s ease-in-out}.own{margin-top:14px}.handbar{display:flex;justify-content:space-between;align-items:center;margin:20px 0 12px}.hand{display:flex;gap:9px;overflow-x:auto;padding:14px 4px 18px;scroll-snap-type:x proximity}.hand .card{scroll-snap-align:start;flex-shrink:0;cursor:pointer}.controls{background:white;border:1px solid var(--line);border-radius:18px;padding:20px;margin:14px 0}.controls h3{font-size:16px}.choices{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.choice{padding:8px 3px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11px;min-height:90px}.choice .fruit{width:40px;height:40px}.choice.chosen{outline:2px solid var(--blue);background:#eef9fc}.targets{display:flex;gap:8px;flex-wrap:wrap}.targets .chosen{background:#e2f4f8;border-color:var(--blue)}.actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:center}.confirm{background:#f1f7f9;padding:12px;border-radius:12px;margin:12px 0;line-height:1.8}.history{margin-top:20px;border:1px solid var(--line);border-radius:15px;background:#fff;padding:16px}.history summary{font-weight:800;cursor:pointer}.log{padding:12px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.8}.log:last-child{border:0}.result-text{font-size:26px;font-weight:900;color:var(--blue)}.over{padding:20px;text-align:center}.over h2{font-size:29px}.notice{background:#fff1e8;color:#924e26;padding:10px;border-radius:10px;font-size:12px;margin-bottom:10px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#243c49;color:white;max-width:90vw;padding:12px 20px;border-radius:14px;box-shadow:0 6px 30px #0002;z-index:5;display:none}#toast.show{display:block}dialog{border:1px solid var(--line);border-radius:20px;max-width:600px;width:92vw;color:var(--ink);padding:28px}dialog::backdrop{background:#203a4970}dialog li{line-height:1.9;margin:8px 0}.footer{text-align:center;margin:20px 0;font-size:11px;color:var(--muted)}@keyframes slide{from{transform:translateX(-90px) rotate(-12deg);opacity:0}to{transform:none;opacity:1}}@keyframes flip{0%{transform:rotateY(0)}45%{transform:rotateY(90deg)}100%{transform:rotateY(0)}}@keyframes pulse{50%{box-shadow:0 0 0 4px #d64e6815}}@media(max-width:650px){main{padding:0 10px 20px}.top{padding:14px 12px}.brand{font-size:10px;letter-spacing:1px}.hero{padding:22px 5px 20px}.hero p{font-size:13px}.modes{grid-template-columns:1fr}.panel{padding:20px}.table{padding:10px;border-radius:20px}.opponents{grid-template-columns:repeat(2,1fr);gap:6px}.player{padding:8px}.player-name{font-size:12px}.player-meta{font-size:10px}.penalty{padding:3px;font-size:9px}.central{min-height:244px;padding:15px 0}.central h2{font-size:16px}.choices{grid-template-columns:repeat(4,1fr)}.card{width:82px;min-width:82px;height:119px}.card .fruit{width:52px;height:52px}.card img{width:55px;height:55px}.controls{padding:14px}.gamebar{font-size:12px}.actions button{flex:1;padding:12px 10px}.hand{gap:7px}.showcase{margin:22px 0}.showcase .card{height:126px}.seat{font-size:13px}.result-text{font-size:23px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.fruit[hidden]{display:none}

.card .fruit{height:70px;width:70px}.central .card .fruit{width:86px;height:86px}.choice{font-size:10px}@media(max-width:650px){.card .fruit{height:55px;width:55px}.central .card .fruit{width:78px;height:78px}}

.seal svg{width:38px;height:38px}
