/* v0.19：触摸详情气泡、老板双主动技、5/6/8 人局、本命装备高亮 */
[data-tip-title]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.touch-tip{position:fixed;z-index:9999;left:12px;top:12px;max-width:300px;padding:10px 12px 11px;border-radius:10px;border:1px solid rgba(242,198,109,.6);background:linear-gradient(180deg,rgba(18,36,44,.97),rgba(9,22,28,.97));color:#f0e8d5;box-shadow:0 10px 28px rgba(0,0,0,.55);font:13px/1.55 var(--sans,"PingFang SC",sans-serif);pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .14s ease,transform .14s ease}
.touch-tip.is-open{opacity:1;transform:none}
.touch-tip[data-side="below"]{transform-origin:top center}
.touch-tip b{display:block;margin-bottom:4px;color:#f2c66d;font-size:14px;letter-spacing:.5px}
.touch-tip span{display:block;color:#dde6e3}
.touch-tip span+span{margin-top:3px;padding-top:3px;border-top:1px dashed rgba(242,198,109,.22)}
.touch-tip button{margin-top:8px;min-height:32px;padding:4px 12px;border:1px solid rgba(242,198,109,.65);border-radius:16px;background:rgba(242,198,109,.12);color:#f2c66d;font-size:12px}
@media (prefers-reduced-motion:reduce){.touch-tip{transition:none}}
.tb-skills.has-two-active{--bar-h:calc((var(--C) - 15px) / 4);gap:5px}
.tb-skills.has-two-active .tb-skillbar i{font-size:10px;letter-spacing:0}
.tb-skillbar.is-second{border-style:dashed}
.table-size-switch{grid-template-columns:repeat(3,1fr)}
.table-size-switch .mode-option small{font-size:10.5px;line-height:1.35}
.equip-slot{position:relative}
.tb-shell[data-seats="7"] .tb-toprow{gap:6px;padding-left:6px;padding-right:6px}
.tb-shell[data-seats="7"] .tb-topseat.is-split{padding-left:clamp(6px,6%,60px);padding-right:clamp(6px,6%,60px)}

/* v0.19 数值版本开关（定稿原版 / 平衡补丁） */
.balance-switch { display: flex; align-items: center; gap: 6px; margin: 8px 0 2px; font-size: 13px; }
.balance-switch .balance-label { color: var(--muted, #9fb3ad); margin-right: 2px; letter-spacing: .08em; }
.balance-option { flex: 0 0 auto; min-height: 34px; padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(234, 219, 185, .28); background: transparent; color: inherit; font: inherit; cursor: pointer; }
.balance-option.active { background: rgba(234, 219, 185, .16); border-color: rgba(234, 219, 185, .7); font-weight: 700; }
.balance-switch{flex-wrap:wrap}.balance-option{min-height:38px;padding-inline:10px}.balance-mode-hint{font-size:12px;line-height:1.55;color:#b8ccbe}
.patch-note { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 6px; font-size: 12px; background: rgba(200, 59, 43, .18); color: #f3b6a8; }

/* v0.19 公共事件：大字事件名 + 小字台词 */
.event-announcement .event-big-title { font-size: clamp(30px, 8vw, 44px); font-weight: 900; letter-spacing: .06em; line-height: 1.1; margin: 4px 0 2px; }
.event-announcement .event-line-small { font-size: 13px; font-style: italic; opacity: .82; margin: 0 0 10px; }
.event-announcement .event-line-small::before { content: '“'; }
.event-announcement .event-line-small::after { content: '”'; }

/* 职业图鉴里的四句台词 */
.role-lines { display: flex; flex-wrap: wrap; gap: 6px 10px; font-size: 13px; margin: 8px 0; }
.role-lines b { width: 100%; }
.role-lines span { display: inline-flex; gap: 4px; align-items: baseline; }
.role-lines i { font-style: normal; font-size: 11px; padding: 0 5px; border-radius: 4px; background: rgba(234, 219, 185, .14); color: var(--muted, #b8c6c1); }

/* v0.19 本命装备金色高光：装上本命装备后，装备格、对手角色牌上的装备色块、角色牌都描金；刚点亮时闪一下 */
:root { --sig-gold: #f6c95b; --sig-gold-deep: #b9822a; --sig-gold-glow: rgba(246, 201, 91, .7); }
.equip-slot.is-signature {
  border-color: var(--sig-gold) !important;
  background: linear-gradient(160deg, rgba(246, 201, 91, .34), rgba(185, 130, 42, .18) 55%, rgba(246, 201, 91, .28)) !important;
  box-shadow: 0 0 0 2px var(--sig-gold), 0 0 14px var(--sig-gold-glow), inset 0 0 10px rgba(255, 236, 170, .45);
  color: #fff3c9; overflow: visible;
}
.equip-slot.is-signature .equip-art, .equip-slot.is-signature small { color: #ffe9a6; text-shadow: 0 0 6px rgba(246, 201, 91, .8); }
.equip-slot.is-signature::before {
  content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(115deg, transparent 30%, rgba(255, 245, 205, .75) 48%, transparent 66%);
  background-size: 260% 100%; animation: sig-sweep 3.2s ease-in-out infinite; mix-blend-mode: screen;
}
/* 选择器加了 [data-slot][data-player]：要压过 styles.css 里装备格顶部 3px 色条（同一个 ::after）和“可装”小圆点。 */
.equip-slot.is-signature[data-slot][data-player]::after {
  content: '本命'; position: absolute; inset: 2px 2px auto auto; width: auto; height: auto; z-index: 2; padding: 0 4px; border-radius: 6px;
  background: linear-gradient(180deg, #ffe08a, var(--sig-gold-deep)); color: #2a1c08; font: 800 8px/13px var(--sans, sans-serif);
  box-shadow: 0 1px 4px rgba(0, 0, 0, .45);
}
/* 牌桌装备格很窄：本命章占掉角上的攻/防/特字位置，避免两个字叠在一起（槽位顺序固定，长按提示里也写着）。 */
.tb-equip .equip-slot.is-signature .equip-slot-glyph { display: none; }
.tb-equip .equip-slot.is-signature[data-slot][data-player]::after { inset: 1px auto auto 1px; padding: 0 3px; font-size: 8px; line-height: 12px; }
.equip-slot.sig-just-lit { animation: sig-burst 1.1s ease-out 2; }
.gear-chip.is-signature {
  background: radial-gradient(circle at 35% 30%, #ffe9a6, var(--sig-gold) 55%, var(--sig-gold-deep)) !important;
  color: #2a1c08 !important; box-shadow: 0 0 0 1.5px #fff1c2, 0 0 10px var(--sig-gold-glow); animation: sig-pulse 2.4s ease-in-out infinite;
}
.tb-seat[data-signature] .tb-art, .tb-card[data-signature] .tb-art { box-shadow: inset 0 0 0 2px var(--sig-gold), inset 0 0 16px rgba(246, 201, 91, .45); }
.tb-seat[data-signature]::after, .tb-card[data-signature]::after {
  content: '本命'; position: absolute; left: 50%; bottom: -6px; transform: translateX(-50%); z-index: 3; padding: 0 6px; border-radius: 7px;
  background: linear-gradient(180deg, #ffe08a, var(--sig-gold-deep)); color: #2a1c08; font: 800 9px/14px var(--sans, sans-serif); pointer-events: none;
}
.playing-card.is-my-signature { box-shadow: 0 0 0 2px var(--sig-gold), 0 4px 14px rgba(246, 201, 91, .45); }
.playing-card.is-my-signature::after {
  content: '本命'; position: absolute; top: 4px; left: 4px; z-index: 3; padding: 0 5px; border-radius: 6px;
  background: linear-gradient(180deg, #ffe08a, var(--sig-gold-deep)); color: #2a1c08; font: 800 9px/14px var(--sans, sans-serif); pointer-events: none;
}
@keyframes sig-sweep { 0%, 35% { background-position: 130% 0; } 75%, 100% { background-position: -40% 0; } }
@keyframes sig-pulse { 0%, 100% { box-shadow: 0 0 0 1.5px #fff1c2, 0 0 6px var(--sig-gold-glow); } 50% { box-shadow: 0 0 0 1.5px #fff1c2, 0 0 14px var(--sig-gold-glow); } }
@keyframes sig-burst { 0% { box-shadow: 0 0 0 2px var(--sig-gold), 0 0 0 rgba(246, 201, 91, .9); transform: scale(1); } 35% { box-shadow: 0 0 0 3px #fff1c2, 0 0 28px rgba(246, 201, 91, .95); transform: scale(1.08); } 100% { box-shadow: 0 0 0 2px var(--sig-gold), 0 0 14px var(--sig-gold-glow); transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .equip-slot.is-signature::before, .gear-chip.is-signature, .equip-slot.sig-just-lit { animation: none; } }

/* 素材整备版：本命章使用独立节点，不再争用槽位、替换提示或出局状态的伪元素。 */
.equip-slot.is-signature[data-slot][data-player]::after,
.tb-seat[data-signature]::after,.tb-card[data-signature]::after{content:none!important}
.equip-slot.is-signature{isolation:isolate;border-style:solid!important;box-shadow:0 0 0 1px #fff0b8,0 0 0 3px #bd882e,0 0 12px #e9b34288,inset 0 0 12px #f6c95b33}
.equip-slot.is-signature::before{z-index:-1;opacity:.5;animation-duration:4.8s}
.signature-seal,.signature-banner,.signature-card-seal,.gear-signature-mark{position:absolute;z-index:6;pointer-events:none;white-space:nowrap;color:#32230b;background:#f7d772;border:1px solid #fff0b4;font-family:var(--sans,sans-serif);font-weight:1000;text-shadow:none;box-shadow:0 1px 3px #0008}
.signature-seal{top:0;left:50%;transform:translateX(-50%);padding:0 4px;border-radius:0 0 4px 4px;font-size:8px;line-height:10px}
.tb-equip .equip-slot.is-signature .equip-art{box-sizing:border-box;padding-top:7px}
.signature-banner{left:50%;bottom:-7px;transform:translateX(-50%);padding:0 5px;border-radius:3px;font-size:8px;line-height:12px;letter-spacing:.04em}
.tb-card[data-signature] .tb-art,.tb-seat[data-signature] .tb-art{box-shadow:inset 0 0 0 2px #f7d772,inset 0 0 14px #f6c95b55}
.tb-gear{pointer-events:auto}
.gear-chip{position:relative;cursor:help;touch-action:manipulation}
.gear-chip:focus-visible{outline:2px solid #fff1bc;outline-offset:3px}
.gear-chip.is-signature{border:1px solid #fff3c7;box-shadow:0 0 0 2px #bd882e,0 0 9px #f6c95b99;animation:none}
.gear-signature-mark{right:-4px;bottom:-3px;width:11px;height:11px;display:grid;place-items:center;border-radius:50%;font-size:8px;line-height:1}
.equip-replace-seal{position:absolute;right:-6px;top:-5px;z-index:7;display:grid;place-items:center;width:16px;height:16px;background:#fff3d7;border-radius:50%;font-size:10px;font-weight:1000;color:#852b20;box-shadow:0 1px 4px #0008}
.tb-equip .equip-slot.will-replace::before{content:none}
.tb-equip .equip-slot.is-signature.will-replace::before{content:''}
.signature-card-seal{top:29px;left:7px;padding:1px 5px;border-radius:2px;font-size:10px;line-height:13px;transform:rotate(-8deg)}
.playing-card.is-my-signature::after{content:'';top:auto;bottom:0;left:0;right:0;width:auto;height:4px;padding:0;border-radius:0;background:var(--sig-gold)!important;box-shadow:none}

/* 气泡在可视视口内限高，长说明自身可以滚动，不遮住整张桌面。 */
.touch-tip{box-sizing:border-box;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;overflow-wrap:anywhere;scrollbar-width:thin;border-radius:6px;background:#112b2af5;border-color:#b49b68;color:#f7e9cc}
.touch-tip>b{font-weight:900;line-height:1.35}.touch-tip span{line-height:1.6}
.touch-tip button{min-height:36px;border-radius:4px}

/* 横竖屏共用的操作层级：三槽颜色只提示类别，金色专门留给本命。 */
.tb-shell{box-sizing:border-box;height:100dvh;max-height:100dvh}
.tb-shell .equip-slot:not(.is-signature).occupied{box-shadow:inset 0 0 0 1px #ffffff24,0 2px 4px #0004}
.tb-shell .tb-skillbar:focus-visible,.tb-shell .tb-menu:focus-visible{outline:2px solid #ffe7ad;outline-offset:3px}
.room-fields input{font-size:16px}

/* 连续选牌保持位置；触摸只滚动面板，避免把牌桌带走。 */
.tb-shell .card-choice-panel{overscroll-behavior:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch;overflow-anchor:none}
.tb-shell .choice-cards{touch-action:pan-y;overflow-anchor:none}
.tb-shell .pick-card,.tb-shell .playing-card,.tb-shell .tb-pill{touch-action:manipulation}
.tb-shell.is-submitting .tb-line{opacity:.6}
.tb-shell.is-submitting .tb-say b{color:#f6d47f}
.tb-shell.is-submitting [data-do="card"],.tb-shell.is-submitting [data-do="act"],.tb-shell.is-submitting [data-do="skill"],.tb-shell.is-submitting [data-do="equipment"]{cursor:progress}
.recycle-option{border-color:#64c9b9!important;color:#98e7d6!important;background:#123f38!important}
.recycle-hint{color:#98e7d6}
@media(orientation:portrait){.tb-strip.is-equip .tb-say-row{flex-wrap:wrap}.tb-strip.is-equip .tb-pills{justify-content:flex-end;flex-basis:100%}.tb-strip.is-equip .tb-pill{min-height:36px}}

@media(orientation:portrait){
  .tb-toprow{padding-inline:12px}
  .tb-shell[data-seats="7"] .tb-toprow{gap:var(--seat-gap,22px);padding-inline:12px}
  .tb-wing{top:12px;display:flex;gap:16px;flex-direction:column}
  .tb-wing.is-right{right:10px;flex-direction:column-reverse}
  .tb-wing.is-left{left:10px}
  .tb-shell[data-seats="7"] .tb-stage-free{padding-inline:calc(var(--card-w) + 18px)}
  [data-orient="port"] .tb-pills .tb-pill{min-height:32px;padding-inline:10px}
  .lobby .table-size-switch .mode-option{padding:10px 6px}
  .lobby .table-size-switch .mode-option strong{font-size:13px;line-height:1.3}
  .lobby .table-size-switch .mode-option small{font-size:10px;line-height:1.5;margin-top:5px}
}
@media(orientation:landscape) and (max-height:440px){
  .tb-shell{--text:12px}
  .tb-strip.is-response .tb-pills .tb-pill{min-height:30px}
}
@media(prefers-reduced-motion:reduce){.equip-slot.is-signature::before,.equip-slot.sig-just-lit,.gear-chip.is-signature{animation:none!important}}

.voice-studio{margin:16px 0;padding:14px;border:1px solid #a88e56;border-radius:7px;background:#112b28}
.voice-studio>header{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.voice-studio>header>span{color:#f6d47f;font:900 12px var(--mono)}
.voice-studio>header>b{color:#ffedbd;font-size:16px}.voice-studio>header>small{flex-basis:100%;color:#b5c7ba;font-size:11px}
.voice-character-preview{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;align-items:center}
/* Audition-only crop: show a recognisable face without changing any game art. */
.voice-character-preview>.voice-cast-avatar{position:relative;display:block;width:84px;height:84px;overflow:hidden;border:1px solid #587867;border-radius:9px;background:radial-gradient(ellipse at 50% 25%,#466c5b,#132e29)}
.voice-cast-avatar>.portrait{position:absolute;left:50%;top:0;width:200%;height:300%;max-width:none;object-fit:contain;object-position:50% 0;transform:translateX(-50%);filter:none}
.voice-character-preview>div{min-width:0}
.voice-studio .voice-role-label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#d0d6bd}
.voice-studio select{box-sizing:border-box;width:100%;min-width:0;min-height:42px;border:1px solid #9c8b60;border-radius:4px;background:#0c201e;color:#f4e6c7;font:700 16px var(--sans);padding:6px 10px}
.voice-studio .voice-direction{font-size:12px;line-height:1.6;margin:6px 0;color:#b7cbbf}
.voice-studio .voice-audition-buttons{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.voice-studio .voice-audition-buttons>.btn{flex:1 0 65px;min-height:44px;padding:6px;font-size:12px}
.voice-studio-note{font-size:11px;line-height:1.6!important;color:#9fb6a8;margin:9px 0 0}
.public-voice-cue{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:10px}
.public-voice-cue>p{flex:1 1 180px;margin:0;font-size:15px;font-weight:800;color:#ffe1a1;line-height:1.5}
.public-voice-cue>.btn{min-height:42px;font-size:12px;white-space:nowrap}
.skill-preview-buttons{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.skill-preview-buttons>.btn{flex:1 1 95px;min-height:40px;font-size:12px;padding:6px 10px}
.skill-preview-stage{height:280px;border-color:#b39a64;background:linear-gradient(#0d2328aa,#0d2328aa),url('./assets/art-v5/office-city.webp') center/cover}
.event-badge-art>.event-illustration{display:block;width:100%;height:100%;object-fit:cover;border-radius:3px}
.event-hero{grid-template-columns:minmax(0,180px) minmax(0,1fr);gap:16px}
.event-hero-art{width:100%;height:auto;aspect-ratio:4/3}
.event-hero-art>.event-illustration{position:absolute;inset:0;box-sizing:border-box;display:block;width:100%;height:100%;object-fit:contain;border:1px solid #b49c69;border-radius:4px;box-shadow:3px 4px #071c1a88}
.event-description>.event-line-small{color:#f6ce80;opacity:1;font-style:normal;font-weight:800;line-height:1.5;margin:7px 0 10px}
.is-new-event .event-hero-art>.event-illustration{animation:event7-arrive .7s cubic-bezier(.2,.7,.3,1) both}
.event-catalog{margin-top:14px;border-top:1px solid #b49c6966;padding-top:9px}
.event-catalog>summary{cursor:pointer;padding:9px 0;color:#f6cf83;font-size:13px;font-weight:800}
.event-catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:8px}
.event-catalog-card{padding:5px;border:1px solid #83754e;border-radius:4px;background:#102722;color:#f3dfb3;cursor:pointer;min-width:0}
.event-catalog-card>.event-illustration,.event-catalog-card>.card-illustration{display:block;width:100%;height:75px;object-fit:cover;border-radius:2px}
.event-catalog-card>b{display:block;font-size:12px;line-height:1.3;margin-top:5px;overflow-wrap:anywhere}
@media(orientation:portrait) and (max-width:600px){.event-hero{grid-template-columns:minmax(0,1fr);gap:12px}.event-hero-art{aspect-ratio:auto;height:160px;max-height:160px}.event-hero-art>.event-illustration{object-position:center}.event-stamp{bottom:4px}.event-description .event-big-title{font-size:32px}.event-description>p{font-size:13px;line-height:1.7}}
@media(orientation:landscape) and (max-height:440px){.skill-preview-stage{height:190px}}
@media(max-width:420px){.voice-studio{padding:11px}.voice-studio>header>b{font-size:15px}.voice-character-preview{grid-template-columns:80px minmax(0,1fr);gap:10px}.voice-character-preview>.voice-cast-avatar{width:80px;height:80px}.public-voice-cue>.btn{width:100%}}
.tb-shell .status-out .tb-card{filter:none;border-color:#64776a;box-shadow:inset 0 0 0 1px #bac5ac22}
.tb-shell .status-out .tb-card:after{content:none}
.tb-shell .status-out .tb-art{filter:grayscale(.9) brightness(.69) saturate(.5);opacity:.8}
.tb-shell .status-out .tb-faction,.tb-shell .status-out .tb-count,.tb-shell .status-out .tb-gear{opacity:.6}
.tb-shell .status-out .tb-plate .out-stamp{font-size:9px;letter-spacing:1px;color:#b5c3b0}
.tb-shell .optimized-stamp{inset:auto 5px 34px auto;width:50px;padding:3px 2px 2px;transform:rotate(-7deg);background:#ead9aeef;border:1.5px solid #9e4939;border-radius:1px;box-shadow:inset 0 0 0 1px #ead9ae,inset 0 0 0 2px #9e493947;line-height:1;letter-spacing:0;text-shadow:none;color:#963c2e;z-index:9;pointer-events:none}
.tb-shell .optimized-stamp b{display:block;font:900 12px/1.1 var(--sans);letter-spacing:1px}
.tb-shell .optimized-stamp small{display:block;margin-top:3px;padding-top:2px;border-top:1px solid #9e493947;font:700 7px/1 var(--sans);letter-spacing:2px;opacity:.75}
.target-step-badge{position:absolute;z-index:12;left:50%;top:31%;transform:translateX(-50%);display:block;max-width:calc(100% - 8px);padding:3px 5px;background:#f1dfb1;color:#1d4439;border:1px solid #b99a5c;box-shadow:1px 2px 0 #0b241a77;font:900 10px/1.1 var(--sans);white-space:nowrap;pointer-events:none}
.target-step-badge.is-picked{background:#d79a55;color:#201c12;border-color:#eec989}
.boss-skill-step .tb-say>b{color:#f3d08d}
@media(max-width:600px) and (orientation:portrait){.tb-shell .optimized-stamp{width:44px;right:4px;bottom:31px;padding:3px 1px 2px}.tb-shell .optimized-stamp b{font-size:11px}.tb-shell .optimized-stamp small{font-size:6px}.target-step-badge{font-size:9px;padding:3px}}

.tb-shell .target-picked .tb-card{filter:none;box-shadow:inset 0 0 0 2px #deb778,0 0 0 1px #c58c44}

.balance-mode-hint{margin:3px 0 14px;color:var(--muted,#b8c8bb);font:12px/1.5 var(--sans);}
/* Shared command surfaces. The v197 layout below places these controls. */
.tb-shell .tb-pill{min-height:36px;border-radius:2px;border-color:#8f9d845e;background:#112b29;color:#e9e0ca;font-weight:800}
.tb-shell .tb-pill.is-primary{border-color:#e2c481;background:#d8ba78;color:#201c13}
.tb-shell .optimized-stamp{width:64px;right:5px;bottom:32px;padding:5px 3px 4px;border-width:2px;transform:rotate(-8deg);background:#eeddb7ed;box-shadow:inset 0 0 0 1px #eeddb7,inset 0 0 0 3px #9e49393d,1px 2px 1px #0004}
.tb-shell .optimized-stamp b{font-size:15px;line-height:1.05;letter-spacing:1px}
.tb-shell .optimized-stamp small{font-size:8px;line-height:1.1;letter-spacing:3px;margin-top:4px;padding-top:3px;opacity:.9}
.outcome-modal .modal-actions{position:sticky;bottom:-1px;z-index:2;margin:18px -4px 0;padding:12px 4px calc(10px + env(safe-area-inset-bottom));background:#112725;border-top:1px solid #c7ae7152;display:grid;grid-template-columns:1fr 1.35fr;gap:8px}
.outcome-modal .modal-actions .btn{min-height:48px;border-radius:7px;font-size:15px;font-weight:900;justify-content:center}
.outcome-modal .result-footnote{font-size:11px;line-height:1.4;color:#a4b7a9}
/* Opening is a private preparation phase, rather than a response modal over eight faces. */
.opening-screen{min-height:100svh;display:flex;flex-direction:column;gap:14px;padding:16px max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:linear-gradient(#071d22e8,#0c292be8),url('./assets/art-v5/office-city.webp') center/cover;color:#ece2c8}
.opening-header{width:min(920px,100%);margin:0 auto;display:flex;align-items:center;gap:12px}
.opening-header h1{font:900 24px/1.2 var(--sans);margin:4px 0 0;letter-spacing:.02em}
.opening-header .eyebrow{color:#a4bcae;font-size:9px;letter-spacing:.13em}
.opening-menu{width:44px;height:44px;flex:none;border:1px solid #bcad7e77;border-radius:50%;background:#102d2b;color:#e5cf94;display:grid;place-items:center}
.opening-menu svg{width:18px;height:18px}
.opening-clock{margin-left:auto;flex:none}
.opening-clock .action-clock{min-width:60px;height:44px;display:grid;grid-template-columns:auto auto;align-items:center;gap:0 5px;padding:4px 8px;background:#102d2b;border:1px solid #ad9d6a66;border-radius:7px}
.opening-clock .action-clock>svg{width:14px;height:14px}
.opening-clock .action-clock>b{font:900 21px/1 var(--mono);text-align:center}
.opening-clock .action-clock>small{grid-column:1/-1;text-align:center;font-size:9px;line-height:1;color:#becab7}
.opening-clock .is-urgent{border-color:#f1946d;color:#ffd1a8}
.opening-content{width:min(620px,100%);margin:auto;display:grid;gap:14px}
.opening-owner{display:flex;align-items:center;gap:12px;min-width:0}
.opening-owner>.portrait{width:52px;height:60px;object-fit:cover;object-position:top;flex:none;border:1px solid #c5b17a;border-radius:5px}
.opening-owner>div{display:grid;gap:2px;min-width:0}
.opening-owner b{font-size:18px;line-height:1.2}
.opening-owner span{color:#e6c67f;font-size:13px;font-weight:800}
.opening-owner small{color:#a5bbae;font-size:11px;line-height:1.4}
.opening-assessment{display:flex;align-items:center;gap:16px;padding:14px 16px;background:#e4d4af;border:1px solid #f2e3be;color:#193d37;border-radius:8px;box-shadow:0 4px 0 #061b1c66}
.opening-score{display:flex;align-items:baseline;flex:none;gap:2px;min-width:88px}
.opening-score strong{font:900 56px/.95 var(--mono);letter-spacing:-.07em;color:#a8412b}
.opening-score>span{font:800 12px/1 var(--mono);color:#657366}
.opening-verdict{min-width:0;flex:1}
.opening-grade{font-size:10px;font-weight:900;letter-spacing:.08em;color:#a8412b}
.opening-verdict h2{font-size:18px;line-height:1.2;margin:3px 0 5px;font-weight:900}
.opening-verdict p{font-size:12px;line-height:1.45;margin:0}
.opening-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}
.opening-tags span{max-width:100%;padding:2px 5px;border:1px solid #42685a59;font-size:10px;line-height:1.2;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.opening-hand{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;min-width:0}
.opening-card{position:relative;height:clamp(136px,21vw,174px);min-width:0;display:flex;flex-direction:column;align-items:stretch;padding:4px;border:2px solid #d9caa2;border-top-color:var(--category-color,#d9caa2);border-radius:5px;background:#e7d8b9;color:#1b322a;overflow:hidden;text-align:left;box-shadow:0 3px 0 #0006}
.opening-card-suit{position:absolute;left:5px;top:4px;z-index:1;font:800 9px/1 var(--mono);background:#e7d8b9dc;padding:2px}
.opening-card-category{position:absolute;top:4px;right:4px;z-index:1;width:19px;height:19px}
.opening-card-category svg{width:19px;height:19px}
.opening-card-art{display:block;flex:1;min-height:0;overflow:hidden;margin:-4px -4px 4px}
.opening-card-art img{display:block;width:100%;height:100%;object-fit:cover}
.opening-card-art>.card-illustration{display:block;width:100%;height:100%;object-fit:contain}
.opening-card>strong{font:900 13px/1.15 var(--sans);overflow-wrap:anywhere}
.opening-card>small{font-size:9px;line-height:1.3;min-height:24px;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.opening-decision>p{font-size:14px;font-weight:900;line-height:1.3;margin:0 0 8px;color:#f1d594}
.opening-score-change{display:block;margin:-4px 0 6px;color:#b4c6b7;font-size:11px}
.opening-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.opening-actions .btn{min-height:48px;justify-content:center;gap:6px;font-size:15px;font-weight:900;border-radius:6px}
.opening-actions .btn>small{font-size:10px;opacity:.8}
.opening-actions .btn:disabled{opacity:.5;cursor:wait}
.opening-rule{display:block;margin-top:7px;color:#adc2b4;font-size:10px;line-height:1.45}
.opening-confirmed{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;background:#23473c;border:1px solid #80a88777;border-radius:6px;color:#d3e7be;font-weight:800}
.opening-confirmed svg{width:18px;height:18px}
.opening-ready-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
.opening-ready-title b{color:#ddca91;font-size:13px}
.opening-ready-title span{font-size:10px;color:#afc4b8}
.opening-ready-seats{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}
.opening-ready-seats>span{height:35px;display:flex;align-items:center;justify-content:center;gap:2px;background:#102728;border:1px solid #607b6a66;border-radius:4px;font-size:10px;color:#97ae9f}
.opening-ready-seats i{display:flex}.opening-ready-seats svg{width:10px;height:10px}
.opening-ready-seats .is-ready{background:#30563e;border-color:#93b57b;color:#dbecc6}.opening-ready-seats .is-self{border-color:#e9c677}
.opening-footer>p{font-size:10px;color:#9fb7a7;line-height:1.4;margin:7px 0 0}
.opening-screen button:focus-visible{outline:3px solid #ffe3a1;outline-offset:3px}
.tb-faction.is-revealed{outline:1px solid #f8e6b4;box-shadow:0 0 0 2px #a6422b;letter-spacing:.05em}
.tb-stamps [data-status="identity-revealed"]{background:#b9553e!important;color:#fff0ca!important;border-color:#ffd1a1!important}
.tb-stamps [data-status="first-guard"]{background:#355d55!important;color:#e5e6b9!important;border-color:#a7c9a1!important}
@media(max-width:380px){.opening-screen{padding:12px;gap:10px}.opening-header h1{font-size:21px}.opening-content{gap:10px}.opening-assessment{padding:11px;gap:12px}.opening-score{min-width:78px}.opening-score strong{font-size:48px}.opening-verdict h2{font-size:16px}.opening-verdict p{font-size:11px}.opening-tags{gap:3px;margin-top:5px}.opening-card{height:136px}.opening-card>strong{font-size:12px}.opening-ready-title span{font-size:9px}.opening-owner>.portrait{height:50px;width:44px}}
@media(orientation:landscape) and (max-height:520px){
 .opening-screen{padding:8px max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));gap:8px}
 .opening-header{width:min(840px,100%);gap:8px}.opening-header h1{font-size:18px;margin-top:2px}.opening-header .eyebrow{font-size:8px}.opening-menu{width:40px;height:40px}.opening-clock .action-clock{height:40px}
 .opening-content{width:min(840px,100%);margin:auto;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-areas:'owner hand' 'score hand' 'decision ready';grid-template-rows:42px minmax(88px,1fr) auto;gap:8px 14px}
 .opening-owner{grid-area:owner;gap:8px}.opening-owner>.portrait{width:35px;height:42px}.opening-owner b{font-size:15px}.opening-owner span{font-size:11px}.opening-owner small{font-size:9px}
 .opening-assessment{grid-area:score;padding:9px 12px;gap:12px}.opening-score{min-width:75px}.opening-score strong{font-size:44px}.opening-verdict h2{font-size:15px;margin:2px 0 4px}.opening-verdict p{font-size:10px}.opening-tags{margin-top:4px}.opening-tags span{font-size:9px}
 .opening-hand{grid-area:hand;gap:6px}.opening-card{height:100%;min-height:132px;max-height:180px}.opening-card>strong{font-size:12px}.opening-card>small{font-size:9px;min-height:23px}
 .opening-decision{grid-area:decision}.opening-decision>p{font-size:12px;margin-bottom:5px}.opening-actions .btn{min-height:44px;font-size:13px}.opening-rule{font-size:9px;margin-top:4px}.opening-confirmed{min-height:42px;font-size:12px}
 .opening-footer{grid-area:ready;align-self:center}.opening-ready-title{margin-bottom:5px}.opening-ready-title b{font-size:12px}.opening-ready-title span{font-size:9px}.opening-ready-seats>span{height:30px;font-size:9px}.opening-footer>p{font-size:9px;margin-top:4px}
}
@media(orientation:portrait){
 .tb-shell .tb-strip .tb-say-row{row-gap:4px}
 .tb-shell .tb-say{font-size:12px}
 .tb-shell .tb-say b{font-size:12px}
 .tb-shell .tb-say span{font-size:11px}
 .tb-shell .tb-line{width:min(166px,64%)}
 .tb-shell .optimized-stamp{width:60px;right:4px;bottom:31px}
 .tb-shell .optimized-stamp b{font-size:14px}
 .tb-shell .optimized-stamp small{font-size:8px}
 .outcome-modal .modal-actions{grid-template-columns:1fr 1.25fr}
}
@media(orientation:landscape) and (max-height:440px){
 .tb-shell .tb-strip .tb-say b{font-size:12px}
 .tb-shell .tb-strip .tb-say span{font-size:11px}
 .tb-shell .optimized-stamp{width:58px;bottom:28px;padding:4px 2px 3px}
 .tb-shell .optimized-stamp b{font-size:13px}
 .tb-shell .optimized-stamp small{font-size:7px}
}
/* The seal sits on the lower torso, above the profession plate. */
.tb-shell .optimized-stamp{bottom:47px;padding:2px 3px;line-height:1}
.tb-shell .optimized-stamp b{line-height:1;font-size:15px}
.tb-shell .optimized-stamp small{line-height:1;font-size:8px;margin-top:2px;padding-top:1px;letter-spacing:2px}
@media(orientation:portrait){.tb-shell .optimized-stamp{bottom:47px;padding:2px 2px}.tb-shell .optimized-stamp b{font-size:14px}.tb-shell .optimized-stamp small{font-size:8px}}
@media(orientation:landscape) and (max-height:440px){.tb-shell .optimized-stamp{bottom:40px}.tb-shell .optimized-stamp b{font-size:13px}.tb-shell .optimized-stamp small{font-size:7px}}
/* The report scrolls inside a fixed frame, keeping replay within thumb reach. */
.modal.outcome-modal{display:flex;flex-direction:column;height:min(760px,calc(100svh - 28px));max-height:calc(100svh - 28px);overflow:hidden}
.outcome-modal .modal-header{flex:none}
.outcome-modal .modal-content{flex:1;min-height:0;overflow:hidden;display:grid;grid-template-rows:minmax(0,1fr) auto auto;padding-bottom:12px}
.outcome-modal .outcome-card{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-width:thin}
.outcome-modal .modal-actions{position:static;margin:10px -4px 0;padding:10px 4px 6px}
.outcome-modal .result-footnote{margin:2px 0 0;line-height:1.4}
@media(orientation:landscape) and (max-height:440px){.outcome-modal .modal-header{padding:8px 16px}.outcome-modal .modal-content{padding-top:8px;padding-bottom:8px}.outcome-modal .modal-actions{margin-top:6px;padding-top:7px}.outcome-modal .modal-actions .btn{min-height:44px}}
/* v0.19.7 — a clear command axis, comic bookmarks and contained avatar layers. */
.tb-shell[data-orient="land"]{grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"left stage right" "console console console"}
.tb-shell[data-orient="port"]{grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"top" "stage" "console"}
.tb-shell[data-orient] .tb-console{display:grid;min-width:0;align-items:end;gap:3px 8px;z-index:20}
.tb-shell[data-orient="land"] .tb-console{grid-template-columns:auto minmax(0,1fr) clamp(138px,var(--skill-w),182px);grid-template-rows:auto auto auto;grid-template-areas:"me control skills" "me strip skills" "me hand skills";padding-top:5px;padding-bottom:4px}
.tb-shell[data-orient="port"] .tb-console{grid-template-columns:auto minmax(54px,1fr) clamp(130px,calc(var(--card-w) * 1.45),164px);grid-template-rows:auto auto auto;grid-template-areas:"me control skills" "strip strip strip" "hand hand hand";padding:8px 7px 4px;gap:3px 6px}
.tb-shell[data-orient] .tb-me{grid-area:me;min-width:0;align-self:end}
.tb-shell[data-orient] .tb-hand{grid-area:hand;align-self:end;min-width:0}
.tb-shell[data-orient] .tb-skill-zone{grid-area:skills;display:flex;flex-direction:column;align-self:end;min-width:0;gap:5px}
.tb-shell[data-orient] .tb-sys{width:100%;min-width:0;display:flex;flex-direction:row;justify-content:flex-end;align-items:center;align-self:stretch;gap:5px;min-height:28px}
.tb-shell[data-orient] .tb-round,.tb-shell[data-orient] .tb-menu,.tb-shell[data-orient] .tb-event-icon{width:28px;height:28px;min-height:28px;border-radius:50%;flex:none;border:1px solid #bfa66a70;background:#0d2525;color:#dbc38c;padding:0;display:grid;place-items:center;cursor:pointer}
.tb-shell[data-orient] .tb-round b{font:900 14px/1 var(--mono)}
.tb-shell[data-orient] .tb-round i{inset:0;-webkit-mask:radial-gradient(circle,transparent 11.5px,#000 12px);mask:radial-gradient(circle,transparent 11.5px,#000 12px)}
.tb-shell[data-orient] .tb-menu svg,.tb-shell[data-orient] .tb-event-icon svg{width:14px;height:14px}
.tb-shell[data-orient] .tb-event-icon.is-lasting{color:#f7ad88;border-color:#b96f4e;background:#45251e}
.tb-shell[data-orient] .tb-event-icon.is-pending,.tb-shell[data-orient] .tb-event-icon.is-empty{color:#9cb4a8;border-style:dashed}
.tb-shell[data-orient] .tb-command-orb{grid-area:control;display:grid;place-items:center;align-self:end;justify-self:center;position:relative;z-index:8;padding:0 0 3px;min-width:0}
.tb-shell[data-orient] .tb-turn-control{width:52px;height:52px;min-height:52px;margin:0;padding:6px 3px;border:2px solid #39241e;border-radius:50%;display:flex;flex-direction:column;justify-content:center;gap:3px;background:#943d34;color:#fff0cc;box-shadow:0 0 0 2px #c99368,inset 0 2px 0 #f7c69b77,inset 0 -4px 0 #5f2c28,0 4px 0 #301c1a;letter-spacing:0;transition:translate .12s,filter .12s}
.tb-shell[data-orient] .tb-turn-control.is-primary{background:#bc4837;color:#fff0cc;border-color:#492720;box-shadow:0 0 0 2px #ecc08a,inset 0 2px 0 #ffd7b2,inset 0 -4px 0 #823225,0 4px 0 #47231e}
.tb-shell[data-orient] .tb-turn-control.is-auto{background:#a44136;color:#fff0cc;border-color:#492720;box-shadow:0 0 0 2px #d6a078,inset 0 2px 0 #efb899,inset 0 -4px 0 #713127,0 4px 0 #3c2420}
.tb-shell[data-orient] .tb-turn-control:disabled{opacity:.6;cursor:default;filter:saturate(.65)}
.tb-shell[data-orient] .tb-turn-control:not(:disabled):active{translate:0 2px;filter:brightness(.94)}
.tb-shell[data-orient] .tb-turn-control b{font:1000 13px/1 var(--sans);letter-spacing:.03em;white-space:nowrap}
.tb-shell[data-orient] .tb-turn-control small{font:800 9px/1 var(--sans);letter-spacing:0;opacity:.8;white-space:nowrap}
.tb-shell[data-orient] .tb-strip{grid-area:strip;min-width:0;min-height:43px;padding:0 2px;gap:0;align-self:end}
.tb-shell[data-orient] .tb-strip-main{width:100%;min-width:0;align-items:stretch;gap:2px}
.tb-shell[data-orient] .tb-say-row{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:29px;gap:5px;justify-content:center}
.tb-shell[data-orient] .tb-strip .tb-say{display:grid;grid-template-rows:auto auto;flex:1 1 100%;max-width:100%;min-width:0;margin:0;white-space:normal;line-height:1.25;-webkit-line-clamp:unset;text-wrap:initial;overflow:hidden}
.tb-shell[data-orient] .tb-strip .tb-prompt-title,.tb-shell[data-orient] .tb-strip .tb-prompt-action{display:block;min-width:0;margin:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-shell[data-orient] .tb-strip .tb-prompt-title{font:900 12px/1.25 var(--sans);color:#f0ddb1;letter-spacing:.02em}
.tb-shell[data-orient] .tb-strip .tb-prompt-action{font:600 11px/1.3 var(--sans);color:#c3d0be}
.tb-shell[data-orient] .tb-strip.is-mine .tb-prompt-title,.tb-shell[data-orient] .tb-strip.is-armed .tb-prompt-title{color:#edca7d}
.tb-shell[data-orient] .tb-strip.is-response .tb-prompt-title,.tb-shell[data-orient] .tb-strip.is-incoming .tb-prompt-title{color:#ffb4a2}
.tb-shell[data-orient] .tb-strip.is-auto .tb-prompt-title{color:#8ac8b7}
.tb-shell[data-orient] .tb-pills{grid-column:2;flex-wrap:wrap;justify-content:center;overflow:visible;max-width:min(180px,40vw)}
.tb-shell[data-orient] .tb-line{width:100%;max-width:none;align-self:stretch;height:12px}
.tb-shell[data-orient] .tb-clock{height:12px;padding-right:27px}
.tb-shell[data-orient] .tb-clock:before{right:27px;height:3px;background:repeating-linear-gradient(90deg,#d4d5bd36 0 6px,transparent 6px 10px)}
.tb-shell[data-orient] .tb-clock .tb-clock-fill{left:calc((100% - 27px) * (1 - var(--clock-progress,1)) / 2);width:calc((100% - 27px) * var(--clock-progress,1));height:3px;margin-top:-1.5px;background-size:10px 100%;filter:none}
.tb-shell[data-orient] .tb-clock b{font:800 11px/1 var(--mono);width:24px;color:#e8ddbd}
.tb-shell[data-orient] .tb-hand-cards{padding-top:12px;padding-bottom:0}
.tb-shell[data-orient] .tb-skills{display:flex;flex-direction:column;width:100%;max-width:none;min-height:0;gap:4px;--bar-h:38px}
.tb-shell[data-orient] .tb-skills.has-two-active{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,var(--bar-h));--bar-h:38px}
.tb-shell[data-orient] .tb-skills.has-two-active .is-passive,.tb-shell[data-orient] .tb-skills.has-two-active .is-break,.tb-shell[data-orient] .tb-skills.has-two-active .is-rest{grid-column:1/-1}
.tb-shell[data-orient] .tb-skills .tb-skillbar{--bookmark:#326b49;--bookmark-edge:#86bb87;position:relative;display:flex;align-items:center;min-width:0;width:100%;height:var(--bar-h);min-height:var(--bar-h);gap:4px;padding:3px 11px 3px 6px;border:0;border-radius:0;clip-path:polygon(7px 0,100% 0,calc(100% - 7px) 100%,0 100%);background:linear-gradient(90deg,#152721 0 3px,transparent 3px),linear-gradient(0deg,#13221d44 0 3px,transparent 3px),var(--bookmark);box-shadow:inset 0 1px var(--bookmark-edge);color:#ffebc4;isolation:isolate;text-align:left;transition:filter .15s,translate .15s}
.tb-shell[data-orient] .tb-skills .tb-skillbar.is-passive{--bookmark:#555d5b;--bookmark-edge:#949c95}
.tb-shell[data-orient] .tb-skills .tb-skillbar.is-break,.tb-shell[data-orient] .tb-skills .tb-skillbar.is-rest{--bookmark:#9d3f37;--bookmark-edge:#d18a72}
.tb-shell[data-orient] .tb-skills .tb-skillbar .skill-kind{display:grid;place-items:center;flex:none;width:19px;height:22px;min-width:19px;min-height:22px;border:0;border-right:1px solid #f1dbad50;border-radius:0;padding:0 4px 0 0;background:transparent;box-shadow:none;color:#f5d7a4;font:800 9px/1 var(--sans);font-style:normal;letter-spacing:0;text-shadow:1px 1px #10231d}
.tb-shell[data-orient] .tb-skills .tb-skillbar b{display:block;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:#ffedcb;font:1000 italic 13px/1.15 var(--sans);letter-spacing:.02em;white-space:nowrap;text-shadow:1px 1px #132920,2px 2px #132920,3px 3px #13292088;-webkit-text-stroke:.15px #21332a;paint-order:stroke fill}
.tb-shell[data-orient] .tb-skills .tb-skillbar b.is-medium,.tb-shell[data-orient] .tb-skills .tb-skillbar b.is-long{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;font-size:11px;line-height:1.15;overflow-wrap:anywhere}
.tb-shell[data-orient] .tb-skills.has-two-active .is-active .skill-kind{display:none}
.tb-shell[data-orient] .tb-skills.has-two-active .is-active b{font-size:12px;text-align:center}
.tb-shell[data-orient] .tb-skills .tb-skillbar.can-use{filter:brightness(1.15);box-shadow:inset 0 0 0 1.5px #f2d49a,inset 0 -3px #61351f}
.tb-shell[data-orient] .tb-skills .tb-skillbar.is-break.is-on,.tb-shell[data-orient] .tb-skills .tb-skillbar.is-rest.is-on{--bookmark:#bc4837;--bookmark-edge:#efaa83}
.tb-shell[data-orient] .tb-skills .tb-skillbar.is-used,.tb-shell[data-orient] .tb-skills .tb-skillbar.is-locked{filter:brightness(.76);opacity:.8}
.tb-shell[data-orient] .tb-skills.is-idle .tb-skillbar{opacity:.72}
.tb-shell[data-orient] .tb-skills .tb-skillbar:focus-visible{outline:2px solid #ffe2a0;outline-offset:-3px;filter:brightness(1.2)}
.tb-shell[data-orient] .tb-skills .tb-skillbar:active{translate:-2px 1px}
.tb-shell[data-orient] .tb-event-glyph{font:900 13px/1 var(--sans);letter-spacing:0;text-shadow:1px 1px #071613}
.tb-shell[data-orient="port"] .tb-equip{gap:4px}
.tb-shell[data-orient="port"] .tb-equip .equip-slot{width:clamp(28px,calc(var(--card-w) * .36),40px)}
.tb-shell[data-orient] .tb-card{isolation:isolate;outline:2px solid transparent;outline-offset:-2px}
.tb-shell[data-orient] .tb-seat:focus-visible .tb-card,.tb-shell[data-orient] .tb-card:focus-visible{outline:3px solid #ffe2a0;outline-offset:-3px}
.tb-shell[data-orient] .tb-seat.is-active .tb-card,.tb-shell[data-orient] .tb-me.is-turn-owner .tb-card{outline-color:#f2c66d;box-shadow:inset 0 0 0 2px #f2c66d,0 3px 8px #0006}
.tb-shell[data-orient] .tb-seat.is-responding .tb-card,.tb-shell[data-orient] .tb-me.is-acting:not(.is-turn-owner) .tb-card{outline-color:#ffa06e;box-shadow:inset 0 0 0 2px #ffa06e,0 3px 8px #0006}
.tb-shell[data-orient] .tb-seatno{box-shadow:none;isolation:isolate}
.tb-shell[data-orient] .taunt-bubble{display:none!important}
.tb-shell[data-orient] .playing-card.is-target-locked{filter:grayscale(.8) brightness(.55);opacity:.55;cursor:default;pointer-events:none}
.tb-shell[data-orient] .playing-card.is-picker-locked{filter:grayscale(.7) brightness(.6);opacity:.6;cursor:default;pointer-events:none}
.tb-shell[data-orient] .playing-card.is-pickable{outline:3px solid #edcc83;outline-offset:-4px;filter:none}
.tb-shell[data-orient] .playing-card.is-coffee-boost{box-shadow:inset 0 0 0 2px #b65b32,0 0 10px #dd9b4255}
.tb-shell[data-targeting="true"] .tb-cardbox:has(.is-target-locked):hover{transform:none;z-index:auto}
.tb-side-mark{position:absolute;right:max(10px,env(safe-area-inset-right));top:max(4px,env(safe-area-inset-top));z-index:12;pointer-events:none;font:1000 italic clamp(17px,2.4vw,28px)/1 var(--sans);letter-spacing:.08em;color:#dbc38c;-webkit-text-stroke:.6px #102a24;paint-order:stroke fill;text-shadow:1px 2px #102a24,3px 3px #102a24}
.tb-side-mark[data-side="labor"]{color:#8ac8b7}.tb-side-mark[data-side="capital"]{color:#edac79}.tb-side-mark[data-side="merchant"]{color:#c5a6df}
.tb-shell[data-orient="land"] .tb-side{gap:16px;padding-top:12px;padding-bottom:8px}
.tb-shell[data-orient="land"][data-seats="5"] .tb-side.is-left[data-n="1"]>.tb-seat:first-child{margin-top:calc(var(--C) + 16px)}
.tb-shell[data-orient="port"] .tb-stage-free{padding-top:10px}
.tb-shell[data-orient="land"] .tb-stage-free{padding-top:8px}
/* Phone table cards shrink as a whole; title typography remains readable. */
@media(max-width:600px),(orientation:landscape) and (max-height:500px){
 .tb-shell .tb-pcard{width:calc(var(--pcard-w) * .9)}
 .tb-shell .tb-pcard+.tb-pcard{margin-left:calc(var(--pcard-w) * -.162)}
 .tb-shell .arena-effects .fx-fly-card{width:calc(var(--pcard-w) * .9)}
 .tb-shell .tb-pile{translate:0 12px}
}
/* Short landscape phones have a top avatar row inside the stage. Anchor the
   resting cards below it rather than centring both rows in the same space. */
@media(orientation:landscape) and (max-height:500px){
 .tb-shell[data-orient="land"] .tb-stage-free{align-items:flex-start;padding-top:calc(var(--C) + 28px)}
 .tb-shell[data-orient="land"] .tb-pile{translate:0 0}
}
.touch-tip button[data-do]{pointer-events:auto}
/* Miniatures share the same concrete object in both normal and signature frames. */
.tb-shell .tb-equip .equip-art svg{width:88%;height:88%;max-width:none;max-height:none;filter:drop-shadow(0 1px 1px #0005)}
.tb-shell .tb-equip .equip-slot.occupied{background:color-mix(in srgb,var(--slot-color) 25%,#0d2827);overflow:visible}
.tb-shell .tb-equip .equip-slot.occupied .equip-slot-glyph{font-size:7px;left:1px;top:1px;z-index:2;line-height:1;background:#0d2827ca;padding:1px;border-radius:2px}
.tb-shell .gear-chip{background:color-mix(in srgb,var(--slot-color) 24%,#102b2b);border:1px solid color-mix(in srgb,var(--slot-color) 65%,#d8d0ad)}
.tb-shell .gear-chip svg{width:96%;height:96%}
.tb-shell .equip-slot.is-signature,.tb-shell .gear-chip.is-signature{border-color:#ffe28c!important;background:#493c1a!important;box-shadow:0 0 0 1px #c89636,0 0 12px #efbb4f85,inset 0 0 8px #eac56838}
.equipment-quick-icon>svg,.file-chip>svg{width:94%;height:94%;max-width:52px;max-height:52px;flex:none}
/* Public announcements use the visual viewport centre and keep their own scroll. */
.modal-backdrop.is-centered{align-items:center!important;justify-content:center;padding-block:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-bottom));}
.modal-backdrop.is-centered .event-announcement-modal{display:flex;flex-direction:column;max-height:calc(100svh - 28px);overflow:hidden}
.event-announcement-modal .modal-header{flex:none}
.event-announcement-modal .modal-content{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.modal-backdrop.is-centered .outcome-modal{height:auto;max-height:calc(100svh - 28px);min-height:0}
.modal-backdrop.is-centered .outcome-modal .modal-content{max-height:calc(100svh - 110px)}
/* Compact private opening controls stay immediately above the real hand. */
.tb-shell .opening-prelude{display:flex;flex-direction:column;align-items:stretch;gap:3px;padding:2px 0 0}
.tb-shell .opening-prelude .opening-assessment{display:flex;align-items:center;width:100%;min-width:0;gap:9px;padding:3px 5px;background:#102c2ac9;color:#efe0bc;border:1px solid #bfa66a55;border-radius:6px;box-shadow:none}
.tb-shell .opening-prelude .opening-score{display:flex;min-width:42px;gap:2px;align-items:baseline}
.tb-shell .opening-prelude .opening-score strong{font:900 27px/1 var(--mono);letter-spacing:-1px;color:#edcc85}
.tb-shell .opening-prelude .opening-score>span{font-size:9px;color:#bfccba}
.tb-shell .opening-prelude .opening-verdict{flex:1;min-width:0}
.tb-shell .opening-prelude .opening-verdict>b{display:block;color:#eddbad;font-size:12px;line-height:1.25}
.tb-shell .opening-prelude .opening-verdict small{display:block;font-size:9px;line-height:1.35;color:#aec5b5}
.tb-shell .opening-prelude .opening-verdict p{font-size:10px;line-height:1.3;margin:1px 0 0;color:#d1ddcb}
.tb-shell .opening-refresh{display:grid;grid-template-columns:25px auto;grid-template-rows:20px 13px;align-items:center;gap:0 3px;min-width:74px;min-height:44px;flex:none;padding:3px 7px;border:1px solid #f1d294;border-radius:6px;background:#e3c17e;color:#153d32;cursor:pointer;box-shadow:0 2px 0 #6e512d}
.tb-shell .opening-refresh>svg{grid-row:1/3;width:25px;height:25px;transition:rotate .3s ease-out}
.tb-shell .opening-refresh>span{font:900 11px/1 var(--sans);align-self:end}
.tb-shell .opening-refresh>small{font:700 9px/1 var(--sans);opacity:.75;align-self:start;margin-top:2px}
.tb-shell .opening-refresh:hover>svg{rotate:55deg}
.tb-shell .opening-refresh:active>svg{rotate:200deg}
.tb-shell .opening-refresh.is-spinning>svg{animation:opening-refresh-spin 850ms linear infinite}
.tb-shell .opening-refresh:disabled{opacity:.6;cursor:wait}
.tb-shell .opening-ready-badge{display:flex;align-items:center;gap:4px;padding:6px;font-size:11px;white-space:nowrap;color:#c4e2a8}
.tb-shell .opening-ready-badge>svg{width:14px;height:14px}
.tb-shell .opening-table-ready{max-width:calc(100% - 12px);display:grid;justify-items:center;gap:5px;padding:7px 9px;color:#e4c989;background:#0c2526c4;border:1px solid #c0a36538;border-radius:7px;text-align:center}
.tb-shell .opening-table-ready>b{font-size:15px;line-height:1.1}
.tb-shell .opening-table-ready>span{font-size:10px;color:#b7c8b6}
.tb-shell .opening-table-ready .opening-ready-seats{display:flex;flex-wrap:wrap;justify-content:center;max-width:200px;gap:3px}
.tb-shell .opening-table-ready .opening-ready-seats>span{height:23px;min-width:33px;padding:0 3px;font-size:9px}
.tb-shell.is-opening .tb-skills{opacity:.55}
.tb-shell.is-opening .tb-stage-free{padding:6px 0 0}
.tb-shell.is-opening .tb-hand .playing-card.is-waiting{filter:none;opacity:1}
.tb-shell .opening-refresh:focus-visible,.tb-shell .tb-turn-control:focus-visible{outline:3px solid #fff0b7;outline-offset:3px}
@keyframes opening-refresh-spin{to{rotate:360deg}}
@media(orientation:portrait) and (max-width:350px){
 .tb-shell[data-orient="port"] .tb-console{grid-template-columns:auto minmax(48px,1fr) 122px;gap:3px 4px;padding-inline:5px}
 .tb-shell[data-orient="port"] .tb-turn-control{width:48px;height:48px;min-height:48px}
 .tb-shell .opening-prelude .opening-verdict small{font-size:8px}
 .tb-shell .opening-refresh{min-width:68px;padding-inline:4px}
}
@media(orientation:landscape) and (max-height:440px){
 .tb-shell[data-orient="land"] .tb-console{grid-template-columns:auto minmax(0,1fr) 144px;gap:3px 7px;padding-top:4px;padding-bottom:3px}
 .tb-shell[data-orient="land"] .tb-skills{width:100%;min-height:0;--bar-h:38px}
 .tb-shell[data-orient="land"] .tb-skills.has-two-active{--bar-h:38px}
 .tb-shell[data-orient="land"] .tb-turn-control{width:44px;height:44px;min-height:44px;padding:4px 2px;gap:2px}
 .tb-shell[data-orient="land"] .tb-turn-control b{font-size:12px}
 .tb-shell[data-orient="land"] .tb-turn-control small{font-size:8px}
 .tb-shell[data-orient="land"] .tb-strip{min-height:34px}
 .tb-shell[data-orient="land"] .tb-hand-cards{padding-top:10px}
 .tb-shell[data-orient="land"] .tb-say b{font-size:11px}
 .tb-shell[data-orient="land"] .tb-say span{font-size:10px}
 .tb-shell .opening-prelude .opening-verdict>b{font-size:11px}
 .tb-shell .opening-prelude .opening-verdict small{font-size:8px}
 .tb-shell .opening-prelude .opening-verdict p{font-size:9px}
 .tb-shell .opening-prelude .opening-score strong{font-size:23px}
 .tb-shell .opening-prelude .opening-assessment{gap:5px;padding-block:2px}
 .tb-shell.is-opening .opening-refresh{min-height:38px;grid-template-rows:18px 12px}
 .tb-shell.is-opening[data-orient="land"] .tb-hand-cards{padding-top:0}
}
@media(min-width:700px) and (min-height:700px){
 .tb-shell[data-orient="port"] .tb-console{grid-template-columns:auto minmax(76px,1fr) 190px;gap:7px 12px;padding-inline:14px}
 .tb-shell[data-orient] .tb-turn-control{width:64px;height:64px;min-height:64px}
 .tb-shell[data-orient] .tb-round,.tb-shell[data-orient] .tb-menu,.tb-shell[data-orient] .tb-event-icon{width:36px;height:36px;min-height:36px}
 .tb-shell[data-orient] .tb-round b{font-size:19px}
 .tb-shell[data-orient] .tb-round i{-webkit-mask:radial-gradient(circle,transparent 15.5px,#000 16px);mask:radial-gradient(circle,transparent 15.5px,#000 16px)}
 .tb-shell[data-orient] .tb-menu svg,.tb-shell[data-orient] .tb-event-icon svg{width:18px;height:18px}
 .tb-shell[data-orient] .tb-skills{--bar-h:40px}
 .tb-shell[data-orient] .tb-skills.has-two-active{--bar-h:40px}
 .tb-shell[data-orient] .tb-skills .tb-skillbar b{font-size:17px}
 .tb-shell[data-orient] .tb-skills .tb-skillbar b.is-medium,.tb-shell[data-orient] .tb-skills .tb-skillbar b.is-long{font-size:14px}
 .tb-shell[data-orient] .tb-skills.has-two-active .is-active b{font-size:15px}
 .tb-shell[data-orient] .tb-turn-control b{font-size:16px}
 .tb-shell[data-orient] .tb-turn-control small{font-size:11px}
 .tb-shell[data-orient] .tb-strip .tb-prompt-title{font-size:16px}
 .tb-shell[data-orient] .tb-strip .tb-prompt-action{font-size:14px}
 .tb-shell .opening-table-ready>b{font-size:20px}
 .tb-shell .opening-table-ready>span{font-size:13px}
 .tb-shell .opening-table-ready .opening-ready-seats{max-width:300px}
 .tb-shell .opening-table-ready .opening-ready-seats>span{height:31px;min-width:43px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){.tb-shell .opening-refresh>svg{animation:none!important;transition:none;rotate:0deg!important}}

.tb-shell.is-opening[data-orient="port"][data-port-wings="true"] .opening-table-ready{width:calc(100% - var(--card-w) * 2 - 30px);max-width:230px;padding-inline:4px}
.tb-shell.is-opening[data-orient="port"][data-port-wings="true"] .opening-ready-seats>span{min-width:29px;font-size:8px}

/* v0.19.8 phone controls: one avatar-height stack, with the tools outside it.
   Own portraits may grow to 100px on short screens; opponents keep the shared C. */
@media(max-width:699px),(max-height:699px){
 .tb-shell[data-orient] .tb-console{--me-C:max(100px,calc(var(--card-w) * 4 / 3))}
 .tb-shell[data-orient] .tb-me{--C:var(--me-C);--card-w:calc(var(--me-C) * .75)}
 .tb-shell[data-orient] .tb-me.is-turn-owner .tb-card{transform:none}
 .tb-shell[data-orient] .tb-skill-zone{position:relative;height:var(--me-C);gap:0}
 .tb-shell[data-orient] .tb-sys{position:absolute;right:0;bottom:calc(100% + 6px);height:28px;min-height:28px}
 .tb-shell[data-orient] .tb-skills{height:var(--me-C);min-height:var(--me-C);max-height:var(--me-C);--bar-h:calc((var(--me-C) - 8px) / 3);gap:4px;flex:none;padding:0}
 .tb-shell[data-orient] .tb-skills.has-two-active{--bar-h:calc((var(--me-C) - 8px) / 3);grid-template-rows:repeat(3,var(--bar-h))}
 .tb-shell[data-orient] .tb-skills .tb-skillbar{--bookmark:#326b49;--bookmark-edge:#86bb87;--skill-cut:10px;height:var(--bar-h);min-height:var(--bar-h);padding:3px 11px 3px 7px;border-radius:0;clip-path:polygon(var(--skill-cut) 0,100% 0,calc(100% - var(--skill-cut)) 100%,0 100%)}
 .tb-shell[data-orient] .tb-skills .tb-skillbar.is-passive{--bookmark:#555d5b;--bookmark-edge:#949c95}
 .tb-shell[data-orient] .tb-skills .tb-skillbar.is-break,.tb-shell[data-orient] .tb-skills .tb-skillbar.is-rest{--bookmark:#9d3f37;--bookmark-edge:#d18a72}
 .tb-shell[data-orient] .tb-skills .tb-skillbar.is-break.is-on{--bookmark:#bc4837;--bookmark-edge:#efaa83}
 .tb-shell[data-orient] .tb-skills .tb-skillbar.is-used,.tb-shell[data-orient] .tb-skills .tb-skillbar.is-locked,.tb-shell[data-orient] .tb-skills .tb-skillbar.is-active:not(.can-use){filter:brightness(.76);opacity:.8}
 .tb-shell[data-orient] .tb-skills .tb-skillbar.can-use{filter:brightness(1.1);opacity:1;box-shadow:inset 0 0 0 1.5px #efd7a6,inset 0 -3px #173b2955}
 .tb-shell[data-orient="port"] .tb-toprow{justify-content:space-between;gap:0;padding-inline:10px}
 .tb-shell[data-orient="land"] .tb-topseat.is-split{padding-inline:10px}
 .tb-shell[data-orient="land"] .tb-side{gap:8px;padding-top:12px;padding-bottom:4px;overflow-y:auto;scrollbar-width:none}
 .tb-shell[data-orient="land"] .tb-side::-webkit-scrollbar{display:none}
 .tb-shell[data-orient="land"][data-seats="5"] .tb-side.is-left[data-n="1"]>.tb-seat:first-child{margin-top:calc(var(--C) + 8px)}
}
@media(orientation:landscape) and (max-height:699px){
 .tb-shell[data-orient="land"] .tb-skills .tb-skillbar b.is-medium,.tb-shell[data-orient="land"] .tb-skills .tb-skillbar b.is-long{font-size:10px;line-height:1.1}
 .tb-shell[data-orient="land"] .tb-skills .tb-skillbar .skill-kind{width:18px;min-width:18px;height:20px;min-height:20px;font-size:8px}
}

/* v0.20 — printed faction seals and three readable comic skill tabs.
   Colour carries the category; names carry the hierarchy. No extra button box. */
.faction-brush{--faction-paper:#aab4a6;position:relative;display:inline-grid;place-items:center;flex:none;width:30px;height:30px;padding:0!important;border:0!important;border-radius:0!important;background:var(--faction-paper)!important;color:#152623!important;box-shadow:none!important;clip-path:polygon(16% 0,100% 0,84% 100%,0 100%);isolation:isolate;vertical-align:middle;line-height:1!important;overflow:hidden;letter-spacing:0!important}
.faction-brush[data-faction="labor"]{--faction-paper:#73aa8b}
.faction-brush[data-faction="capital"]{--faction-paper:#da7755}
.faction-brush[data-faction="merchant"]{--faction-paper:#d2ae5d}
.faction-brush::before{content:"";position:absolute;inset:2px 4px;border-top:1px solid #f4e6c778;border-bottom:2px solid #15262333;transform:skewX(-9deg);pointer-events:none}
.faction-brush>b{position:relative;z-index:1;display:block;padding:0 2px 1px 0;font:1000 italic 23px/.95 var(--sans,sans-serif);color:#152623!important;-webkit-text-stroke:.3px #152623;text-shadow:1px 1px #f5e2b455;transform:rotate(-7deg)}
.tb-shell .tb-faction.faction-brush{position:absolute;top:3px;right:2px;z-index:3;width:25px;height:26px;font-size:inherit;outline:0;margin:0}
.tb-shell .tb-faction.faction-brush>b{font-size:21px}
.tb-shell .tb-faction.faction-brush.is-revealed::before{border-bottom-color:#15262388;border-top-color:#fff1ca}
.role-faction.faction-brush{margin-left:7px;width:32px;height:30px}
.role-option{position:relative}
.role-option .role-option-faction.faction-brush{position:absolute;top:2px;right:2px;z-index:2;width:20px;height:21px}
.role-option .role-option-faction.faction-brush>b{font-size:17px}

.tb-shell[data-orient] .tb-skills .tb-skillbar{--bookmark:#69976b;--bookmark-edge:#b5c992;--skill-cut:10px;position:relative;gap:4px;padding:3px 12px 4px 14px;border:0;border-radius:0;clip-path:polygon(var(--skill-cut) 0,100% 0,calc(100% - var(--skill-cut)) 100%,0 100%);background:var(--bookmark);color:#152623;box-shadow:inset 0 1px 0 #e9ddb79c,inset 0 -3px 0 #15262340;isolation:isolate;text-align:left;transition:filter .12s,translate .12s,opacity .12s}
.tb-shell[data-orient] .tb-skills .tb-skillbar::before{content:"";position:absolute;left:5px;top:4px;bottom:5px;width:3px;background:#15262366;transform:skewX(-16deg);pointer-events:none}
.tb-shell[data-orient] .tb-skills .tb-skillbar::after{content:"";position:absolute;right:11px;top:3px;width:26px;border-top:1px solid #f4e6c74a;transform:skewX(-16deg);pointer-events:none}
.tb-shell[data-orient] .tb-skills .tb-skillbar.is-passive{--bookmark:#969d91;--bookmark-edge:#c4cbb9}
.tb-shell[data-orient] .tb-skills .tb-skillbar.is-break,.tb-shell[data-orient] .tb-skills .tb-skillbar.is-rest{--bookmark:#c26753;--bookmark-edge:#e4ad7e}
.tb-shell[data-orient] .tb-skills .tb-skillbar.is-break.is-on,.tb-shell[data-orient] .tb-skills .tb-skillbar.is-rest.is-on{--bookmark:#de775b;--bookmark-edge:#f1ba8a}
.tb-shell[data-orient] .tb-skills .tb-skillbar .skill-kind{display:none}
.tb-shell[data-orient] .tb-skills .tb-skillbar b{display:block;min-width:0;flex:1 1 auto;font:1000 italic 16px/1.05 var(--sans,sans-serif);letter-spacing:-.015em;white-space:nowrap;color:#152623;text-shadow:1px 1px #f4e6c76b;-webkit-text-stroke:.2px #152623;overflow:hidden;text-overflow:ellipsis}
.tb-shell[data-orient] .tb-skills .tb-skillbar b.is-medium,.tb-shell[data-orient] .tb-skills .tb-skillbar b.is-long{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;font-size:12px;line-height:1.1;overflow-wrap:anywhere}
.tb-shell[data-orient] .tb-skills.has-two-active .is-active b{font-size:12px;text-align:center}
.tb-shell[data-orient] .tb-skills.has-two-active .is-active{padding-inline:10px}
.tb-shell[data-orient] .tb-skills .skill-status{flex:none;align-self:center;padding-left:3px;font:700 9px/1 var(--sans,sans-serif);color:#183c2d;white-space:nowrap;opacity:.8}
.tb-shell[data-orient] .tb-skills .tb-skillbar.can-use{filter:none;opacity:1;box-shadow:inset 0 1px 0 #fff0ca,inset 0 -3px 0 #15262366,inset 0 0 0 1px #f5e0ad}
.tb-shell[data-orient] .tb-skills .tb-skillbar.is-used,.tb-shell[data-orient] .tb-skills .tb-skillbar.is-locked,.tb-shell[data-orient] .tb-skills .tb-skillbar.is-active:not(.can-use){filter:brightness(.82) saturate(.88);opacity:.86}
.tb-shell[data-orient] .tb-skills.is-idle .tb-skillbar{opacity:.84}
.tb-shell[data-orient] .tb-skills .tb-skillbar:focus-visible{outline:2px solid #fff0c3;outline-offset:-4px;filter:brightness(1.12)}
.tb-shell[data-orient] .tb-skills .tb-skillbar:active{translate:-1px 1px}
@media(max-width:699px),(max-height:699px){
 .tb-shell[data-orient] .tb-skills .tb-skillbar{padding-top:2px;padding-bottom:3px}
 .tb-shell[data-orient] .tb-skills .tb-skillbar b{font-size:14px}
 .tb-shell[data-orient] .tb-skills .tb-skillbar b.is-medium,.tb-shell[data-orient] .tb-skills .tb-skillbar b.is-long{font-size:11px}
 .tb-shell[data-orient] .tb-skills.has-two-active .is-active b{font-size:11px}
 .tb-shell .tb-faction.faction-brush{width:22px;height:24px}
 .tb-shell .tb-faction.faction-brush>b{font-size:19px}
}
@media(min-width:1000px) and (min-height:700px){
 .tb-shell .tb-faction.faction-brush{width:29px;height:31px}
 .tb-shell .tb-faction.faction-brush>b{font-size:25px}
 .tb-shell[data-orient] .tb-skills .tb-skillbar b{font-size:17px}
}
@media(prefers-reduced-motion:reduce){.tb-shell[data-orient] .tb-skills .tb-skillbar{transition:none}}
/* The signature strip extends 7px below the own portrait. In short landscape
   the old 3px dock inset cut that strip (and the bottom shadows) at the screen
   edge. Reserve the real paint overflow without shrinking the avatar or hand. */
@media(orientation:landscape) and (max-height:440px){
 .tb-shell[data-orient="land"] .tb-console{padding-bottom:12px}
}

/* v0.20.1 — one compact command row and a centred portrait workstation.
   Rules, hand sizing and the transparent comic theatre are unchanged. */
.tb-shell .tb-faction.faction-brush{width:20px;height:21px}
.tb-shell .tb-faction.faction-brush>b{font-size:17px}
.role-faction.faction-brush{width:26px;height:24px}
.role-faction.faction-brush>b{font-size:19px}
.role-option .role-option-faction.faction-brush{width:16px;height:17px}
.role-option .role-option-faction.faction-brush>b{font-size:14px}
.tb-shell[data-orient] .tb-strip-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,.95fr);align-items:center;gap:6px;width:100%}
.tb-shell[data-orient] .tb-control-line{display:flex;align-items:center;gap:8px;min-width:0;width:100%;min-height:42px}
.tb-shell[data-orient] .tb-control-line>.tb-line{flex:1 1 auto;min-width:0;width:auto;margin:0;display:flex;align-items:center;align-self:center;height:42px;min-height:42px}
.tb-shell[data-orient] .tb-control-line>.tb-command-orb{grid-area:auto;display:grid;place-items:center;flex:none;align-self:center;justify-self:auto;min-width:0;width:42px;padding:0;margin:0}
.tb-shell[data-orient] .tb-control-line .tb-turn-control{width:42px;height:42px;min-height:42px;padding:4px 1px;gap:2px}
.tb-shell[data-orient] .tb-control-line .tb-turn-control b{font-size:11px}
.tb-shell[data-orient] .tb-control-line .tb-turn-control small{font-size:8px}
.tb-shell[data-orient] .tb-strip{min-height:42px;padding-inline:7px}
.tb-shell[data-orient] .tb-strip .tb-say-row{min-height:28px;gap:4px}
.tb-shell[data-orient] .opening-prelude .tb-control-line{width:100%}
.tb-shell[data-orient] .opening-prelude{padding-inline:8px}
.tb-shell[data-orient] .tb-sys-fullscreen{width:28px;height:28px;min-height:28px;flex:none;padding:0;display:grid;place-items:center;border:1px solid #bfa66a70;border-radius:50%;background:#0d2525;color:#dbc38c}
.tb-shell[data-orient] .tb-sys-fullscreen>svg{width:14px;height:14px}
.tb-shell[data-orient] .tb-skills{filter:drop-shadow(0 3px 0 #0a201c)}
.tb-shell[data-orient] .tb-skills .tb-skillbar{--skill-cut:9px;box-shadow:inset 0 1px #f3e3b891,inset 0 -3px #15262366;padding-left:13px;padding-right:15px}
.tb-shell[data-orient] .tb-skills .tb-skillbar b{color:#f4e2b9;-webkit-text-stroke:.4px #152623;paint-order:stroke fill;text-shadow:1px 1px #152623,2px 2px #152623}
.tb-shell[data-orient] .tb-skills .tb-skillbar.can-use{box-shadow:inset 0 1px #fff0c7,inset 0 -3px #1526238c,inset 0 0 0 1px #f2d59b}
.tb-shell[data-orient="land"] .tb-console{grid-template-columns:auto minmax(0,1fr) 128px;grid-template-rows:auto auto;grid-template-areas:"me strip skills" "me hand skills";padding-right:0}
.tb-shell[data-orient="land"] .tb-strip{padding-left:2px;padding-right:8px}
.tb-shell[data-orient="land"] .tb-skill-zone{justify-self:end;width:128px}
.tb-shell[data-orient="land"] .tb-skills .tb-skillbar{width:calc(100% + 9px);padding-right:24px}
.tb-shell[data-orient="land"] .tb-me{gap:4px}
.tb-shell[data-orient="land"] .tb-equip .equip-slot{width:clamp(44px,calc(var(--card-w) * .42),58px);min-width:44px}
.tb-shell[data-orient="port"] .tb-console{--hud-face-w:calc(var(--me-C) * .75);grid-template-columns:minmax(0,1fr) var(--hud-face-w) minmax(0,1fr);grid-template-rows:var(--me-C) auto auto;grid-template-areas:"me me skills" "strip strip strip" "hand hand hand";gap:8px 0;padding:8px 0 4px}
.tb-shell[data-orient="port"] .tb-me{grid-column:1/-1;grid-row:1;display:grid;grid-template-columns:minmax(0,1fr) var(--hud-face-w) minmax(0,1fr);grid-template-rows:var(--me-C);align-items:end;width:100%;height:var(--me-C);gap:0;pointer-events:none}
.tb-shell[data-orient="port"] .tb-me>.self-portrait{grid-column:2;grid-row:1;justify-self:center;pointer-events:auto}
.tb-shell[data-orient="port"] .tb-me>.tb-equip{grid-column:1;grid-row:1;justify-self:start;margin-left:10px;width:clamp(68px,22vw,104px);pointer-events:auto}
.tb-shell[data-orient="port"] .tb-equip .equip-slot{width:100%;height:calc((var(--me-C) - 8px) / 3);border-radius:3px}
.tb-shell[data-orient="port"] .tb-equip .equip-art{max-width:70px;justify-self:center}
.tb-shell[data-orient="port"] .tb-skill-zone{grid-column:3;grid-row:1;position:relative;z-index:2;justify-self:end;align-self:end;width:min(100%,clamp(104px,30vw,156px));height:var(--me-C)}
.tb-shell[data-orient="port"] .tb-skills{height:var(--me-C);min-height:var(--me-C);max-height:var(--me-C);--bar-h:calc((var(--me-C) - 8px) / 3)}
.tb-shell[data-orient="port"] .tb-skills.has-two-active{--bar-h:calc((var(--me-C) - 8px) / 3);grid-template-rows:repeat(3,var(--bar-h))}
.tb-shell[data-orient="port"] .tb-skills .tb-skillbar{width:calc(100% + 9px);padding-right:24px}
.tb-shell[data-orient="port"] .tb-skills.has-two-active .is-active{width:100%;padding-right:10px;padding-left:10px}
.tb-shell[data-orient] .tb-sys{position:absolute;right:4px;bottom:calc(100% + 6px);width:max-content;gap:3px}
.tb-shell[data-orient="port"] .tb-hand{padding-inline:5px}
/* Portrait prompts never share a narrow column with response/ghost pills.
   Keep two readable text lines, one compact options row when needed, then
   a full-width clock whose end/AI button remains on its right. */
.tb-shell[data-orient="port"] .tb-strip-main{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;gap:3px}
.tb-shell[data-orient="port"] .tb-strip .tb-say-row{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:3px;width:100%;min-width:0}
.tb-shell[data-orient="port"] .tb-strip .tb-say{flex:none;width:100%;max-width:none;min-width:0;margin:0}
.tb-shell[data-orient="port"] .tb-strip .tb-pills{grid-column:auto;display:flex;flex:none;align-self:stretch;align-items:center;justify-content:center;flex-wrap:nowrap;gap:5px;width:100%;min-width:0;max-width:none;min-height:28px;max-height:28px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;white-space:nowrap}
.tb-shell[data-orient="port"] .tb-strip .tb-pills::-webkit-scrollbar{display:none}
.tb-shell[data-orient="port"] .tb-strip .tb-pills .tb-pill{flex:none;min-height:28px;height:28px;padding:0 9px;font-size:11px;box-shadow:none}
.tb-shell[data-orient="port"] .tb-control-line{width:100%;min-width:0}
.tb-shell[data-orient="port"] .tb-console:has(.tb-me.status-out) .tb-hand-cards{padding-top:0}
.tb-shell[data-orient="port"] .tb-console:has(.tb-me.status-out) .tb-hand-empty{height:34px;min-height:34px;padding:3px 8px;font-size:11px}
@media(max-width:699px),(max-height:699px){
 .tb-shell .tb-faction.faction-brush{width:18px;height:19px}
 .tb-shell .tb-faction.faction-brush>b{font-size:15px}
}
@media(orientation:landscape) and (max-height:500px){
 .tb-shell[data-orient="land"]{--C:clamp(82px,24dvh,110px)!important;--card-w:calc(var(--C) * .75)!important;--side-w:calc(var(--card-w) + 20px)!important}
 .tb-shell[data-orient="land"] .tb-console{grid-template-columns:auto minmax(0,1fr) 128px;grid-template-rows:auto auto;padding-top:3px;padding-bottom:12px;gap:3px 7px}
 .tb-shell[data-orient="land"] .tb-strip-main{grid-template-columns:minmax(0,1fr) minmax(130px,1.15fr);gap:7px}
 .tb-shell[data-orient="land"] .tb-say-row{min-height:28px}
 .tb-shell[data-orient="land"] .tb-side{padding-top:12px;padding-bottom:8px;gap:8px}
 .tb-shell[data-orient="land"] .tb-topseat.is-split{padding-top:16px}
 .tb-shell[data-orient="land"] .tb-stage-free{padding-top:calc(var(--C) + 22px)}
}
@media(min-width:700px) and (min-height:700px){
 .tb-shell[data-orient] .tb-console{--me-C:var(--C)}
 .tb-shell[data-orient="port"] .tb-me{--C:var(--me-C);--card-w:var(--hud-face-w)}
 .tb-shell[data-orient] .tb-control-line{min-height:50px}
 .tb-shell[data-orient] .tb-control-line>.tb-command-orb{width:50px}
 .tb-shell[data-orient] .tb-control-line .tb-turn-control{width:48px;height:48px;min-height:48px}
 .tb-shell[data-orient] .tb-control-line .tb-turn-control b{font-size:13px}
 .tb-shell[data-orient] .tb-control-line .tb-turn-control small{font-size:9px}
 .tb-shell[data-orient] .tb-sys-fullscreen{width:36px;height:36px;min-height:36px}
 .tb-shell .tb-faction.faction-brush{width:23px;height:25px}
 .tb-shell .tb-faction.faction-brush>b{font-size:20px}
}

/* Horizontal prop labels, integrated print seals and lifted sticky notes. */
.faction-brush{--faction-accent:#697665;background:repeating-linear-gradient(0deg,#0000 0 3px,#19342c0b 3px 4px),#e4d3aa!important;border:1px solid #21382e80!important;clip-path:none;box-shadow:0 1px 0 #102b2066!important;transform:rotate(2deg)}
.faction-brush[data-faction="labor"]{--faction-accent:#466c53}
.faction-brush[data-faction="capital"]{--faction-accent:#a84e36}
.faction-brush[data-faction="merchant"]{--faction-accent:#92703c}
.faction-brush::before{inset:auto 2px 1px;height:2px;border:0;background:var(--faction-accent);transform:skewX(-16deg) rotate(-2deg);opacity:.95}
.faction-brush>b{font-family:var(--serif,"Songti SC","SimSun",serif);font-style:normal;font-weight:1000;text-shadow:none;-webkit-text-stroke:.2px #19342c;transform:rotate(-5deg)}
.tb-shell .tb-faction.faction-brush{top:2px;right:2px}
.tb-shell .tb-equip .equip-slot.occupied{border:1px solid #ad9b73;background:#d9c49c;overflow:visible;border-radius:2px;box-shadow:1px 2px 0 #0d241d80}
.tb-shell .tb-equip .equip-art{box-sizing:border-box;width:100%;height:100%;max-width:none;padding:0 2px 8px}
.tb-shell .tb-equip .equip-art svg{display:block;width:100%;height:100%;max-width:none;max-height:none;aspect-ratio:2/1;filter:none}
.tb-shell .tb-equip .equip-slot.is-signature .equip-art{padding-top:0}
.tb-shell .tb-equip .equip-slot small.equip-item-name{position:absolute;inset:auto 1px 1px;z-index:4;display:block;min-height:9px;padding:0 2px;background:#294335;color:#f2e2bd;text-align:center;font:800 8px/9px var(--sans);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:none}
.tb-shell .tb-equip .equip-slot.occupied .equip-slot-glyph{top:1px;left:1px;padding:0 1px;background:#213b2dcc;color:#e7d8b2;font-size:6px;line-height:8px;opacity:.8}
.tb-shell .tb-equip .equip-slot.is-signature{background:#e1c47f!important;border-color:#f5dc8b!important;box-shadow:0 0 0 1px #d3a449,0 0 10px #ecc15d66,inset 0 0 0 1px #fff1b0}
.tb-shell .tb-equip .signature-seal{left:auto;right:1px;top:1px;transform:none;min-width:0;padding:0 2px;font-size:7px;line-height:9px;border-radius:0}
.tb-shell .gear-chip{width:clamp(26px,calc(var(--card-w) * .34),38px);height:clamp(14px,calc(var(--card-w) * .17),19px);border-radius:2px;background:#c9b78e;border:1px solid #a48d63}
.tb-shell .gear-chip svg{width:100%;height:100%;aspect-ratio:2/1}
.tb-shell .gear-signature-mark{right:-2px;bottom:-2px;width:8px;height:8px;font-size:6px}
.equipment-quick-icon{width:108px;height:54px;background:#d9c49c;border-color:#ad9b73}
.equipment-quick-icon>svg{width:100%;height:100%;max-width:none;max-height:none;aspect-ratio:2/1}
.file-chip>svg.equipment-thumbnail{width:72px;height:36px;max-width:none;max-height:none;aspect-ratio:2/1}
.tb-shell[data-orient="land"] .tb-equip .equip-slot{width:clamp(64px,calc(var(--card-w) * .58),90px);min-width:64px}
.tb-shell[data-orient] .tb-skills{filter:drop-shadow(1px 5px 2px #071d18aa)}
.tb-shell[data-orient] .tb-skills .tb-skillbar{width:100%;clip-path:none;border:0;border-radius:0;background:linear-gradient(225deg,#0000 9px,var(--bookmark) 9.5px);box-shadow:inset 0 -2px #19382c66;padding-left:13px;padding-right:16px;overflow:visible}
.tb-shell[data-orient] .tb-skills .tb-skillbar::before{left:6px;top:-2px;bottom:auto;width:21px;height:6px;background:#dbc99eaa;border:0;border-left:1px dashed #efdfba88;border-right:1px dashed #efdfba88;box-shadow:0 1px #233b2e55;transform:rotate(-5deg)}
.tb-shell[data-orient] .tb-skills .tb-skillbar::after{top:0;right:0;width:13px;height:13px;border:0;background:color-mix(in srgb,var(--bookmark) 45%,#f8e8bb);clip-path:polygon(0 0,100% 100%,0 100%);box-shadow:-1px 1px #17332655;transform:none}
.tb-shell[data-orient] .tb-skills .tb-skillbar b{color:#f5e7c5;-webkit-text-stroke:.45px #153024;text-shadow:1px 2px #153024,2px 3px #153024}
.tb-shell[data-orient] .tb-skills .tb-skillbar.can-use{box-shadow:inset 0 -2px #163b2d99,inset 0 0 0 1px #edd5a99c;filter:brightness(1.04)}
.tb-shell[data-orient="port"] .tb-strip.is-compact-prompt .tb-say-row{min-height:18px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:6px}
.tb-shell[data-orient="port"] .tb-strip.is-compact-prompt .tb-say{display:block;flex:1 1 auto;width:auto;min-width:0}
.tb-shell[data-orient="port"] .tb-strip .tb-prompt-primary{display:block;max-width:100%;font:800 12px/18px var(--sans);color:#e9dab3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-shell[data-orient="port"] .tb-strip.is-compact-prompt .tb-pills{flex:0 1 auto;width:auto;max-width:min(48%,180px);min-height:26px;max-height:26px;justify-content:flex-end;gap:4px}
.tb-shell[data-orient="port"] .tb-strip.is-compact-prompt .tb-pills .tb-pill{height:26px;min-height:26px;padding-inline:8px;font-size:10px}
.tb-shell[data-orient="port"] .tb-strip.has-secondary-prompt .tb-say-row{flex-direction:column;align-items:stretch;min-height:30px}
.tb-shell[data-orient="port"] .tb-strip.has-secondary-prompt .tb-say{display:grid;grid-template-rows:auto auto;flex:none;width:100%}
.tb-shell[data-orient="port"] .tb-strip .tb-prompt-secondary{display:block;font:600 10px/14px var(--sans);color:#b8c8b4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-shell[data-orient="port"] .tb-strip-main{gap:1px}
.tb-shell[data-orient="port"] .tb-console:has(.tb-me.status-out) .tb-hand-empty{height:24px;min-height:24px;padding:1px 6px;font-size:10px}
.tb-shell .opening-prelude .opening-verdict p{display:none}
.tb-shell .opening-prelude .opening-score strong{font-size:24px}
@media(max-width:699px) and (orientation:portrait){
 .tb-shell[data-orient="port"] .tb-console{--me-C:clamp(104px,14dvh,120px);gap:6px 0}
}
@media(orientation:landscape) and (max-height:500px){
 .tb-shell[data-orient="land"] .tb-console{grid-template-columns:156px minmax(0,1fr) 128px}
}

/* Left-bound notes, right-hand equipment and local facial red-hot expression. */
.faction-brush{border-radius:50%!important;transform:rotate(-2deg)}
.tb-shell .tb-faction.faction-brush{width:20px;height:20px}
.role-faction.faction-brush{width:26px;height:26px}
.role-option .role-option-faction.faction-brush{width:17px;height:17px}
.faction-brush::before{left:3px;right:3px;bottom:1px;border-radius:50%;transform:rotate(-3deg)}
.tb-shell[data-orient="port"] .tb-skill-zone{grid-column:1;justify-self:start}
.tb-shell[data-orient="port"] .tb-me>.tb-equip{grid-column:3;justify-self:end;margin-left:0;margin-right:10px}
.tb-shell[data-orient="port"] .tb-sys{left:8px;right:auto}
.tb-shell .tb-gear{--mini-gear-w:clamp(26px,calc(var(--card-w) * .34),38px);--gear-overhang:calc(var(--mini-gear-w) / 3);right:calc(0px - var(--gear-overhang));pointer-events:none}
.tb-shell .gear-chip{position:relative;width:var(--mini-gear-w);pointer-events:auto}
.tb-shell[data-targeting="true"] .tb-gear .gear-chip{pointer-events:none}
/* The outermost seats have a 10px gutter. Clamp only their overhang, keeping
   both the normal and 1.08x active frame inside the visual viewport. */
.tb-shell .tb-toprow>.tb-seat:first-child .tb-gear,.tb-shell .tb-wing.is-right .tb-gear,.tb-shell .tb-side.is-right .tb-gear{--gear-overhang:6px}
.tb-shell .tb-toprow>.tb-seat.is-active:first-child .tb-gear,.tb-shell .tb-wing.is-right .tb-seat.is-active .tb-gear,.tb-shell .tb-side.is-right .tb-seat.is-active .tb-gear{--gear-overhang:2px}
.tb-shell .tb-art.is-redhot{background:none;box-shadow:none;filter:none}
.tb-shell .tb-art.is-redhot img{filter:drop-shadow(0 3px 4px #0007)!important}
.tb-shell .tb-art.is-redhot::after{display:none;content:none}
:is(.tb-art,.role-expression-frame){--face-x:58%;--face-y:28%;--face-w:34%;--face-h:25%}
:is(.tb-art,.role-expression-frame):has(img[data-role="niuma"]){--face-x:58%;--face-y:28%;--face-w:34%;--face-h:25%}
:is(.tb-art,.role-expression-frame):has(img[data-role="developer"]){--face-x:53%;--face-y:24%;--face-w:27%;--face-h:24%}
:is(.tb-art,.role-expression-frame):has(img[data-role="product"]){--face-x:50%;--face-y:25%;--face-w:30%;--face-h:23%}
:is(.tb-art,.role-expression-frame):has(img[data-role="oldhand"]){--face-x:47%;--face-y:22%;--face-w:28%;--face-h:22%}
:is(.tb-art,.role-expression-frame):has(img[data-role="bagua"]){--face-x:44%;--face-y:27%;--face-w:25%;--face-h:23%}
:is(.tb-art,.role-expression-frame):has(img[data-role="intern"]){--face-x:61%;--face-y:27%;--face-w:36%;--face-h:26%}
:is(.tb-art,.role-expression-frame):has(img[data-role="cleaner"]){--face-x:63%;--face-y:29%;--face-w:30%;--face-h:22%}
:is(.tb-art,.role-expression-frame):has(img[data-role="guard"]){--face-x:54%;--face-y:26%;--face-w:31%;--face-h:23%}
:is(.tb-art,.role-expression-frame):has(img[data-role="ceo"]){--face-x:63%;--face-y:33%;--face-w:38%;--face-h:28%}
:is(.tb-art,.role-expression-frame):has(img[data-role="investor"]){--face-x:47%;--face-y:14%;--face-w:20%;--face-h:18%}
:is(.tb-art,.role-expression-frame):has(img[data-role="hr"]){--face-x:56%;--face-y:37%;--face-w:40%;--face-h:29%}
:is(.tb-art,.role-expression-frame):has(img[data-role="manager"]){--face-x:59%;--face-y:29%;--face-w:38%;--face-h:28%}
:is(.tb-art,.role-expression-frame):has(img[data-role="client"]){--face-x:48%;--face-y:36%;--face-w:39%;--face-h:27%}
:is(.tb-art,.role-expression-frame):has(img[data-role="finance"]){--face-x:49%;--face-y:21%;--face-w:24%;--face-h:21%}
:is(.tb-art,.role-expression-frame):has(img[data-role="legal"]){--face-x:53%;--face-y:20%;--face-w:25%;--face-h:20%}
:is(.tb-art,.role-expression-frame):has(img[data-role="secretary"]){--face-x:59%;--face-y:18%;--face-w:23%;--face-h:20%}
:is(.tb-art,.role-expression-frame):has(img[data-role="tony"]){--face-x:44%;--face-y:38%;--face-w:38%;--face-h:31%}
:is(.tb-art,.role-expression-frame):has(img[data-role="trainer"]){--face-x:54%;--face-y:35%;--face-w:39%;--face-h:25%}
:is(.tb-art,.role-expression-frame):has(img[data-role="streamer"]){--face-x:51%;--face-y:22%;--face-w:26%;--face-h:22%}
:is(.tb-art,.role-expression-frame):has(img[data-role="insurance"]){--face-x:65%;--face-y:30%;--face-w:27%;--face-h:22%}
:is(.tb-art,.role-expression-frame):has(img[data-role="driver"]){--face-x:56%;--face-y:24%;--face-w:30%;--face-h:25%}
:is(.tb-art,.role-expression-frame):has(img[data-role="courier"]){--face-x:34%;--face-y:25%;--face-w:38%;--face-h:28%}
:is(.tb-art,.role-expression-frame):has(img[data-role="masseur"]){--face-x:57%;--face-y:19%;--face-w:28%;--face-h:22%}
:is(.tb-art,.role-expression-frame):has(img[data-role="landlord"]){--face-x:58%;--face-y:24%;--face-w:28%;--face-h:23%}
:is(.tb-art,.role-expression-frame):has(img[data-role="support"]){--face-x:50%;--face-y:29%;--face-w:38%;--face-h:27%}
:is(.tb-art,.role-expression-frame):has(img[data-role="operator"]){--face-x:56%;--face-y:20%;--face-w:27%;--face-h:22%}
:is(.tb-art,.role-expression-frame):has(img[data-role="instructor"]){--face-x:59%;--face-y:22%;--face-w:31%;--face-h:31%}
.redhot-face{position:absolute;z-index:1;left:var(--face-x);top:var(--face-y);width:var(--face-w);height:var(--face-h);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse at 50% 55%,#de4c2aaa 0 38%,#bd3f3266 58%,#d6724e00 76%);mix-blend-mode:multiply;pointer-events:none;animation:role-face-rage 1800ms ease-in-out infinite}
.redhot-face>.redhot-brow{display:none}
.redhot-face::before,.redhot-face::after{content:"";position:absolute;top:27%;width:26%;height:7%;min-height:1px;border-radius:50% 30%;background:#603021;opacity:.9}
.redhot-face::before{left:18%;transform:rotate(19deg)}
.redhot-face::after{right:18%;transform:rotate(-19deg)}
:is(.tb-art,.role-expression-frame)>.redhot-heat{position:absolute;z-index:2;left:calc(var(--face-x) + var(--face-w) * .46);top:calc(var(--face-y) - var(--face-h) * .55);right:auto;transform:translate(-10%,-50%) rotate(10deg);font-size:clamp(11px,calc(var(--card-w,90px) * .18),20px);color:#f1b17e;text-shadow:1px 1px #8e3924,-1px -1px #542c21;pointer-events:none;animation:role-face-steam 1200ms ease-in-out infinite}
@keyframes role-face-rage{0%,100%{opacity:.73}50%{opacity:.96}}
@keyframes role-face-steam{0%,100%{translate:0 1px;opacity:.8}50%{translate:0 -2px;opacity:1}}
.tb-cardbox:has(.playing-card.is-material-selected){transform:translateY(-8px);z-index:6}
.tb-shell .tb-cardbox .playing-card.is-material-selected{filter:none;box-shadow:inset 0 0 0 2px #f2d38b,0 0 0 2px #c48d35,0 4px 12px #081c16b3}
.tb-shell .tb-cardbox .playing-card.is-material-mate{filter:none;box-shadow:inset 0 0 0 2px #9ecda3,0 0 0 1px #5f9975}
.tb-shell .tb-cardbox .playing-card.is-material-drop-target{filter:brightness(1.12);box-shadow:inset 0 0 0 3px #f5df9a,0 0 0 3px #81b18a,0 0 18px #80c78b88}
.tb-shell .tb-cardbox .playing-card.is-material-drag-source{opacity:.65}
@media(max-width:699px),(max-height:699px){.tb-shell .tb-faction.faction-brush{width:18px;height:18px}}
@media(min-width:700px) and (min-height:700px){.tb-shell .tb-faction.faction-brush{width:23px;height:23px}}
@media(prefers-reduced-motion:reduce){.redhot-face,.redhot-heat{animation:none!important}}
