:root{--ink:#2b2b3a;--main:#ff7a45;--sub:#3b8ed0;--ok:#2fae66;--yellow:#ffd23f;--pink:#ff6fa5;--purple:#8a5cf5;--card:#fff;--line:#e2d6bd;--warn:#d6455d;
  --kyo:"UD デジタル 教科書体 NK-R","UD デジタル 教科書体 NP-R","BIZ UDMincho","Yu Mincho","Hiragino Mincho ProN",serif;
  --emo:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif}
*{box-sizing:border-box}
html,body{margin:0;color:var(--ink);font-family:"Hiragino Maru Gothic ProN","BIZ UDPGothic","Yu Gothic UI","Meiryo",sans-serif;font-size:18px;line-height:1.45;
  background:linear-gradient(180deg,#bfe9ff 0%,#e6f7ff 45%,#fff6cf 100%);min-height:100vh}
body{overflow-x:hidden}
#app{max-width:1366px;margin:0 auto;padding:4px 10px}
.hidden{display:none!important}
ruby rt{font-size:.5em;font-weight:normal;letter-spacing:0}
button{font:inherit;border:3px solid var(--ink);background:#fff;color:var(--ink);border-radius:16px;padding:.4em .9em;cursor:pointer;font-size:1rem;transition:transform .08s}
button:hover:not(:disabled){transform:translateY(-2px)}
button:disabled{opacity:.4;cursor:not-allowed}
button.big{font-size:1.4rem;padding:.55em 1.4em}
button.small{font-size:.9rem;padding:.25em .8em;border-radius:12px}
button.primary{background:var(--main);color:#fff;border-color:#c24d1c;font-weight:bold;box-shadow:0 4px 0 #c24d1c}
.row{display:flex;gap:14px;flex-wrap:wrap;margin:14px 0}
.row.center{justify-content:center}
.screen{position:relative}

/* ---------- 最初の画面 ---------- */
#screen-title{min-height:calc(100vh - 24px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px}
.help-btn{position:absolute;top:6px;right:6px;z-index:5;background:var(--yellow);border-color:#b58900;font-weight:bold;font-size:1.15rem;border-radius:30px;padding:.4em 1em;box-shadow:0 3px 0 #b58900}
.help-btn.static{position:static}
.help-btn .qm{display:inline-block;width:1.5em;height:1.5em;line-height:1.5em;border-radius:50%;background:#fff;text-align:center;margin-right:.2em;border:2px solid #b58900}
.floaters span{position:absolute;font-size:64px;font-family:var(--emo);opacity:.95;animation:bob 3s ease-in-out infinite}
.floaters span:nth-child(1){left:6%;top:12%}.floaters span:nth-child(2){left:18%;top:62%;animation-delay:.4s}
.floaters span:nth-child(3){left:30%;top:6%;animation-delay:.8s}.floaters span:nth-child(4){left:8%;top:38%;animation-delay:1.2s}
.floaters span:nth-child(5){right:7%;top:14%;animation-delay:.2s}.floaters span:nth-child(6){right:20%;top:66%;animation-delay:.6s}
.floaters span:nth-child(7){right:32%;top:8%;animation-delay:1s}.floaters span:nth-child(8){right:9%;top:40%;animation-delay:1.4s}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-16px) rotate(4deg)}}
.hero{text-align:center;z-index:2}
.title-tiles{display:flex;align-items:center;justify-content:center;gap:10px}
.tile{display:inline-flex;align-items:center;justify-content:center;width:130px;height:130px;font-family:var(--kyo);font-size:96px;font-weight:bold;color:#fff;border-radius:26px;box-shadow:0 8px 0 rgba(0,0,0,.22);transform:rotate(-5deg)}
.tile rt{font-size:20px;font-family:sans-serif}
.tile.t1{background:var(--main)}.tile.t2{background:var(--sub);transform:rotate(4deg)}
.tt{font-size:58px;font-weight:bold;color:#e0457b;text-shadow:3px 3px 0 #fff;margin-left:10px}
.sub{font-size:1.6rem;margin:16px 0 0;font-weight:bold}
.modes{display:flex;gap:34px;z-index:2;flex-wrap:wrap;justify-content:center}
.modebtn{width:470px;min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:36px;border-width:5px;padding:20px 24px;box-shadow:0 10px 0 rgba(0,0,0,.22);animation:pulse 2.4s ease-in-out infinite}
.modebtn.easy{background:linear-gradient(180deg,#b9f6c7,#6fdc8c);border-color:#1f9d4b}
.modebtn.hard{background:linear-gradient(180deg,#ffd0d9,#ff8aa0);border-color:#c93a5a;animation-delay:.5s}
.modebtn:hover:not(:disabled){transform:translateY(-6px) scale(1.03)}
.mimg{font-size:84px;font-family:var(--emo);line-height:1}
.mname{font-size:64px;font-weight:bold;color:#fff;text-shadow:3px 3px 0 rgba(0,0,0,.28)}
.mdesc{font-size:1.5rem;font-weight:bold;line-height:1.7;text-align:center}
.mgo{font-size:1.5rem;font-weight:bold;background:#fff;border-radius:30px;padding:.1em 1.2em;margin-top:6px}
@keyframes pulse{0%,100%{box-shadow:0 10px 0 rgba(0,0,0,.22)}50%{box-shadow:0 14px 0 rgba(0,0,0,.22),0 0 24px rgba(255,255,255,.9)}}

/* ---------- せってい ---------- */
.cfg-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cfg-mode{font-size:2rem;font-weight:bold;color:#fff;padding:.1em 1em;border-radius:30px;box-shadow:0 4px 0 rgba(0,0,0,.2)}
.cfg-mode.easy{background:#2fae66}.cfg-mode.hard{background:#e0457b}
.back-btn{font-size:1.2rem;font-weight:bold}
.cfg-grid{display:grid;grid-template-columns:1.1fr 1.1fr .8fr;gap:12px;margin-top:10px}
.cfg-box{background:#fff;border:3px solid var(--line);border-radius:20px;padding:8px 14px 12px}
.cfg-box.wide{margin-top:12px}
.cfg-box h2{font-size:1.2rem;margin:6px 0 8px;border-left:10px solid var(--sub);padding-left:.5em}
.choices{display:flex;gap:10px;flex-wrap:wrap}
.choices button{flex:1 1 auto;font-size:1.2rem;font-weight:bold;padding:.45em .5em;white-space:nowrap}
.choices.small button{flex:0 0 auto;min-width:76px}
.choices button.on{background:var(--yellow);border-color:#b58900;box-shadow:0 0 0 4px #ffe88a}
.picker{display:flex;align-items:center;gap:14px;margin:6px 0;flex-wrap:wrap;background:#f6fbff;border-radius:16px;padding:6px 10px}
.picker .who{font-weight:bold;font-size:1.1rem;min-width:5.5em}
.picker input{font:inherit;font-size:1.2rem;padding:.3em .6em;border:3px solid var(--line);border-radius:12px;width:9em}
.chars{display:flex;gap:6px;flex-wrap:wrap}
.chars button{font-family:var(--emo);font-size:2.1rem;line-height:1;padding:.1em .2em;width:64px;height:64px;border-radius:50%;border-width:3px;position:relative}
.chars button.on{background:var(--yellow);border-color:#b58900;box-shadow:0 0 0 4px #ffe88a;transform:scale(1.1)}
.chars button.taken{opacity:.25}
.chars button span{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);font-size:.6rem;font-family:sans-serif;white-space:nowrap;display:none}
button.go{font-size:2rem;padding:.4em 2em}

/* ---------- あそぶ画面 ---------- */
#screen-game{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:10px}
#topbar{display:flex;justify-content:space-between;align-items:center;gap:8px;height:40px}
#mode-label{font-weight:bold;font-size:1.05rem;color:#fff;padding:.05em .8em;border-radius:20px}
#mode-label.easy{background:#2fae66}#mode-label.hard{background:#e0457b}
.topbtns{display:flex;gap:6px}
#table{position:relative;margin-top:2px;height:446px;border-radius:40px;background:radial-gradient(ellipse at center,#3dbb73 0%,#2b9a5c 70%,#238550 100%);border:10px solid #b57b3d;box-shadow:inset 0 0 40px rgba(0,0,0,.25),0 6px 0 rgba(0,0,0,.15);
  display:grid;grid-template-columns:132px 1fr 132px;grid-template-rows:112px 1fr;color:#fff}
.seat-slot{display:flex;align-items:center;justify-content:center;min-width:0}
.seat-slot.top{grid-column:2;grid-row:1;align-items:flex-end}
.seat-slot.left{grid-column:1;grid-row:1 / span 2;align-items:flex-start;padding-top:36px}
.seat-slot.right{grid-column:3;grid-row:1 / span 2;align-items:flex-start;padding-top:36px}
#center{grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:center;min-height:0;padding:0 4px 34px}
.seat{position:relative;display:flex;gap:8px;align-items:center;background:rgba(0,0,0,.28);border:4px solid transparent;border-radius:22px;padding:6px 10px;color:#fff;max-width:100%}
.seat.v{flex-direction:column;text-align:center;padding:6px 6px 4px;width:124px;gap:2px}
.seat.v .av{font-size:42px}
.seat.v .backs{height:40px}
.seat.v .cardback{width:26px;height:38px;margin-left:-16px}
.seat.v .cardback:first-child{margin-left:0}
.seat .av{font-family:var(--emo);font-size:50px;line-height:1}
.seat .nm{font-weight:bold;font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.seat .nm small{display:block;font-size:.7rem;font-weight:normal;opacity:.85}
.seat .cnt{font-size:.95rem;font-weight:bold}
.seat .cnt b{font-size:1.5rem;color:var(--yellow)}
.backs{display:flex;height:52px}
.seat.v .backs{justify-content:center;width:100%}
.cardback{width:30px;height:48px;margin-left:-18px;border-radius:6px;border:2px solid #fff;background:repeating-linear-gradient(45deg,#3b6fd0 0 6px,#2c57ab 6px 12px);box-shadow:1px 2px 3px rgba(0,0,0,.35)}
.cardback:first-child{margin-left:0}
.seat.active{border-color:var(--yellow);background:rgba(255,210,63,.35);animation:glow 1s ease-in-out infinite;transform:scale(1.04)}
@keyframes glow{0%,100%{box-shadow:0 0 8px 2px rgba(255,210,63,.6)}50%{box-shadow:0 0 28px 10px rgba(255,210,63,.95)}}
.seat .arrow{position:absolute;top:-34px;left:50%;transform:translateX(-50%);background:var(--yellow);color:#7a4a00;font-weight:bold;border-radius:14px;padding:0 .6em;font-size:.95rem;white-space:nowrap;animation:bounce .7s ease-in-out infinite;z-index:3}
.seat.v .arrow{top:-30px}
.seat.bottomseat .arrow{top:-34px}
@keyframes bounce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-7px)}}
.seat .pt{font-size:.95rem}.seat .pt b{font-size:1.3rem;color:var(--yellow)}
#turnpill{background:var(--yellow);color:#6a3b00;font-weight:bold;font-size:1.55rem;line-height:1.5;border-radius:28px;padding:0 1.1em;border:4px solid #b58900;box-shadow:0 4px 0 rgba(0,0,0,.25);white-space:nowrap;flex:0 0 auto}
#turnpill .em{font-family:var(--emo)}
#turnpill.me{background:#ff7a45;color:#fff;border-color:#c24d1c;animation:pillpulse .9s ease-in-out infinite}
@keyframes pillpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
#order{position:absolute;right:12px;bottom:8px;z-index:3;display:flex;align-items:center;gap:3px;font-size:.8rem;background:rgba(0,0,0,.3);border-radius:16px;padding:2px 10px;max-width:40%}
#order .o{font-family:var(--emo);font-size:1.25rem;opacity:.7}
#order .o.cur{opacity:1;transform:scale(1.35);filter:drop-shadow(0 0 5px #ffd23f)}
#order .dirm{margin-left:4px;font-size:.78rem;font-weight:bold;color:var(--yellow)}
#pile{position:absolute;left:14px;bottom:8px;z-index:2;display:flex;align-items:flex-end;gap:8px;font-size:.85rem;line-height:1.25;white-space:nowrap}
#pile .stack{position:relative;width:46px;height:62px;flex:0 0 46px}
#pile .stack i{position:absolute;width:42px;height:58px;border-radius:7px;border:2px solid #fff;background:repeating-linear-gradient(45deg,#3b6fd0 0 6px,#2c57ab 6px 12px)}
#pile .stack i:nth-child(1){left:0;top:4px}#pile .stack i:nth-child(2){left:2px;top:2px}#pile .stack i:nth-child(3){left:4px;top:0}
#pile b{font-size:.95rem}
#pile>div:last-child{background:rgba(0,0,0,.3);border-radius:10px;padding:1px 8px}
#pile small{display:block;opacity:.9;font-size:.72rem}

/* 場の漢字（やさしい） */
.fieldbox{background:#fff;color:var(--ink);border-radius:24px;border:5px solid var(--yellow);text-align:center;padding:2px 28px 6px;box-shadow:0 6px 0 rgba(0,0,0,.25)}
.fieldbox .cap{font-size:1rem;font-weight:bold;color:#2b9a5c}
.fieldbox .fg{font-family:var(--kyo);font-size:170px;line-height:1.05;font-weight:bold}
.fieldbox .fp{display:flex;gap:6px;justify-content:center;font-size:.9rem;margin-top:-4px}
.fieldbox .fp span{background:#eef7ff;border-radius:10px;padding:0 .5em}
/* 場の部品（むずかしい） */
.tgrid{display:grid;grid-template-columns:repeat(6,100px);gap:6px 12px;justify-content:center;padding:0}
#center.build{align-items:flex-start;padding-top:4px}
.tcap{position:absolute;left:50%;transform:translateX(-50%);top:84px;font-size:.95rem;font-weight:bold;text-align:center;background:rgba(0,0,0,.25);border-radius:14px;padding:0 .8em;white-space:nowrap}

/* カード */
.hc,.tc{position:relative;font-family:inherit;background:#fff;border:4px solid #4a4a6a;border-radius:16px;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 5px 0 rgba(0,0,0,.25);flex:0 0 auto}
.hc{width:104px;height:124px}
.hc .g,.tc .g{font-family:var(--kyo);font-weight:bold;line-height:1.05}
.hc .g{font-size:56px}
.hc .n,.tc .n{font-size:.78rem;color:#555;min-height:1.1em}
.hc .d{font-size:.72rem;color:#444;line-height:1.2;padding:0 4px;text-align:center}
.hc .g.sm{font-size:1.2rem;line-height:1.2;text-align:center}
.hc.sp{background:linear-gradient(180deg,#fff0b3,#ffd966);border-color:#b58900}
.hc.wild{background:linear-gradient(135deg,#ffd0d9,#fff0b3,#c8f5d2,#cfe6ff);border-color:#8a5cf5}
.tc{width:100px;height:84px;color:var(--ink);border-radius:14px}
.tc .g{font-size:42px}
.tc .n{font-size:.68rem;min-height:0}
.hc.sel,.tc.sel{transform:translateY(-16px);border-color:var(--main);box-shadow:0 0 0 5px #ffb98f,0 8px 0 rgba(0,0,0,.25);background:#fff3e8}
.hc.hint,.tc.hint{border-color:#2fae66;box-shadow:0 0 0 6px #9be8b8,0 0 22px 8px rgba(80,230,140,.9);animation:hintpulse .8s ease-in-out infinite}
@keyframes hintpulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.hc.sel.hint,.tc.sel.hint{animation:none}
.hc.shake{animation:shake .35s}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
#hand.dense .hc{width:86px;height:112px}#hand.dense .hc .g{font-size:50px}#hand.dense .hc .g.sm{font-size:1.05rem}#hand.dense .hc .d{display:none}

/* 手札まわり */
#instr{display:flex;align-items:center;gap:12px;margin-top:6px;min-height:0;background:#fff;border:4px solid var(--line);border-radius:20px;padding:4px 14px}
#instr .av{font-family:var(--emo);font-size:38px;line-height:1}
#instr .tx{font-size:1.45rem;font-weight:bold;line-height:1.35;flex:1}
#instr .tx small{display:block;font-weight:bold;font-size:1.3rem;color:#8a3b00;line-height:1.35}
#instr .tx small.note{color:var(--warn)}
#instr .tx .note{display:block;color:var(--warn);font-size:1.25rem}
#instr.mine{border-color:var(--main);background:#fff3e8;animation:instrglow 1.2s ease-in-out infinite}
@keyframes instrglow{0%,100%{box-shadow:0 0 6px 1px rgba(255,122,69,.5)}50%{box-shadow:0 0 22px 7px rgba(255,122,69,.9)}}
#hand{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;min-height:140px;padding:18px 4px 2px;align-items:flex-end}
#hand .bk{align-self:center;font-weight:bold;color:#555}
#actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;align-items:center;min-height:44px;margin-top:0}
#actions button{font-weight:bold;font-size:1.1rem}
#actions .hintbtn{background:#fff7c2;border-color:#b58900}

/* バナー（出来事の大表示） */
#banner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:20;min-width:640px;max-width:96%;background:#fffdf0;color:var(--ink);border:6px solid var(--main);border-radius:30px;padding:10px 26px 14px;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.45);cursor:pointer;animation:bannerin .35s cubic-bezier(.2,1.4,.4,1)}
@keyframes bannerin{0%{transform:translate(-50%,-50%) scale(.4);opacity:0}100%{transform:translate(-50%,-50%) scale(1);opacity:1}}
#banner .top{font-size:1.35rem;font-weight:bold}
#banner .main{display:flex;align-items:center;justify-content:center;gap:12px;margin:2px 0;flex-wrap:wrap}
#banner .bg{font-family:var(--kyo);font-weight:bold;font-size:96px;line-height:1.1;background:#fff;border:5px solid #4a4a6a;border-radius:18px;padding:0 .12em;min-width:1.3em}
#banner .bg.part{font-size:64px;border-color:var(--sub);background:#eaf4ff}
#banner .bg.res{border-color:var(--main);background:#fff3e8;color:#d6451b;animation:pop calc(.7s * var(--sp,1)) calc(.9s * var(--sp,1)) both}
#banner .bg.a1{animation:slidein calc(.5s * var(--sp,1)) both}
#banner .bg.a2{animation:slidein calc(.5s * var(--sp,1)) calc(.4s * var(--sp,1)) both}
#banner .op{font-size:2.2rem;font-weight:bold;color:var(--main)}
#banner .op.o2{animation:slidein .4s .7s both}
@keyframes slidein{0%{transform:translateY(-30px) scale(.5);opacity:0}100%{transform:none;opacity:1}}
@keyframes pop{0%{transform:scale(.2) rotate(-20deg);opacity:0}60%{transform:scale(1.3) rotate(6deg);opacity:1}100%{transform:scale(1) rotate(0);opacity:1}}
#banner .sentence{font-size:1.55rem;font-weight:bold}
#banner .sentence b{color:#d6451b}
#banner .sub{font-size:1.15rem;margin-top:2px;color:#444}
#banner .big-em{font-family:var(--emo);font-size:64px;line-height:1}
#banner .good{color:#1f9d4b;font-size:1.7rem;font-weight:bold}
#banner .bad{color:var(--warn);font-size:1.7rem;font-weight:bold}
#banner .skiphint{font-size:.8rem;color:#999;margin-top:2px}

/* 右の説明 */
#side{display:flex;flex-direction:column;gap:10px;min-width:0}
#info{background:#fff;border:5px solid var(--sub);border-radius:26px;padding:10px 16px 14px;flex:1 1 auto;min-height:360px}
#side.build #info .ig{font-size:104px}
#info .ih{font-size:1.15rem;font-weight:bold;color:#fff;background:var(--sub);border-radius:16px;padding:0 .8em;display:inline-block}
#info .ig{font-family:var(--kyo);font-size:150px;line-height:1.1;text-align:center;font-weight:bold;margin:4px 0 0}
#info .ig.pop{animation:pop .6s both}
#info .ir{font-size:1.5rem;font-weight:bold;line-height:1.6;margin-top:2px}
#info .ir .tag{display:inline-block;font-size:.95rem;background:var(--main);color:#fff;border-radius:8px;padding:0 .5em;margin-right:.3em;vertical-align:.1em}
#info .ir .tag.k{background:var(--ok)}
#info .im{font-size:1.4rem;margin-top:8px;background:#fffbe8;border-radius:14px;padding:6px 12px}
#info .imeta{font-size:1.25rem;margin-top:8px;font-weight:bold;color:#c24d1c}
#info .ipt{font-size:1.2rem;margin-top:8px;line-height:1.7}
#info .ipt span{display:block;background:#eef7ff;border-radius:12px;padding:0 .7em;margin-bottom:4px}
#info .ipt b{font-family:var(--kyo);font-size:1.6rem;margin-right:.1em}
#info .iwait{font-size:1.5rem;line-height:1.8;color:#555;margin-top:12px}
#score{background:#fff;border:4px solid var(--pink);border-radius:20px;padding:6px 14px 8px}
#score h3{margin:0 0 4px;font-size:1.1rem;color:var(--pink)}
#score .sr{display:flex;align-items:center;gap:8px;font-size:1.15rem;font-weight:bold;padding:1px 0}
#score .sr .e{font-family:var(--emo);font-size:1.6rem}
#score .sr .p{margin-left:auto;font-size:1.4rem;color:#d6451b}
#score .sr.act{background:#fff3c0;border-radius:10px}

/* 重なり表示 */
.overlay{position:fixed;inset:0;background:rgba(30,30,60,.6);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.panel{background:#fff;border:6px solid var(--sub);border-radius:30px;padding:14px 30px 20px;max-width:760px;width:100%;max-height:96vh;overflow:auto;text-align:center}
.panel h3{font-size:1.5rem;margin:.2em 0 .5em}
.opts{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.opt{background:#fff3e8;border:4px solid var(--main);border-radius:20px;padding:6px 20px}
.opt .g{font-family:var(--kyo);font-size:96px;line-height:1.1;font-weight:bold}
.opt .y{font-size:.95rem;color:#555}
.cover .nm{font-size:2.6rem;font-weight:bold;color:var(--main);margin:0}
.cover p{font-size:1.4rem}
.cover .bigem{font-size:90px;font-family:var(--emo);line-height:1.1}
.rd-g{font-family:var(--kyo);font-size:150px;font-weight:bold;line-height:1.1;margin:0}
.rd-sub{font-size:1.3rem;color:#555}
.rd-in{font:inherit;font-size:2.2rem;text-align:center;padding:.2em .4em;border:5px solid var(--sub);border-radius:18px;width:11em;margin:8px 0}
.rd-msg{min-height:1.6em;font-size:1.3rem;font-weight:bold;color:var(--warn)}
.rd-pt{font-size:1.2rem;color:#c24d1c;font-weight:bold}

/* あそびかた */
.help-panel{max-width:900px;min-height:520px;display:flex;flex-direction:column}
.help-tabs{display:flex;gap:10px;justify-content:center;margin-bottom:6px}
.help-tabs button{font-size:1.25rem;font-weight:bold;border-radius:26px;padding:.2em 1.3em}
.help-tabs button.on.easy{background:#2fae66;color:#fff;border-color:#1f9d4b}
.help-tabs button.on.hard{background:#e0457b;color:#fff;border-color:#c93a5a}
.help-step{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:330px}
.help-step .no{font-size:1.2rem;font-weight:bold;color:#fff;background:var(--sub);border-radius:20px;padding:0 1em}
.help-step .art{display:flex;align-items:center;justify-content:center;gap:12px;font-size:56px;flex-wrap:wrap;min-height:150px}
.help-step .tx{font-size:1.9rem;font-weight:bold;line-height:1.6}
.hg{display:inline-flex;align-items:center;justify-content:center;font-family:var(--kyo);font-weight:bold;font-size:84px;line-height:1.1;background:#fff;border:5px solid #4a4a6a;border-radius:18px;padding:0 .15em;min-width:1.4em;box-shadow:0 5px 0 rgba(0,0,0,.2)}
.hg.p{border-color:var(--sub);background:#eaf4ff;font-size:70px}
.hg.r{border-color:var(--main);background:#fff3e8;color:#d6451b}
.hg.s{font-size:50px}
.hg.lift{transform:translateY(-14px);border-color:var(--main)}
.hg.em{font-family:var(--emo);font-size:64px;border:none;background:none;box-shadow:none}
.hg.sp{background:#ffe9a8;border-color:#b58900;font-family:inherit;font-size:1.2rem;padding:.4em .7em;flex-direction:column;line-height:1.3}
.art .op{font-size:48px;font-weight:bold;color:var(--main);font-family:inherit}
.help-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:6px}
.help-nav .dots{display:flex;gap:8px}
.help-nav .dots i{width:14px;height:14px;border-radius:50%;background:#ccc;display:block}
.help-nav .dots i.on{background:var(--main);transform:scale(1.3)}
.help-nav button{font-size:1.3rem;font-weight:bold;min-width:130px}

/* けっか */
#screen-result{text-align:center;padding:10px 0 30px}
#screen-result h1{font-size:3.2rem;color:#e0457b;margin:.1em 0}
.win-em{font-family:var(--emo);font-size:120px;line-height:1.1;animation:bob 2s ease-in-out infinite}
.win-name{font-size:2.4rem;font-weight:bold}
table.res{margin:10px auto;border-collapse:collapse;font-size:1.4rem;background:#fff;border-radius:16px;overflow:hidden}
table.res th,table.res td{padding:.3em 1.2em;border-bottom:2px solid var(--line)}
table.res tr.win td{background:#fff3c0;font-weight:bold}
table.res .e{font-family:var(--emo)}
#screen-result h2{font-size:1.5rem;margin:.6em 0 .3em}
.learned{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:1100px;margin:0 auto}
.chip{background:#fff;border:3px solid var(--line);border-radius:14px;padding:2px 12px;font-size:1.1rem}
.chip b{font-family:var(--kyo);font-size:2rem;margin-right:.3em}

#banner .praise{font-size:1.7rem;font-weight:bold;color:#c2185b;margin:4px 0}
.speedmini{display:inline-flex;align-items:center;gap:4px;background:#fff;border:3px solid var(--line);border-radius:14px;padding:0 6px;font-size:.9rem;font-weight:bold}
.speedmini .sl{font-size:.85rem}
.speedmini button{font-size:.85rem;padding:.15em .5em;border-radius:10px;border-width:2px}
.speedmini button.on{background:var(--yellow);border-color:#b58900}

.hintsel{font-size:1.05rem;font-weight:bold}.hintsel select{font:inherit;font-size:1.1rem;padding:.1em .3em;border:3px solid var(--line);border-radius:10px}
.credit{margin:14px auto 0;max-width:760px;font-size:.8rem;color:#555;background:rgba(255,255,255,.6);border-radius:10px;padding:2px 12px}.credit summary{cursor:pointer}.credit p{margin:2px 0}

/* 上の帯を 1 行におさめる（2026-11-03）。遊ぶ画面の高さ合わせは game.js の fit */
#topbar{flex-wrap:nowrap}
#mode-label{white-space:nowrap;font-size:.9rem;min-width:0;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto}
#turnpill{font-size:1.3rem;line-height:1.25;padding-top:.05em;padding-bottom:.05em}
.topbtns{flex:0 0 auto;white-space:nowrap}
.topbtns button,.speedmini{white-space:nowrap}
#topbar{height:46px;padding-top:4px;box-sizing:border-box}
#table{margin-top:10px}
#seat-top .seat .arrow{top:auto;bottom:-16px}

/* ---- 英語の補足（EN の印と吹き出し）---- */
[data-en]:not(.enq):not(.help-btn):not(.hc){position:relative}
.help-btn.static[data-en]{position:relative}
[data-en]:not(.enq)::after{content:"EN";position:absolute;top:2px;right:2px;font:700 9px/1 sans-serif;color:#fff;background:rgba(40,60,120,.5);border-radius:8px;padding:2px 4px;pointer-events:none;z-index:2;letter-spacing:0}
.modebtn[data-en]::after{top:16px;right:20px;font-size:12px;padding:3px 6px}
.help-btn[data-en]::after{top:-4px;right:-2px}
.hc[data-en]::after{top:-6px;right:-6px}
#pile[data-en]::after{top:-4px;right:-18px}
.cap[data-en]::after,.tgrid[data-en]::after,.iwait[data-en]::after{top:-4px;right:-14px}
.tgrid[data-en]{margin-top:6px}
.enq{display:inline-block;vertical-align:middle;font:700 9px/1 sans-serif;color:#fff;background:rgba(40,60,120,.5);border-radius:8px;padding:2px 4px;margin-left:4px;cursor:help}
.enline{margin:2px 0 0;font-size:.78rem;color:#667;text-align:center;opacity:.85}
#entip{position:fixed;z-index:200;max-width:300px;background:#1f2a4a;color:#fff;font:500 13px/1.45 sans-serif;padding:7px 10px;border-radius:9px;box-shadow:0 4px 14px rgba(0,0,0,.4);pointer-events:none;text-align:left;white-space:normal}
#entip.hidden{display:none}
.tag[data-en]::after{top:-6px;right:-10px}

.publinks{margin:6px 0 0;font-size:.85rem;text-align:center}.publinks a{color:#0b61a4}
