/* ねじまき防衛線 — 画面の表示 */
.g3d-canvas{touch-action:none}
.td-hud{position:absolute;inset:0;pointer-events:none;--brass:#f0b45a;--panel:rgba(13,16,21,.8);--line:rgba(255,236,200,.16);font-feature-settings:"palt"}
.td-hud button{pointer-events:auto;font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}
.td-hud kbd{display:inline-block;min-width:1.5em;padding:0 .35em;border-radius:5px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);font:700 10.5px/1.6 ui-monospace,Consolas,monospace;text-align:center;opacity:.85}
.td-gear{display:inline-block;width:.95em;height:.95em;vertical-align:-.12em;margin-right:.18em;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f0b45a' d='M10.3 1.6h3.4l.5 2.6a8 8 0 0 1 2 .9l2.2-1.5 2.4 2.4-1.5 2.2c.4.6.7 1.3.9 2l2.6.5v3.4l-2.6.5a8 8 0 0 1-.9 2l1.5 2.2-2.4 2.4-2.2-1.5a8 8 0 0 1-2 .9l-.5 2.6h-3.4l-.5-2.6a8 8 0 0 1-2-.9l-2.2 1.5-2.4-2.4 1.5-2.2a8 8 0 0 1-.9-2l-2.6-.5v-3.4l2.6-.5c.2-.7.5-1.4.9-2L3.6 6l2.4-2.4 2.2 1.5c.6-.4 1.3-.7 2-.9zM12 8.4a3.6 3.6 0 1 0 0 7.2 3.6 3.6 0 0 0 0-7.2z'/%3E%3C/svg%3E")}
.td-star{display:inline-block;width:1em;height:1em;vertical-align:-.14em;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' fill-opacity='.22' d='M12 2l2.9 6.6 7.1.6-5.4 4.7 1.6 7L12 17.3 5.8 21l1.6-7L2 9.2l7.1-.6z'/%3E%3C/svg%3E")}
.td-star.on{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffd166' d='M12 2l2.9 6.6 7.1.6-5.4 4.7 1.6 7L12 17.3 5.8 21l1.6-7L2 9.2l7.1-.6z'/%3E%3C/svg%3E")}

/* 字幕は塔のバーより上に */
.g3d .g3d-subtitle{bottom:calc(134px + env(safe-area-inset-bottom))}
/* 縦長の画面（情報パネルが塔のバーの上に出る配置。スマホ縦・タブレット縦）：字幕は下の欄と案内の上に、お知らせは上の欄と案内の下に（2026-10-05） */
.g3d[data-td-layout="narrow"] .g3d-subtitle{bottom:calc(var(--td-sub-b,96px) + 8px)}
.g3d[data-td-layout="narrow"] .g3d-toast{top:calc(var(--td-toast-t,200px) + 8px)}
/* ボスの耐久を出している間は、お知らせをその下へ（横長・低い横画面。縦長は上の --td-toast-t に含めて測る） */
.g3d.td-bossbar:not([data-td-layout="narrow"]) .g3d-toast{top:calc(var(--td-boss-b,116px) + 8px)}
/* 横長の画面では、右の欄（次のウェーブ・塔の情報。幅300px）の下に字幕がもぐらないよう幅を抑える（2026-10-05） */
@media (min-width:900px) and (min-height:520px){.g3d .g3d-subtitle{max-width:max(260px,min(760px,calc(100vw - 660px)))}}

/* 上：耐久・歯車・ウェーブ */
.td-top{position:absolute;top:calc(62px + env(safe-area-inset-top));left:calc(14px + env(safe-area-inset-left));display:flex;gap:8px;align-items:flex-start}
.td-res{display:flex;gap:6px}
.td-res__item{display:flex;align-items:center;gap:6px;padding:6px 12px 6px 8px;border-radius:999px;background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 6px 18px -8px rgba(0,0,0,.6)}
.td-res__item b{font-size:19px;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.td-res__item small{font-size:12px;opacity:.6;font-weight:700;margin-left:-3px}
.td-ico{width:24px;height:24px;border-radius:50%;flex:none;background:no-repeat center/62%}
.td-ico--life{background-color:#5b2a1f;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffcf7a' d='M12 2c1 3 4 4.5 4 8.5a4 4 0 0 1-8 0c0-1.6.7-2.7 1.6-3.7.3 1.4 1 2.2 2 2.4-.6-2.6-.2-5 .4-7.2zM9 16h6v2.2a1.8 1.8 0 0 1-1.8 1.8h-2.4A1.8 1.8 0 0 1 9 18.2z'/%3E%3C/svg%3E")}
.td-ico--gear{background-color:#4a3a1c;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f0b45a' d='M10.3 1.6h3.4l.5 2.6a8 8 0 0 1 2 .9l2.2-1.5 2.4 2.4-1.5 2.2c.4.6.7 1.3.9 2l2.6.5v3.4l-2.6.5a8 8 0 0 1-.9 2l1.5 2.2-2.4 2.4-2.2-1.5a8 8 0 0 1-2 .9l-.5 2.6h-3.4l-.5-2.6a8 8 0 0 1-2-.9l-2.2 1.5-2.4-2.4 1.5-2.2a8 8 0 0 1-.9-2l-2.6-.5v-3.4l2.6-.5c.2-.7.5-1.4.9-2L3.6 6l2.4-2.4 2.2 1.5c.6-.4 1.3-.7 2-.9zM12 8.4a3.6 3.6 0 1 0 0 7.2 3.6 3.6 0 0 0 0-7.2z'/%3E%3C/svg%3E")}
.td-ico--wave{background-color:#23384a;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%239fd8ff' stroke-width='2.4' stroke-linecap='round' d='M3 9c3-3 6 3 9 0s6 3 9 0M3 15c3-3 6 3 9 0s6 3 9 0'/%3E%3C/svg%3E")}
.td-res__life.is-hit{animation:td-hit .5s ease}
.td-res__life.is-low b{color:#ff8a6a}
.td-res__gears.is-up b{animation:td-up .35s ease}
@keyframes td-hit{0%,100%{transform:none}25%{transform:translateX(-4px);background:rgba(160,40,30,.85)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}
@keyframes td-up{0%{color:#fff}40%{color:#ffd27a;transform:scale(1.15)}100%{transform:none}}

/* ボスの耐久 */
.td-boss{position:fixed;left:50%;top:calc(62px + env(safe-area-inset-top));transform:translateX(-50%);width:min(440px,46vw);padding:6px 12px 8px;border-radius:12px;background:rgba(40,12,10,.72);border:1px solid rgba(255,150,110,.3);text-align:center}
.td-boss__name{font-weight:900;font-size:13px;letter-spacing:.12em;color:#ffd0b0}
.td-boss__bar{height:8px;margin-top:4px;border-radius:5px;background:rgba(0,0,0,.5);overflow:hidden}
.td-boss__bar i{display:block;height:100%;background:linear-gradient(90deg,#ff6a3d,#ffb347);transition:width .2s}
.td-boss__phase{display:block;font-size:11px;opacity:.75;margin-top:2px}

/* 右上：次のウェーブ・倍速 */
.td-side{position:absolute;top:calc(62px + env(safe-area-inset-top));right:calc(14px + env(safe-area-inset-right));display:flex;flex-direction:column;align-items:stretch;gap:8px;width:236px}
.td-wave{padding:10px 12px 12px;border-radius:16px;background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 10px 30px -14px rgba(0,0,0,.7)}
.td-wave__head{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;font-weight:800;letter-spacing:.08em;opacity:.9}
.td-wave__head b{font-size:15px;font-variant-numeric:tabular-nums;color:var(--brass)}
.td-wave__list{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0 6px;min-height:34px}
.td-chip{display:flex;align-items:center;gap:1px;padding:1px 6px 1px 1px;border-radius:9px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08)}
.td-chip img{width:30px;height:30px;object-fit:contain}
.td-chip b{font-size:12px;font-variant-numeric:tabular-nums}
.td-chip.is-boss{background:rgba(180,60,40,.35);border-color:rgba(255,140,100,.5)}
.td-chip.is-fly{background:rgba(140,100,200,.25);border-color:rgba(200,160,255,.35)}
.td-chip--none{padding:6px 10px;opacity:.5}
.td-wave__bar{height:4px;border-radius:3px;background:rgba(255,255,255,.12);overflow:hidden;margin-bottom:8px}
.td-wave__bar i{display:block;height:100%;background:#9fd8ff}
.td-call{display:flex;flex-wrap:wrap;row-gap:0;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;padding:8px 10px;border-radius:12px;border:1px solid rgba(255,210,140,.45);background:linear-gradient(180deg,rgba(240,180,90,.35),rgba(200,120,40,.3));font-weight:900;font-size:14px;letter-spacing:.06em;cursor:pointer}
.td-call:hover:not(:disabled){background:linear-gradient(180deg,rgba(250,195,110,.5),rgba(210,130,50,.42))}
.td-call:disabled{opacity:.4;cursor:default}
.td-call__bonus{font-weight:900;color:#ffe08a;font-size:12.5px}
.td-call__bonus:not(:empty){flex-basis:100%;text-align:center;line-height:1.3}
.td-call__bonus:not(:empty)::before{content:"早呼びボーナス ";font-weight:700;opacity:.8}
.td-call.is-ready{animation:td-glow 1.6s ease-in-out infinite}
@keyframes td-glow{50%{box-shadow:0 0 0 3px rgba(255,200,120,.35),0 0 22px rgba(255,180,90,.45)}}
.td-speed{display:flex;gap:4px;padding:4px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.td-speed button{flex:1;min-height:36px;border:0;border-radius:9px;background:transparent;font-weight:900;font-size:14px;cursor:pointer;opacity:.7}
.td-speed button[aria-pressed="true"]{background:rgba(240,180,90,.32);opacity:1;color:#ffe3b0}

/* 下：情報パネルと塔のバー */
.td-bottom{position:absolute;left:50%;bottom:calc(10px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(880px,calc(100% - 24px));display:flex;flex-direction:column;align-items:center;gap:8px}
.td-bar{display:flex;gap:6px;justify-content:center;padding:6px;border-radius:18px;background:rgba(10,12,16,.62);border:1px solid var(--line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:auto;max-width:100%}
.td-card{position:relative;display:flex;flex-direction:column;align-items:center;width:86px;padding:4px 2px 6px;border-radius:13px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.05);cursor:pointer;transition:transform .12s,background .15s,border-color .15s}
.td-card img{width:54px;height:54px;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(0,0,0,.5));pointer-events:none}
.td-card kbd{position:absolute;top:4px;left:5px;font-size:10px;padding:0 .3em}
.td-card__n{font-size:11.5px;font-weight:800;white-space:nowrap;letter-spacing:.02em}
.td-card__c{font-size:12px;font-weight:800;color:#ffe0a0;white-space:nowrap}
.td-card:hover:not(:disabled){background:rgba(255,255,255,.12);transform:translateY(-2px)}
.td-card.is-armed{border-color:#ffd27a;background:rgba(240,180,90,.25);box-shadow:0 0 0 2px rgba(255,210,120,.4)}
.td-card.is-poor .td-card__c{color:#ff8a7a}
.td-card.is-poor img{opacity:.55}
.td-card:disabled{opacity:.35;cursor:default}
.td-card:disabled .td-card__c{color:#ccc;font-size:10.5px}
.td-panel{width:min(560px,100%);max-height:46vh;overflow:auto;overscroll-behavior:contain;padding:12px 14px;border-radius:18px;background:rgba(13,16,21,.86);border:1px solid var(--line);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:auto;box-shadow:0 18px 40px -16px rgba(0,0,0,.8);animation:td-in .18s ease}
@keyframes td-in{from{opacity:0;transform:translateY(8px)}}
.td-pn__head{display:flex;align-items:center;gap:10px}
.td-pn__head img{width:48px;height:48px;object-fit:contain;flex:none}
.td-pn__head>div{flex:1;min-width:0}
.td-pn__name{margin:0;font-size:16px;font-weight:900;letter-spacing:.04em}
.td-pn__role{margin:2px 0 0;font-size:12px;opacity:.8;line-height:1.5}
.td-pn__desc{margin:8px 0 0;font-size:12.5px;opacity:.85;line-height:1.6}
.td-lv{margin-left:6px;font-size:12px;color:var(--brass);letter-spacing:.1em}
.td-lv--b{padding:1px 8px;border-radius:999px;background:rgba(240,180,90,.22);letter-spacing:.04em}
.td-lv--role{padding:1px 8px;border-radius:999px;background:rgba(255,255,255,.1);color:#fff;letter-spacing:.02em}
.td-x{width:36px;height:36px;flex:none;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);font-size:20px;line-height:1;cursor:pointer}
.td-pn__stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:4px 8px;margin:10px 0 2px}
.td-st{display:flex;align-items:baseline;gap:6px;padding:4px 8px;border-radius:8px;background:rgba(255,255,255,.05);font-size:12px}
.td-st span{opacity:.7}.td-st b{font-variant-numeric:tabular-nums}.td-st em{font-style:normal;color:#9dff9a;font-weight:800;font-size:11.5px}
.td-tgt{display:flex;gap:4px;margin-top:8px;padding:3px;border-radius:10px;background:rgba(0,0,0,.25)}
.td-tgt button{flex:1;min-height:34px;border:0;border-radius:8px;background:transparent;font-size:12.5px;font-weight:800;cursor:pointer;opacity:.7}
.td-tgt button[aria-pressed="true"]{background:rgba(159,216,255,.22);opacity:1;color:#d8f0ff}
.td-pn__act{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.td-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);font-weight:800;font-size:13.5px;cursor:pointer}
.td-btn:hover:not(:disabled){background:rgba(255,255,255,.14)}
.td-btn:disabled{opacity:.4;cursor:default}
.td-btn--p{flex:1;border-color:rgba(255,210,140,.5);background:linear-gradient(180deg,rgba(240,180,90,.38),rgba(200,120,40,.3))}
.td-btn--sell{margin-left:auto;font-size:12.5px;opacity:.9}
.td-btn--s{min-height:38px;padding:6px 12px;font-size:12.5px}
.td-branch{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
.td-btn--br{flex-direction:column;align-items:flex-start;text-align:left;gap:2px;padding:8px 10px;border-color:rgba(255,210,140,.4);background:rgba(240,180,90,.12)}
.td-br__n{font-size:14px;color:#ffe0a0}.td-br__d{font-size:11.5px;font-weight:600;opacity:.85;line-height:1.5}.td-br__c{font-size:12.5px;margin-top:2px}
.td-max{margin:0;flex:1;font-size:12.5px;opacity:.75;align-self:center}
.td-warn{margin:8px 0 0;font-size:12px;color:#ffb09a}
.td-buffed{margin:6px 0 0;font-size:12px;color:#ffd88a}
.td-tag{display:inline-block;margin:0 4px 2px 0;padding:0 7px;border-radius:999px;background:rgba(255,255,255,.1);font-size:11px;font-weight:800}
.td-hpbar{position:relative;height:16px;margin-top:10px;border-radius:8px;background:rgba(0,0,0,.45);overflow:hidden}
.td-hpbar i{display:block;height:100%;background:linear-gradient(90deg,#ff6a4a,#9dff7a)}
.td-hpbar span{position:absolute;inset:0;display:grid;place-items:center;font-size:11px;font-weight:800;text-shadow:0 1px 2px #000}

/* 横長の画面：右の列にパネル */
.td-hud[data-layout="wide"] .td-side{width:300px}
.td-hud[data-layout="wide"] .td-side .td-panel{width:100%;max-height:calc(100vh - 330px);min-height:0}
.td-hud[data-layout="wide"] .td-pn__stats{grid-template-columns:1fr 1fr}
.td-hud[data-layout="wide"] .td-branch{grid-template-columns:1fr}
/* 右の列の情報パネルが画面に収まらないとき：仕上げの2択を横に並べて詰める。まだ足りなければ面の仕掛けの札をしまう（2026-10-05） */
.td-hud[data-layout="wide"] .td-panel.is-tight{padding:10px 12px}
.td-hud[data-layout="wide"] .td-panel.is-tight .td-branch{grid-template-columns:1fr 1fr;gap:6px}
.td-hud[data-layout="wide"] .td-panel.is-tight .td-btn--br{padding:6px 8px}
.td-hud[data-layout="wide"] .td-panel.is-tight .td-br__d{font-size:11px;line-height:1.4}
.td-hud[data-layout="wide"].gim-tuck .td-gim{display:none}

/* 案内 */
.td-coach{position:absolute;left:50%;top:calc(120px + env(safe-area-inset-top));transform:translateX(-50%);width:min(500px,calc(100% - 660px));min-width:260px;padding:12px 14px;border-radius:16px;background:rgba(18,22,30,.9);border:1px solid rgba(255,210,140,.5);box-shadow:0 14px 40px -10px rgba(0,0,0,.8),0 0 0 4px rgba(240,180,90,.12);pointer-events:auto;animation:td-in .25s ease}
/* 案内は、からくりの歯車の数字（浮かぶ表示）より上に。お知らせは画面の欄にもぐらないよう、いちばん上に（2026-10-05） */
.td-coach{z-index:3}
.g3d .g3d-toast{z-index:5}
.td-coach__t{margin:0;font-size:14px;line-height:1.75}
.td-coach__t b{color:#ffd88a}
.td-coach__b{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.td-btn--p.td-btn--s{flex:none}
.td-hl{position:relative;z-index:2;animation:td-hl 1.1s ease-in-out infinite!important}
@keyframes td-hl{50%{box-shadow:0 0 0 3px #ffd27a,0 0 26px rgba(255,200,110,.8)}}

/* 浮かぶ数字 */
.td-floats{position:absolute;inset:0;overflow:hidden}
.td-float{position:absolute;transform:translate(-50%,-50%);font-weight:900;font-size:15px;text-shadow:0 1px 3px rgba(0,0,0,.9),0 0 8px rgba(0,0,0,.5);white-space:nowrap;opacity:0;animation:td-float 1.05s ease-out both}
.td-float.is-gear{color:#ffe08a}.td-float.is-hurt{color:#ff7a5a;font-size:22px}.td-float.is-spend{color:#ffd0a0}
@keyframes td-float{0%{opacity:0;transform:translate(-50%,-30%) scale(.8)}15%{opacity:1;transform:translate(-50%,-60%) scale(1.05)}100%{opacity:0;transform:translate(-50%,-190%)}}

/* タイトル：面の選択 */
.td-stages{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:620px;margin:0 auto}
.td-stage{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 8px 9px;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:rgba(14,17,22,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#f4f1ea;font:inherit;cursor:pointer;transition:background .15s,border-color .15s}
.td-stage:hover:not(:disabled){background:rgba(30,34,42,.7)}
.td-stage.is-on{border-color:var(--accent);background:rgba(240,180,90,.22);box-shadow:0 0 0 2px rgba(240,180,90,.35)}
/* まだ遊べない面：札ごと薄くすると後ろの町が透けて文字が読めないので、地は濃いまま文字だけ控えめに（2026-10-05） */
.td-stage:disabled{cursor:default;background:rgba(10,12,16,.74);border-color:rgba(255,255,255,.1);color:rgba(244,241,234,.62)}
.td-stage:disabled .td-stage__s{opacity:1;color:rgba(244,241,234,.78)}
.td-stage__no{font-size:11px;font-weight:900;letter-spacing:.2em;opacity:.7}
.td-stage__n{font-size:14px;font-weight:900;letter-spacing:.04em}
.td-stage__s{font-size:11px;opacity:.85;min-height:16px}
.td-stage__s .td-star{width:15px;height:15px}
.td-tline{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px 16px;margin-top:10px}
.td-hard{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;cursor:pointer;padding:6px 12px;border-radius:10px;background:rgba(14,17,22,.5)}
.td-hard input{width:18px;height:18px;accent-color:#f0b45a}
.td-hard.is-locked{opacity:.6;cursor:default}
.g3d-title__extra .td-btn{color:#f4f1ea;font-family:inherit}

/* 星の工房 */
.td-shop{position:absolute;inset:0;z-index:35;display:grid;place-items:center;padding:calc(64px + env(safe-area-inset-top)) 14px 18px;overflow:auto;overscroll-behavior:contain;background:rgba(5,7,10,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.td-shop__p{width:min(620px,100%)}
.td-shop__lead{margin:0 0 12px;font-size:13.5px;line-height:1.7;opacity:.9}
.td-perks{display:grid;gap:6px}
.td-perk{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.td-perk>div{flex:1;display:flex;flex-direction:column}
.td-perk b{font-size:14px}.td-perk span{font-size:12px;opacity:.8}
.td-perk.is-own{border-color:rgba(255,210,120,.4);background:rgba(240,180,90,.12)}
.td-perk .td-btn{min-width:118px;color:#f4f1ea}

/* スマホ縦 */
@media (max-width:640px){
  .td-top{top:calc(56px + env(safe-area-inset-top));left:8px;right:8px}
  .td-res{gap:4px}
  .td-res__item{padding:4px 9px 4px 5px;gap:4px}
  .td-res__item b{font-size:16px}
  .td-ico{width:20px;height:20px}
  .td-side{top:calc(98px + env(safe-area-inset-top));left:8px;right:8px;width:auto;flex-direction:row;align-items:stretch}
  .td-wave{flex:1;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto;column-gap:8px;padding:7px 9px}
  .td-wave__head{grid-column:1/2}
  .td-wave__list{grid-column:1/2;margin:4px 0 2px;min-height:30px}
  .td-wave__bar{grid-column:1/3;margin:4px 0 0}
  .td-call{grid-column:2/3;grid-row:1/3;width:112px;flex-direction:column;gap:0;font-size:13px;padding:4px 6px}
  .td-wave{grid-template-columns:minmax(0,1fr) 112px}
  .td-wave__head{white-space:nowrap;gap:6px}
  .td-call{flex-wrap:nowrap}
  .td-call__bonus:not(:empty){flex-basis:auto;font-size:11.5px;white-space:nowrap}
  .td-call__bonus:not(:empty)::before{content:"早呼び "}
  .td-br__d{font-size:11px}
  .td-btn--br{padding:6px 8px}
  .td-chip img{width:24px;height:24px}
  .td-speed{flex-direction:column;padding:3px;gap:3px}
  .td-speed button{min-height:30px;min-width:40px;font-size:12.5px}
  /* ボスの耐久は「次のウェーブ」の欄の下に（欄の下の端と重なっていた） */
  .td-boss{top:calc(var(--td-side-b,186px) + 6px);width:calc(100% - 16px)}
  .td-bottom{width:calc(100% - 12px);bottom:calc(6px + env(safe-area-inset-bottom));gap:6px}
  .td-bar{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;padding:4px;width:100%;border-radius:14px}
  .td-card{width:auto;padding:3px 0 4px;border-radius:10px}
  .td-card img{width:40px;height:40px}
  .td-card__n{display:none}
  .td-card__c{font-size:11px}
  .td-panel{max-height:40vh;padding:10px 11px}
  .td-coach{top:auto;bottom:calc(var(--td-bar-h,84px) + 10px + env(safe-area-inset-bottom));width:calc(100% - 16px);min-width:0}
  .td-hud.has-panel .td-coach{bottom:auto;top:calc(var(--td-side-b,196px) + 8px)}
  /* 字幕は下の欄（情報パネルを開いたときはその上）より上に。お知らせは上の欄（次のウェーブ）の下に（2026-10-05） */
  .g3d .g3d-subtitle{font-size:13px}
  .td-stages{gap:5px}
  .td-stage{padding:8px 4px}
  .td-stage__n{font-size:12.5px}
  .td-perk .td-btn{min-width:96px}
}
/* スマホ横（高さが低い） */
@media (max-height:480px) and (orientation:landscape){
  .td-top{top:calc(50px + env(safe-area-inset-top))}
  .td-res__item{padding:3px 9px 3px 5px}
  .td-res__item b{font-size:15px}
  .td-ico{width:20px;height:20px}
  .td-side{top:calc(50px + env(safe-area-inset-top));width:212px;gap:5px}
  .td-wave{padding:6px 9px 8px}
  .td-wave__list{margin:4px 0 4px;min-height:26px}
  .td-chip img{width:22px;height:22px}
  .td-call{min-height:36px;font-size:13px;padding:4px 8px}
  .td-speed button{min-height:30px}
  .td-boss{top:calc(48px + env(safe-area-inset-top));width:min(300px,34vw)}
  .td-bottom{left:calc(10px + env(safe-area-inset-left));transform:none;width:auto;align-items:flex-start;bottom:calc(6px + env(safe-area-inset-bottom))}
  .td-bar{gap:4px;padding:4px}
  .td-card{width:62px;padding:2px 0 4px}
  .td-card img{width:36px;height:36px}
  .td-card__n{display:none}
  .td-hud>.td-panel{position:absolute;right:calc(10px + env(safe-area-inset-right));top:calc(50px + env(safe-area-inset-top));bottom:calc(8px + env(safe-area-inset-bottom));width:min(320px,40vw);max-height:none;padding:9px 10px}
  .td-hud.has-panel .td-side{display:none}
  .td-pn__stats{grid-template-columns:1fr 1fr}
  .td-branch{grid-template-columns:1fr}
  .td-coach{top:auto;bottom:calc(10px + env(safe-area-inset-bottom));left:auto;right:calc(10px + env(safe-area-inset-right));transform:none;width:min(330px,40vw);min-width:0;padding:9px 11px}
  .td-coach__t{font-size:12.5px;line-height:1.6}
  /* 情報パネル（右）を開いている間は、案内を左下（塔のバーの上）へ。右下のままだとパネルの「ここに建てる」「やめる」を覆って押せなかった（2026-10-05） */
  .td-hud.has-panel .td-coach{right:auto;left:calc(10px + env(safe-area-inset-left));bottom:calc(var(--td-low,72px) + 8px);width:min(330px,calc(100vw - 370px))}
  /* 字幕は左側（塔のバーや案内の上）に。中央に置くと右の欄・情報パネルの下にもぐった */
  .g3d .g3d-subtitle{left:calc(10px + env(safe-area-inset-left));transform:none;bottom:calc(var(--td-sub-b,72px) + 8px);max-width:calc(100vw - 370px - env(safe-area-inset-left));font-size:13px;line-height:1.5;padding:6px 12px;text-align:left}
  /* お知らせは上の、耐久・歯車と右の欄（または情報パネル）の間に。中央や左下に出すと、情報パネルや字幕・案内と重なった（2026-10-05） */
  .g3d .g3d-toast{left:var(--td-gap-l,272px);right:var(--td-gap-r,342px);top:calc(52px + env(safe-area-inset-top));width:fit-content;max-width:none;margin:0 auto;transform:none;white-space:normal;text-align:center;padding:5px 12px;font-size:12.5px;line-height:1.5}
  .g3d .g3d-toast.is-in{animation:td-toast-s .3s ease both}
  .td-stage{padding:6px 4px}
  .td-tline{margin-top:6px}
}
@media (prefers-reduced-motion:reduce){.td-call.is-ready,.td-hl{animation:none!important}.td-res__life.is-hit{animation:none}}
/* キー操作のヒントは左下へ（右の列は情報パネルが使う）。塔のバーの上に出す（4面以降はバーが左へ寄り、ヒントの下半分がバーに隠れていた） */
.g3d .g3d-keyhints{right:auto;left:calc(14px + env(safe-area-inset-left));bottom:calc(var(--td-low,130px) + 10px);align-items:flex-start}

/* ---- 4面以降：塔が増えたときのバー ---- */
.td-card.is-new::after{content:"";position:absolute;top:5px;right:6px;width:6px;height:6px;border-radius:50%;background:#9fe0ff;box-shadow:0 0 6px #9fe0ff}
.td-hud.is-many .td-bottom{width:min(980px,calc(100% - 24px))}
.td-hud.is-many .td-bar{gap:5px}
.td-hud.is-many .td-card{width:70px;padding:3px 1px 5px}
.td-hud.is-many .td-card img{width:46px;height:46px}
.td-hud.is-many .td-card__n{font-size:10.5px;letter-spacing:0}
.td-hud.is-many .td-card__c{font-size:11.5px}
/* 横長の画面では、右の列（情報パネル）と重ならないよう左寄りの中央に */
.td-hud.is-many[data-layout="wide"] .td-bottom{left:calc((100% - 330px) / 2);width:min(860px,calc(100% - 360px))}

/* ---- 面の仕掛けの札 ---- */
.td-gim{padding:8px 10px 9px;border-radius:14px;background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);pointer-events:auto;box-shadow:0 10px 30px -14px rgba(0,0,0,.7)}
.td-gim__head{display:flex;align-items:center;gap:7px}
.td-gim__name{font-size:13px;font-weight:900;letter-spacing:.06em}
.td-gim__ico{width:22px;height:22px;flex:none;border-radius:50%;background:#3a4656 no-repeat center/64%}
.td-gim__ico--big{width:40px;height:40px}
.td-gim[data-type="barricade"] .td-gim__ico,.td-gim__ico[data-type="barricade"]{background-color:#4a3a2a;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffe0b0' d='M4 6h2v14H4zm7-2h2v16h-2zm7 2h2v14h-2zM3 9h18v2H3zm0 5h18v2H3z'/%3E%3C/svg%3E")}
.td-gim[data-type="tide"] .td-gim__ico,.td-gim__ico[data-type="tide"]{background-color:#23405a;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%239fd8ff' stroke-width='2.2' stroke-linecap='round' d='M3 8c3-3 6 3 9 0s6 3 9 0M3 13c3-3 6 3 9 0s6 3 9 0M3 18c3-3 6 3 9 0s6 3 9 0'/%3E%3C/svg%3E")}
.td-gim[data-type="gate"] .td-gim__ico,.td-gim__ico[data-type="gate"]{background-color:#4a2a24;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffc890' d='M3 20V9l9-5 9 5v11h-3v-8H6v8zm5-6h3v6H8zm5 0h3v6h-3z'/%3E%3C/svg%3E")}
.td-gim__bar{height:5px;margin:7px 0 5px;border-radius:3px;background:rgba(255,255,255,.12);overflow:hidden}
.td-gim__bar i{display:block;height:100%;background:linear-gradient(90deg,#9fd8ff,#e8f6ff);transition:width .2s}
.td-gim[data-type="barricade"] .td-gim__bar i{background:linear-gradient(90deg,#ff8a5a,#ffd88a)}
.td-gim[data-type="gate"] .td-gim__bar i{background:linear-gradient(90deg,#ffb060,#ffe0a0)}
.td-gim__s{margin:0;font-size:12px;line-height:1.5;opacity:.9}
.td-gim.is-warn .td-gim__s{color:#ffc09a}
.td-gim.is-warn[data-type="tide"] .td-gim__s{color:#bfe8ff}
.td-gim__btn{width:100%;margin-top:7px;min-height:38px}
.td-gim__btn[hidden]{display:none}
.td-gim__btn kbd{margin-left:4px}

/* ---- タイトル：解放の予告と遊び方 ---- */
.td-stages{grid-template-columns:repeat(3,1fr)}
.td-stage.is-new .td-stage__no{color:#9fe0ff}
.td-stage__s small{font-size:10.5px;opacity:.9}
.td-next{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 8px;max-width:620px;margin:8px auto 0;padding:6px 12px;border-radius:12px;background:rgba(14,17,22,.55);font-size:12.5px;line-height:1.5}
.td-next__k{padding:1px 8px;border-radius:999px;background:rgba(159,224,255,.18);color:#bfeaff;font-size:11px;font-weight:900;letter-spacing:.08em}
.td-next img{width:28px;height:28px;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.6))}
.td-mode{display:inline-flex;gap:3px;padding:3px;border-radius:12px;background:rgba(14,17,22,.6);border:1px solid rgba(255,255,255,.12)}
.td-mode button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:38px;padding:4px 12px;border:0;border-radius:9px;background:transparent;color:#f4f1ea;font:inherit;font-size:12.5px;font-weight:800;cursor:pointer;opacity:.75}
.td-mode button[aria-checked="true"]{background:rgba(240,180,90,.32);opacity:1;color:#ffe3b0}
.td-mode button:disabled{opacity:.58;cursor:default}
.td-mode button small{font-size:10px;font-weight:700;opacity:.9}
.td-mode__note{margin:6px auto 0;max-width:560px;text-align:center;font-size:12px;opacity:.8}
.td-perk.is-lock{opacity:.6}

/* スマホ縦：塔が多いときは2段 */
@media (max-width:640px){
  .td-hud.is-many .td-bar{grid-template-columns:repeat(6,1fr);gap:3px}
  .td-hud.is-many .td-card{width:auto;padding:2px 0 3px}
  .td-hud.is-many .td-card img{width:34px;height:34px}
  .td-hud.is-many .td-card__n{display:none}
  .td-hud.is-many .td-coach{bottom:calc(var(--td-bar-h,84px) + 64px + env(safe-area-inset-bottom))}
  .td-gim{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:8px;padding:5px 8px;width:100%}
  .td-gim[hidden]{display:none}
  .td-gim__head{grid-row:1/3}
  .td-gim__name{display:none}
  .td-gim__bar{grid-column:2;margin:2px 0 3px}
  .td-gim__s{grid-column:2;grid-row:1;font-size:11.5px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .td-gim__btn{grid-column:3;grid-row:1/3;width:auto;margin:0;min-height:34px;padding:4px 10px}
  .td-hud.has-panel .td-gim{display:none}
  .td-next{font-size:11.5px;padding:5px 8px}
  .td-mode button{padding:4px 8px;font-size:12px}
}
/* スマホ横：塔が多いときは左下に2段 */
@media (max-height:480px) and (orientation:landscape){
  .td-hud.is-many .td-bar{display:grid;grid-template-columns:repeat(6,48px);gap:3px;padding:4px}
  .td-hud.is-many .td-card{width:48px;padding:2px 0 3px}
  .td-hud.is-many .td-card img{width:30px;height:30px}
  .td-hud.is-many .td-card__c{font-size:10.5px}
  .td-gim{padding:5px 8px 6px}
  .td-gim__s{font-size:11px}
  .td-gim__bar{margin:4px 0 3px}
  .td-gim__btn{min-height:32px;margin-top:4px}
  .td-next{margin-top:5px;padding:3px 8px;font-size:11px}
  .td-next img{width:22px;height:22px}
  .td-mode button{min-height:32px;padding:2px 8px}
  .td-mode__note{display:none}
}
/* スマホ横のタイトル：6つの面を1列に */
@media (max-height:480px) and (orientation:landscape){
  .td-stages{grid-template-columns:repeat(6,1fr);max-width:880px;gap:4px}
  .td-stage{padding:4px 2px 5px;border-radius:10px;gap:1px}
  .td-stage__no{font-size:10px;letter-spacing:.1em}
  .td-stage__n{font-size:11px;letter-spacing:0;white-space:nowrap}
  .td-stage__s{font-size:9.5px;min-height:13px}
  .td-stage__s .td-star{width:12px;height:12px}
  .td-next{max-width:880px;white-space:nowrap;overflow:hidden}
  .g3d-title__extra:not(:empty){margin-top:10px}
}
/* 選んだ面のカード：雪の明るい背景でも文字が読めるよう、暗い下地に色を重ねる */
.td-stage.is-on{background:linear-gradient(rgba(240,180,90,.3),rgba(240,180,90,.3)),rgba(14,17,22,.72)}

/* ---- 塔の説明（カードに乗せる・長押し・配置モードの間） ---- */
.td-card{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.td-card.is-lock{opacity:.4;cursor:help}
.td-card.is-lock .td-card__c{color:#ccc;font-size:10.5px}
.td-tip{position:absolute;z-index:6;width:330px;max-width:calc(100% - 16px);overflow:auto;padding:10px 12px 11px;border-radius:14px;background:rgba(13,16,21,.93);border:1px solid rgba(255,210,140,.38);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 18px 40px -14px rgba(0,0,0,.85);pointer-events:none;font-size:12px;line-height:1.5;animation:td-in .12s ease}
.td-tip button{pointer-events:auto}
.td-tip p{margin:5px 0 0}
.td-tip b{font-weight:900;margin-right:6px}
.td-tip__head{display:flex;align-items:center;gap:8px}
.td-tip__head img{width:40px;height:40px;object-fit:contain;flex:none}
.td-tip__head>div{flex:1;min-width:0;display:flex;flex-direction:column}
.td-tip__n{font-size:15px;letter-spacing:.03em;margin:0}
.td-tip__r{font-size:11.5px;opacity:.8}
.td-tip__c{font-weight:900;font-size:14px;color:#ffe0a0;white-space:nowrap}
.td-tip__c.is-poor{color:#ff8a7a}
.td-tip__d{opacity:.9}
.td-tip__st{display:flex;flex-wrap:wrap;gap:3px 5px;margin-top:6px}
.td-tip__st span{padding:1px 7px;border-radius:7px;background:rgba(255,255,255,.08);font-weight:800;font-variant-numeric:tabular-nums}
.td-tip__st i{font-style:normal;opacity:.65;font-weight:700;margin-right:4px}
.td-tip__fx b{color:#ffd88a}
.td-tip .is-good,.td-pn__gw .is-good,.td-bk .is-good{color:#9dff9a}
.td-tip .is-weak,.td-pn__gw .is-weak,.td-bk .is-weak{color:#ffa08a}
.td-tip__br{margin-top:5px;display:grid;gap:2px}
.td-tip__br>b{color:#ffe0a0}
.td-tip__br span{display:block;opacity:.92}
.td-tip__br em{font-style:normal;font-weight:900;color:#ffe0a0;margin-right:5px}
.td-tip__hint{opacity:.65;font-size:11px}
.td-tip__mode{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;padding:5px 8px;border-radius:9px;background:rgba(240,180,90,.2);color:#ffe3b0}
.td-tip__mode b{color:#ffd27a}
.td-tip__mode .td-btn{margin-left:auto;min-height:34px;padding:4px 12px}
.td-tip__lock{padding:4px 8px;border-radius:9px;background:rgba(255,255,255,.08);color:#ffd0a0;font-weight:800}
.td-pn__gw{margin:6px 0 0;font-size:12px;line-height:1.5}
.td-pn__gw b{margin-right:4px}
/* 説明が出ている間は字幕を隠す（重ならないように） */
.g3d.td-tipping .g3d-subtitle{opacity:0;transition:opacity .15s}

/* ---- 塔の図鑑（重ね画面。上のバーより下：z-index 44 以下、上 64px を空ける） ---- */
.td-book{position:absolute;inset:0;z-index:36;display:block;background:rgba(5,7,10,.62);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
/* 一時停止の画面（z-index 46）から開いたときは、その上に出す（上のバー 47 より下）。下のままだと「戻る」が押せなかった（2026-10-05） */
.g3d[data-state="paused"] .td-book{z-index:46}
.td-book__scroll{position:absolute;left:0;right:0;bottom:0;top:calc(64px + env(safe-area-inset-top));overflow:auto;overscroll-behavior:contain;padding:0 14px 18px}
.td-book[hidden]{display:none}
.td-book__p.g3d-panel{width:min(1000px,100%);margin:0 auto;padding:18px 18px 16px}
.td-book__top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.td-book__top .g3d-panel__title{margin:0}
.td-book__tabs{display:inline-flex;gap:3px;padding:3px;border-radius:12px;background:rgba(0,0,0,.28)}
.td-book__tabs button{min-height:36px;padding:4px 14px;border:0;border-radius:9px;background:transparent;font:inherit;font-weight:800;font-size:13px;cursor:pointer;color:inherit;opacity:.7}
.td-book__tabs button[aria-selected="true"]{background:rgba(240,180,90,.3);opacity:1;color:#ffe3b0}
.td-book__lead{margin:8px 0 10px;font-size:12.5px;opacity:.8}
.td-book__body{display:grid;gap:10px}
.td-bk{padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.td-bk.is-lock{border-style:dashed}
.td-bk__h{display:flex;align-items:center;gap:10px}
.td-bk__h img{width:48px;height:48px;object-fit:contain;flex:none}
.td-bk__h>div{flex:1;min-width:0}
.td-bk__n{margin:0;font-size:16px;font-weight:900}
.td-bk__n small{font-size:11px;opacity:.7;margin-left:4px;font-weight:700}
.td-bk__r{margin:0;font-size:12px;opacity:.8}
.td-bk__lock{padding:2px 9px;border-radius:999px;background:rgba(255,255,255,.1);font-size:11.5px;font-weight:800;color:#ffd0a0;white-space:nowrap}
.td-bk__d{margin:6px 0 0;font-size:12.5px;line-height:1.6;opacity:.92}
.td-bk__d b{color:#ffd88a;margin-right:6px}
.td-bk__gw{margin:4px 0 0;font-size:12.5px}
.td-bk__gw b{margin-right:4px}
.td-bk__vs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:8px}
.td-bk__v{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 6px 8px;border-radius:11px;background:rgba(0,0,0,.22);text-align:center}
.td-bk__v.is-br{background:rgba(240,180,90,.1);border:1px solid rgba(240,180,90,.25)}
.td-bk__v img{width:72px;height:72px;object-fit:contain}
.td-bk__v>b{font-size:12.5px;font-weight:900;color:#ffe0a0}
.td-bk__c{font-size:11px;font-weight:800;opacity:.9}
.td-bk__s{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 3px;margin-top:3px}
.td-bk__s .td-st{padding:1px 5px;font-size:10.5px;border-radius:6px;gap:3px}
.td-bk__v p{margin:4px 0 0;font-size:11px;line-height:1.45;opacity:.85}
.td-bk--e{display:flex;gap:10px;align-items:flex-start}
.td-bk--e>img{width:64px;height:64px;object-fit:contain;flex:none}
.td-bk--e>div{flex:1;min-width:0}
.td-bk--e.is-boss{border-color:rgba(255,140,100,.35);background:rgba(180,60,40,.12)}
.td-bk__tags{margin:3px 0 0}
.td-book .g3d-actions{margin-top:12px}
@media (max-width:640px){
  .td-tip{font-size:11.5px;padding:8px 10px}
  .td-tip__br{grid-template-columns:1fr 1fr;column-gap:8px}
  .td-tip__br>b{grid-column:1/3}
  .td-hud.has-tip .td-coach{bottom:auto;top:calc(var(--td-side-b,196px) + 8px)}
  /* 情報パネルや説明と同時に出す案内は小さめに（盤面が見える範囲を広く残す） */
  .td-hud.has-panel .td-coach,.td-hud.has-tip .td-coach{padding:9px 11px}
  .td-hud.has-panel .td-coach__t,.td-hud.has-tip .td-coach__t{font-size:12.5px;line-height:1.6}
  .td-hud.has-panel .td-coach__b,.td-hud.has-tip .td-coach__b{margin-top:5px}
  .td-book__scroll{padding:0 8px 12px}
  .td-book__p.g3d-panel{padding:14px 10px 12px}
  .td-bk__vs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .td-bk__v img{width:56px;height:56px}
}
@media (max-height:480px) and (orientation:landscape){
  .td-tip{width:320px;font-size:11px;padding:7px 9px}
  .td-tip__head img{width:32px;height:32px}
  .td-tip__d{display:none}
  .td-book__scroll{top:calc(52px + env(safe-area-inset-top))}
}
/* 配置モードの間の説明は小さく（台座を隠さないように） */
.td-tip.is-compact{width:300px}
.td-tip.is-compact .td-tip__d,.td-tip.is-compact .td-tip__fx,.td-tip.is-compact .td-tip__br,.td-tip.is-compact .td-tip__hint{display:none}
/* 低い横画面の配置モードは1行の帯に */
@media (max-height:480px) and (orientation:landscape){
  .td-tip.is-compact{width:auto;max-width:min(440px,calc(100% - 260px));padding:5px 8px}
  .td-tip.is-compact .td-tip__head img{width:28px;height:28px}
  .td-tip.is-compact .td-tip__st,.td-tip.is-compact .td-tip__gw{display:none}
  .td-tip.is-compact .td-tip__mode{margin-top:4px;padding:3px 6px}
  .td-tip:not(.is-compact) .td-tip__fx{display:none}
}
.td-tip__esc{flex-basis:100%;font-size:11px;opacity:.85}
.td-tip__esc kbd{margin-right:3px}
@keyframes td-toast-s{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
/* 星の工房・塔の図鑑は長いので、「戻る」の列を下に貼り付けて、いつでも閉じられるように（スマホでは図鑑が8000px近くになる） */
.td-shop .g3d-actions,.td-book .g3d-actions{position:sticky;bottom:0;z-index:2;margin:14px -12px -10px;padding:12px 12px 12px;background:linear-gradient(to top,rgba(14,17,22,.97) 72%,rgba(14,17,22,0));border-radius:0 0 18px 18px}
/* 図鑑の札が狭い画面（スマホ縦）で横にはみ出し、3段目が切れていた：中身に合わせて広がらないように */
.td-book__body{grid-template-columns:minmax(0,1fr)}
.td-bk__h{flex-wrap:wrap}
.td-bk__lock{max-width:100%;white-space:normal}
/* 背の低い PC の画面（1366×625 など）：タイトルの「遊び方の選択・星の工房・塔の図鑑」が、下に貼り付いた「はじめる」の列に隠れないよう詰める。勝った時の結果の文も、ボタンに隠れないように */
@media (min-width:641px) and (min-height:481px) and (max-height:760px){
  .g3d .g3d-title__name{font-size:clamp(38px,6vw,58px)}
  .g3d .g3d-title__sub{margin-top:8px;font-size:14px;line-height:1.65}
  .g3d .g3d-title__extra:not(:empty){margin-top:12px}
  .g3d .td-stage{padding:6px 8px;gap:2px}
  .g3d .td-next{margin-top:6px;padding:4px 12px}
  .g3d .td-tline{margin-top:6px}
  .g3d .g3d-title>.g3d-actions{margin-top:12px}
  .g3d .g3d-title__hint{margin-top:8px}
  .g3d .g3d-result__big{margin:6px 0 2px;font-size:46px}
  .g3d .g3d-result__rows{margin-top:10px;gap:4px;grid-template-columns:1fr 1fr;column-gap:8px}
  .g3d .g3d-result__rows div{padding:5px 10px}
  .g3d .g3d-result__msg{margin-top:8px;font-size:13px}
}
