:root{--bg:#07090c;--bg2:#11171d;--panel:#f5efe5;--paper:#fffaf1;--ink:#17130f;--muted:#71675b;--line:#d4c8b8;--red:#a51628;--heart:#cf4b28;--club:#166c35;--spade:#0b2d52;--gold:#c29a53;--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at top,#18202a,#06080b 55%);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink)}button,input,select,textarea{font:inherit}button{border:0;border-radius:14px;background:#1a2027;color:#f7efe4;min-height:44px;font-weight:900;cursor:pointer}button:active{transform:translateY(1px)}.hidden{display:none!important}.app-shell{min-height:100svh;padding:10px 10px calc(78px + var(--safe-bottom));max-width:920px;margin:0 auto}.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:8px 0;background:linear-gradient(#07090ce8,#07090caa);backdrop-filter:blur(12px)}.brand{display:flex;gap:7px;align-items:center;background:#f7efe4;color:#17130f;padding:0 12px}.brand-mark{color:var(--red)}.top-status{min-height:44px;display:flex;align-items:center;justify-content:center;border:1px solid #2b333b;background:#10161c;color:#d9cfc0;border-radius:14px;padding:0 10px;font-size:.86rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-btn{width:48px;border-radius:14px}.main{display:block}.screen{display:none;animation:fade .16s ease}.screen.active{display:block}@keyframes fade{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.panel{background:linear-gradient(180deg,var(--panel),#eee3d3);border:1px solid #e7dac8;border-radius:22px;box-shadow:0 18px 55px #0005, inset 0 1px #fff8;padding:14px;margin:10px 0}.hero{display:grid;grid-template-columns:1fr;gap:14px;padding:18px}.eyebrow{margin:0 0 4px;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:var(--red);font-weight:950}.hero h1,.screen-title h1{font-family:Georgia,serif;font-size:clamp(2.6rem,12vw,5rem);line-height:.9;margin:0;color:#f6eadb;text-shadow:0 3px 16px #000}.hero .hero-copy p:not(.eyebrow){color:#e3d6c6;line-height:1.4;font-size:1rem}.hero{background:linear-gradient(135deg,#171c22,#0b0e12 60%);border-color:#2e3740}.hero-actions{display:grid;gap:8px}.big{min-height:54px;font-size:1rem}.primary{background:linear-gradient(180deg,#b41d32,#8a1225);color:#fff}.secondary{background:#20272f;color:#f7efe4}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-card{min-height:94px;text-align:left;padding:14px;background:#11171d;border:1px solid #29313a}.quick-card b{display:block;color:#f7efe4;font-size:1rem}.quick-card span{display:block;color:#bdb2a2;font-size:.84rem;line-height:1.3;margin-top:4px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;color:#f4eadc;margin:18px 4px 8px}.section-head h2{margin:0;font-size:1.2rem}.section-head p{margin:0;color:#c7b8a5;font-size:.88rem}.campaign-grid,.case-grid{display:grid;gap:10px}.campaign-card,.case-card{position:relative;overflow:hidden;padding:14px}.campaign-card:before{content:"";position:absolute;left:0;right:0;top:0;height:7px;background:var(--accent,var(--red))}.campaign-card h2,.case-card h2{margin:0;font-size:1.45rem}.campaign-card h3,.case-card h3{margin:2px 0 6px;color:var(--accent,var(--red));font-size:.9rem}.campaign-card p,.case-card p{margin:0;color:#453d34;line-height:1.34}.campaign-card .row,.case-card .row{display:flex;gap:8px;margin-top:12px}.campaign-card button,.case-card button{flex:1;background:var(--accent,var(--red))}.screen-title{display:flex;gap:10px;align-items:center;margin:8px 0 10px}.screen-title h1{font-size:2.4rem;color:#f6eadb}.back{background:#121820}.setup{display:grid;gap:14px}.field label{display:block;font-weight:950;text-transform:uppercase;font-size:.74rem;color:#655c51;letter-spacing:.08em;margin:0 0 6px}.segmented,.player-row,.campaign-select,.filter-row{display:flex;gap:7px;flex-wrap:wrap}.segmented button,.player-row button,.campaign-select button,.filter-row button{background:#fffaf1;color:#17130f;border:1px solid var(--line);padding:10px 12px}.segmented button.selected,.player-row button.selected,.campaign-select button.selected,.filter-row button.selected{background:var(--red);color:#fff;border-color:var(--red)}.scale-note{margin-top:7px;color:#4b433a;font-weight:800}.muted{color:#bfb2a1}.play-top{display:grid;grid-template-columns:1fr;gap:12px;background:linear-gradient(135deg,#f5efe5,#e5d8c5)}.play-top h1{margin:0;font-size:1.7rem}.meters{display:grid;grid-template-columns:1fr 1fr;gap:8px}.meters div{background:#fffaf1;border:1px solid var(--line);border-radius:16px;padding:10px}.meters span{font-size:.72rem;text-transform:uppercase;color:var(--muted);font-weight:950}.meters b{display:block;margin:3px 0 7px}.meters i{display:block;height:9px;background:#ded3c2;border-radius:999px;overflow:hidden}.meters em{display:block;height:100%;width:0;background:var(--red);transition:.2s}.meters .danger em{background:#151b21}.crisis-window{margin:10px 0;padding:14px;border-radius:22px;border:1px solid #842033;background:linear-gradient(135deg,#3a131b,#140b0e);color:#ffe8e0;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;box-shadow:0 18px 50px #0008}.crisis-window .eyebrow{color:#ff9b8c}.crisis-window h2{margin:0}.crisis-window p{margin:4px 0 0;color:#ffd3ca}.crisis-window b{font-size:1.1rem;border:1px solid #97515b;border-radius:14px;padding:10px;background:#0004}.moment h2{font-size:1.55rem;margin:0}.moment p{line-height:1.42}.moment-head{display:flex;justify-content:space-between;gap:10px}.tiny{min-height:38px;padding:8px 10px;font-size:.88rem}.watch-grid{display:grid;gap:8px}.watch-grid div{border-top:1px solid var(--line);padding-top:9px}.watch-grid b{display:block;color:var(--red);font-size:.72rem;letter-spacing:.09em;text-transform:uppercase}.watch-grid span{color:#3f372e}.timer{display:grid;grid-template-columns:auto 82px auto 1fr 1fr;gap:8px;align-items:center}.timer-circle{width:82px;height:82px;border-radius:50%;background:#11171d;color:#f7efe4;border:3px solid var(--red);display:grid;place-items:center;box-shadow:inset 0 0 0 4px #0002}.timer-circle span{font-size:1.7rem;font-weight:950;line-height:1}.timer-circle small{margin-top:-26px;color:#c9bba8}.table-state{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}.table-state span{background:#11171d;color:#f7efe4;border:1px solid #28313a;border-radius:999px;padding:8px 10px;font-weight:900;font-size:.78rem}.submit-head{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.submit-head h2{margin:0}.submit-head p{margin:3px 0;color:#5d5449}.suit-row{display:grid;grid-template-columns:1fr;gap:8px;margin-top:10px}.suit-col{background:#fffaf1;border:1px solid var(--line);border-radius:16px;overflow:hidden}.suit-title{color:#fff;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;font-weight:950;padding:8px 10px;background:var(--suit,#a51628)}.suit-col select{width:100%;border:0;background:#fff;padding:12px 10px;color:#17130f}.suit-help{font-size:.74rem;color:#6d6256;padding:0 10px 10px}.play-tools details{border:1px solid var(--line);border-radius:16px;background:#fffaf1;margin:8px 0;padding:10px}.play-tools summary{font-weight:950}.last-card{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:center;margin-top:8px}.last-card img{width:72px;border-radius:10px;border:1px solid var(--line)}.last-card b{display:block}.last-card span{color:#5b5147;font-size:.86rem}.dig-tools,.tool-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.log-list{display:grid;gap:7px;max-height:330px;overflow:auto;margin-top:8px}.log-entry{background:#fff;border:1px solid var(--line);border-radius:13px;padding:9px;font-size:.84rem}.standard-banner{position:sticky;top:62px;z-index:12;display:flex;justify-content:space-between;gap:8px;align-items:center;background:#151b21;color:#f7efe4;border:1px solid #303a44;border-radius:16px;padding:10px;margin:6px 0;box-shadow:0 12px 32px #0005}.standard-banner a{background:var(--gold);color:#17130f;border-radius:12px;padding:9px 11px;text-decoration:none;font-weight:950;white-space:nowrap}.search{width:100%;background:#fffaf1;border:1px solid var(--line);border-radius:16px;padding:13px;margin:4px 0 10px}.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.card-tile{background:#f5efe5;border:1px solid var(--line);border-radius:16px;padding:8px;box-shadow:0 10px 30px #0004}.card-tile img{width:100%;display:block;border-radius:10px;background:#ddd}.card-tile b{display:block;font-size:.86rem;margin-top:7px}.card-tile span{font-size:.72rem;color:var(--muted);font-weight:900}.rules-grid,.tracker-grid,.milestone-list,.pack-list{display:grid;gap:10px}.rule-card,.stat-card,.milestone,.pack-card{background:#f5efe5;border:1px solid var(--line);border-radius:18px;padding:14px}.rule-card h2,.stat-card h2,.milestone h3,.pack-card h3{margin:0 0 5px}.rule-card p,.stat-card p,.milestone p,.pack-card p{margin:0;color:#443c33;line-height:1.36}.dock{position:fixed;left:8px;right:8px;bottom:calc(8px + var(--safe-bottom));z-index:30;display:grid;grid-template-columns:repeat(5,1fr);gap:5px;max-width:920px;margin:0 auto;background:#080b0ed9;border:1px solid #27313a;border-radius:22px;padding:6px;backdrop-filter:blur(16px);box-shadow:0 14px 44px #0008}.dock button{min-height:46px;font-size:.77rem;padding:0 4px}.dock button.active{background:var(--red)}.modal{width:min(94vw,760px);border:0;border-radius:24px;padding:0;background:#f5efe5;color:#17130f;box-shadow:0 30px 90px #000b}.modal::backdrop{background:#000b}.modal-inner{padding:16px}.modal h2{margin:0 0 8px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}.modal-actions button{padding:10px 12px}.full-card{display:block;max-width:min(430px,88vw);margin:0 auto 12px;border-radius:16px;border:1px solid var(--line)}.toast{position:fixed;z-index:60;left:50%;bottom:calc(88px + var(--safe-bottom));transform:translateX(-50%);background:#121820;color:#f7efe4;border:1px solid #2c3640;border-radius:999px;padding:10px 14px;box-shadow:0 12px 34px #0008;font-weight:800;text-align:center}.suit-D{--suit:var(--red)}.suit-H{--suit:var(--heart)}.suit-C{--suit:var(--club)}.suit-S{--suit:var(--spade)}@media(min-width:680px){.hero{grid-template-columns:1.2fr .8fr}.campaign-grid,.case-grid{grid-template-columns:repeat(2,1fr)}.suit-row{grid-template-columns:repeat(4,1fr)}.watch-grid{grid-template-columns:1fr 1fr}.card-grid{grid-template-columns:repeat(4,1fr)}.rules-grid,.tracker-grid,.milestone-list,.pack-list{grid-template-columns:repeat(2,1fr)}}@media(max-width:420px){.app-shell{padding-left:8px;padding-right:8px}.quick-grid,.meters{grid-template-columns:1fr}.timer{grid-template-columns:1fr 82px 1fr}.timer #timerToggle,.timer #timerReset{grid-column:auto}.submit-head{grid-template-columns:1fr}.submit-head button{width:100%}.card-grid{grid-template-columns:1fr 1fr}.top-status{display:none}.dock button{font-size:.7rem}.crisis-window{grid-template-columns:1fr}.standard-banner{font-size:.82rem;flex-direction:column;align-items:stretch}.standard-banner a{text-align:center}}/* v1.6/v1.7 gameplay completion */
.case-pulse{margin-top:12px;border:1px solid var(--line);border-radius:16px;background:#fffaf1;padding:10px;display:grid;gap:8px}.case-pulse b{display:block;color:#11171d;font-size:.95rem}.case-pulse span{display:block;color:#4f453a;line-height:1.35}.pulse-stats{display:flex;flex-wrap:wrap;gap:6px}.pulse-stats span{background:#151b21;color:#f7efe4;border-radius:999px;padding:6px 9px;font-size:.72rem;font-weight:900}.evidence-strip{display:flex;gap:8px;overflow-x:auto;margin-top:12px;padding:8px;border-top:1px solid var(--line)}.empty-evidence{color:#6d6256;font-weight:800;font-size:.85rem}.evidence-play{min-width:138px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:7px}.evidence-play.crisis{border-color:#842033;background:#fff2ef}.evidence-cards{display:flex;gap:4px}.evidence-cards img{width:46px;border-radius:7px;border:1px solid var(--line);background:#ddd}.evidence-play b{display:block;font-size:.74rem;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.evidence-play span{font-size:.7rem;color:#655c51;font-weight:900}.last-card.multi{grid-template-columns:auto 1fr}.last-card-images{display:flex;gap:6px;align-items:flex-start}.last-card-images img{width:64px;border-radius:10px;border:1px solid var(--line);background:#ddd}.dig-note{grid-column:1/-1;margin:2px 0 0;color:#5d5449;font-size:.82rem;line-height:1.35}.crisis-actions{display:grid;gap:8px;align-items:center}.crisis-actions b{text-align:center;font-size:1.1rem;border:1px solid #97515b;border-radius:14px;padding:10px;background:#0004;color:#ffe8e0}.crisis-actions button{background:#fff1ed;color:#3a131b}.outcome-strip{display:flex;gap:7px;overflow-x:auto;background:#121820;border-radius:16px;padding:10px;margin:12px 0}.outcome-strip img{width:72px;border-radius:9px;border:1px solid #3a4652;background:#ddd}.log-entry.crisis{border-color:#842033;background:#fff2ef}.log-entry.joker{border-color:#111;background:#f2f0ec}.log-entry.outcome{border-color:#b08a33;background:#fff8e9}@media(max-width:420px){.evidence-play{min-width:120px}.last-card-images img{width:54px}.crisis-actions{grid-template-columns:1fr}.timer{grid-template-columns:auto 82px auto;}.timer #timerToggle,.timer #timerReset{grid-column:auto}}
.helper-card-thumb{height:150px;border-radius:10px;background:linear-gradient(135deg,#11171d,#2a2220);color:#f7efe4;display:grid;place-items:center;text-align:center;border:1px solid #2c3640;padding:10px}.helper-card-thumb b{font-size:1.25rem;margin:0}.helper-card-thumb span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#c9bba8}.helper-tile{background:#efe7da}

/* v1.7 suit target bar and Search Window */
.suit-targets{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:8px}.suit-targets div{border-left:6px solid var(--suit);background:#fff;border-radius:12px;padding:8px}.suit-targets b{font-size:.78rem;color:#17130f}.suit-targets span{display:block;font-size:.75rem;font-weight:950;color:#5b5147}.dig-tools select,.modal select{width:100%;padding:12px;border-radius:12px;border:1px solid var(--line);background:#fffaf1;margin:6px 0}.last-card p{margin:.35rem 0 0;color:#4f453a;font-size:.84rem}.modal-actions a.secondary{display:inline-flex;align-items:center;text-decoration:none;border-radius:14px;background:#20272f;color:#f7efe4;min-height:44px;font-weight:900;padding:10px 12px}.log-entry.strong{border-color:#166c35;background:#f0fff5}.log-entry.success{border-color:#166c35}.log-entry.partial{border-color:#c29a53;background:#fff9ea}.log-entry.miss,.log-entry.harmful{border-color:#842033;background:#fff2ef}.log-entry.dig{border-color:#0b2d52;background:#eff7ff}.log-entry.moment{border-color:#71675b}.evidence-play{cursor:pointer}@media(min-width:680px){.suit-targets{grid-template-columns:repeat(4,1fr)}}

/* v1.8 deployment/share loop */
.quick-link{display:block;text-decoration:none;color:inherit}.share-url{width:100%;border:1px solid var(--line);border-radius:14px;background:#fffaf1;color:#17130f;padding:12px;font-weight:800}.story-textarea{width:100%;min-height:340px;border:1px solid var(--line);border-radius:14px;background:#fffaf1;color:#17130f;padding:12px;line-height:1.45}.share-story-preview{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:18px;background:#fffaf1;max-height:380px;overflow:auto}.share-story-preview h3{margin:.1rem 0 .5rem}.share-story-preview h4{margin:.8rem 0 .25rem}.share-story-preview p,.share-story-preview li{font-size:.92rem;line-height:1.38}.share-story-preview ul{padding-left:1.1rem;margin:.4rem 0}.share-body{background:radial-gradient(circle at top,#1c252f,#07090c 58%);color:#f7efe4}.share-page{max-width:980px;margin:0 auto;padding:18px 12px 48px}.share-hero,.share-moment{background:linear-gradient(180deg,#f5efe5,#e9ddcb);color:#17130f}.share-hero h1{font-family:Georgia,serif;font-size:clamp(2.2rem,9vw,5rem);line-height:.95;margin:.1rem 0 .4rem;color:#17130f;text-shadow:none}.share-hero h2,.share-moment h2{font-size:1.7rem;margin:.1rem 0 .45rem}.share-subtitle{color:#6a5f52;font-weight:900}.share-result{display:inline-flex;background:#11171d;color:#f7efe4;border-radius:999px;padding:8px 12px;font-weight:950;margin:4px 0 8px}.share-result.saved{background:#166c35}.share-result.partial{background:#8a6421}.share-result.lost{background:#842033}.share-stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.share-stats span{background:#11171d;color:#f7efe4;border-radius:999px;padding:8px 10px;font-size:.82rem;font-weight:950}.share-card-row{display:grid;gap:10px;margin-top:12px}.share-play{background:#fffaf1;border:1px solid var(--line);border-radius:18px;padding:10px}.share-play.crisis{border-color:#842033;background:#fff2ef}.share-card-images{display:flex;gap:6px;overflow-x:auto}.share-card-images img{width:84px;border:1px solid var(--line);border-radius:10px;background:#ddd}.share-play h3{margin:.5rem 0 .25rem;font-size:1.05rem}.share-play p{margin:.25rem 0;color:#473f36;line-height:1.35}.share-note{font-style:italic;color:#6a5f52}.share-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.primary-link,.secondary-link{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border-radius:14px;padding:10px 14px;text-decoration:none;font-weight:950}.primary-link{background:linear-gradient(180deg,#b41d32,#8a1225);color:#fff}.secondary-link{background:#20272f;color:#f7efe4}@media(min-width:720px){.share-card-row{grid-template-columns:repeat(2,1fr)}.share-card-images img{width:96px}}@media(max-width:430px){.share-page{padding-left:8px;padding-right:8px}.share-card-images img{width:72px}.share-hero h1{font-size:2.4rem}}


/* v1.9 launch/community additions */
.profile-card code,.stat-card code{font-size:.72rem;word-break:break-all;color:#5d4e42}
.share-list{display:grid;gap:10px;margin-top:10px}
.share-play-list{display:grid;gap:10px;margin-top:12px}
.share-play{background:#fffaf1;border:1px solid var(--line);border-radius:16px;padding:12px}
.share-play b{display:block;font-size:1rem}
.share-play span{display:block;color:var(--red);font-weight:900;margin-top:3px}
.share-play p{margin:.45rem 0 0;color:#3f372f}
.story-card-strip{display:flex;gap:8px;overflow-x:auto;padding:8px 2px 4px;scroll-snap-type:x mandatory}
.story-card-strip img{width:96px;border-radius:10px;box-shadow:0 6px 18px #0004;scroll-snap-align:start}
.share-stats span{white-space:nowrap}
.share-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.share-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:14px;padding:0 14px;font-weight:900;text-decoration:none}
.share-actions .primary{background:linear-gradient(180deg,#b41d32,#8a1225);color:#fff}
.share-actions .secondary{background:#20272f;color:#f7efe4}


/* v2.0 narrative expansion */
.novella-preview{display:grid;gap:12px;margin-top:10px}.novella-preview article{border:1px solid var(--line);border-radius:16px;background:#fffaf1;padding:12px}.novella-preview h3{margin:.1rem 0 .5rem}.novella-preview p{font-size:.92rem;line-height:1.45;color:#3f372f}.narrative-share .share-hero p,.novella-section p{font-size:1.03rem;line-height:1.62}.novella-section h2{font-family:Georgia,serif;font-size:clamp(1.8rem,6vw,3rem);line-height:1.02}.played-archive .share-play p{line-height:1.48}.played-archive .share-note{font-style:italic;color:#6f5f4f;border-left:4px solid var(--gold);padding-left:10px}.share-result{display:inline-flex;background:#11171d;color:#f7efe4;border-radius:999px;padding:8px 12px;font-weight:950;margin:4px 0 8px}.share-result.saved{background:#166c35}.share-result.partial{background:#8a6421}.share-result.lost{background:#842033}.case-pulse span{font-size:.92rem}.last-card p{font-size:.9rem;line-height:1.42}.share-card-row{grid-template-columns:1fr}@media(min-width:820px){.share-card-row{grid-template-columns:repeat(2,1fr)}.novella-section{padding:26px 30px}}
/* v2.3 final deploy: Weave can now select two numbered cards from any suits, including same-suit pairs. */
.suit-row.weave-open{grid-template-columns:1fr!important}.weave-pair{display:grid;grid-template-columns:1fr;gap:8px;width:100%}.weave-card{background:#fffaf1;border:1px solid var(--line);border-radius:16px;padding:10px}.weave-card label{display:block;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;font-weight:950;color:var(--red);margin-bottom:6px}.weave-card select{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px 10px;color:#17130f}.weave-card span{display:block;font-size:.74rem;color:#6d6256;margin-top:7px}@media(min-width:680px){.weave-pair{grid-template-columns:1fr 1fr}}

/* v2.9 sequence / weave-only / sticky timer pass */
.meters{grid-template-columns:repeat(3,1fr)}
.meters .presence em{background:var(--gold)}
.timer{position:sticky;top:58px;z-index:19;padding:8px 10px;background:linear-gradient(135deg,#f8f1e8,#e9dccb);box-shadow:0 10px 32px #0007;border-color:#d0bea8}
.timer-circle{width:64px;height:64px;border-width:2px}
.timer-circle span{font-size:1.35rem}
.timer-circle small{font-size:.64rem;margin-top:-20px;text-transform:uppercase;letter-spacing:.05em}
#timerToggle{min-height:40px}
#timerReset,.timer .tiny{min-height:40px}
.weave-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
.weave-card{background:#fffaf1;border:1px solid var(--line);border-radius:16px;padding:10px}
.weave-card label{display:block;font-weight:950;font-size:.72rem;text-transform:uppercase;color:var(--muted);letter-spacing:.06em;margin-bottom:6px}
.weave-card select{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px;color:#17130f}
.weave-card span{display:block;margin-top:6px;font-size:.72rem;color:#685f55;font-weight:800}
button:disabled,select:disabled{opacity:.52;cursor:not-allowed}
@media(max-width:520px){.meters{grid-template-columns:1fr}.timer{grid-template-columns:auto 64px auto;top:54px}.timer #timerToggle,.timer #timerReset{grid-column:1/-1}.weave-pair{grid-template-columns:1fr}}

.access-status{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:850}
.access-status.demo{border-color:#c29a53;background:linear-gradient(180deg,#fff2d8,#efe0bf)}
.access-status.full{border-color:#166c35;background:linear-gradient(180deg,#e6f4e8,#d5ead9)}
.access-status button{min-height:38px;padding:0 12px;border-radius:12px}
.access-code-box{width:100%;padding:14px;border-radius:14px;border:1px solid var(--line);font-weight:900;text-transform:uppercase;letter-spacing:.08em}

.impact-flash{position:sticky;top:72px;z-index:15;margin:-4px 0 8px;padding:12px 14px;border-radius:18px;background:#fffaf1;border:2px solid #c29a53;box-shadow:0 14px 35px #0004;display:flex;align-items:center;gap:10px;font-weight:950}.impact-flash b{font-size:2rem}.impact-flash span{font-size:.98rem}.impact-flash.flash-run{animation:impactPulse 1.6s ease both}@keyframes impactPulse{0%{transform:scale(.95);opacity:0}15%{transform:scale(1.03);opacity:1}75%{transform:scale(1);opacity:1}100%{transform:translateY(-4px);opacity:0}}.hidden-targets div{background:#f2eadc!important;border-style:dashed!important}.meters b{min-width:96px}.modal .suit-targets{margin-top:10px}.about-editor textarea{width:100%;min-height:280px}.muted{color:#71675b}

/* v3.0 app-powered techbox patch */
.system-line{border-left:4px solid var(--red);padding-left:10px;color:#f7efe4!important;font-weight:850;background:#ffffff10;border-radius:10px;padding-top:8px;padding-bottom:8px}.version-footer{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;font-weight:950;color:#f7efe4;background:linear-gradient(135deg,#151b21,#0b0e12);border-color:#2b333b;text-align:center}.pinned-feedback{position:sticky;top:136px;z-index:14;background:linear-gradient(180deg,#fffaf1,#f0e5d5);border:2px solid var(--suit,var(--gold));box-shadow:0 14px 35px #0005}.pinned-feedback h2{margin:.1rem 0 .5rem;font-size:1.15rem}.feedback-grid{display:grid;grid-template-columns:1fr;gap:8px}.feedback-grid div{background:#fff;border:1px solid var(--line);border-left:6px solid var(--suit,var(--red));border-radius:14px;padding:8px}.feedback-grid b{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;color:#6a5d50}.feedback-grid span{display:block;font-weight:850;line-height:1.3;color:#221b15}.feedback-tag{color:var(--suit,var(--red))!important}.feedback-wide{grid-column:1/-1}.version-stack{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.version-stack span{background:#fffaf1;border:1px solid var(--line);border-radius:12px;padding:8px;font-size:.82rem;font-weight:900}.impact-flash.flash-run{animation:impactPulseStay .9s ease both}@keyframes impactPulseStay{0%{transform:scale(.96);opacity:0}30%{transform:scale(1.03);opacity:1}100%{transform:scale(1);opacity:1}}@media(min-width:720px){.feedback-grid{grid-template-columns:1fr 1fr}.pinned-feedback{top:134px}}@media(max-width:520px){.pinned-feedback{top:124px}.version-stack{grid-template-columns:1fr}.hero-actions{grid-template-columns:1fr 1fr}}


/* v3.1 mobile play console / friction patch */
.play-console{display:none}
.overtime-panel{border:2px solid var(--gold);background:linear-gradient(180deg,#fff8eb,#ead8ba);box-shadow:0 16px 42px #0005}.overtime-panel h2{margin:.1rem 0 .35rem}.overtime-panel p{margin:.25rem 0;color:#3f372f;line-height:1.35}.overtime-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.modal{position:fixed;inset:0;margin:auto;max-height:min(86svh,760px);overflow:auto;z-index:1000}.modal[open]{display:block}.modal::backdrop{background:#000c;backdrop-filter:blur(3px)}body.modal-open{overflow:hidden}.play-scroll-target{scroll-margin-top:170px}
@media(max-width:620px){
  .app-shell{padding:6px 7px calc(78px + var(--safe-bottom));max-width:100%}.topbar{padding:5px 0}.brand{padding:0 9px}.top-status{font-size:.74rem;min-height:40px}.icon-btn{min-height:40px;width:42px}.standard-banner{position:static;top:auto;margin:5px 0;font-size:.8rem}.play-top{display:none}.play-console{display:block;position:sticky;top:50px;z-index:24;margin:5px 0;padding:8px;border-radius:18px;background:linear-gradient(180deg,#fff8ef,#eadfce);border:2px solid #d2b487;box-shadow:0 14px 34px #0008}.console-main{display:grid;grid-template-columns:1fr 58px;gap:8px;align-items:center}.console-copy{min-width:0}.console-copy .eyebrow{font-size:.62rem;margin:0 0 2px}.console-copy b{display:block;font-size:1rem;line-height:1.08;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.console-copy span{display:block;font-size:.74rem;line-height:1.18;color:#4b4238;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.console-clock{width:58px;height:58px;border-radius:50%;background:#11171d;color:#f7efe4;border:2px solid var(--red);display:grid;place-items:center;box-shadow:inset 0 0 0 3px #0002}.console-clock span{font-weight:950;font-size:1.25rem;line-height:1}.console-clock small{font-size:.55rem;text-transform:uppercase;letter-spacing:.04em;margin-top:-19px;color:#d9c9b6}.console-meters{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:7px}.console-meters div{background:#fffaf1;border:1px solid var(--line);border-radius:12px;padding:5px 6px;min-width:0}.console-meters b{display:block;font-size:.55rem;text-transform:uppercase;letter-spacing:.06em;color:#75695b}.console-meters span{display:block;font-size:.75rem;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.console-feedback{margin-top:7px;border-left:5px solid var(--suit,var(--red));background:#fffaf1;border-radius:12px;padding:7px 8px;font-size:.78rem;line-height:1.2;font-weight:850;color:#241d16}.console-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:7px}.console-actions button{min-height:36px;border-radius:11px;font-size:.72rem;padding:0 4px;background:#18202a}.moment{padding:10px;margin:7px 0}.moment h2{font-size:1.18rem}.moment p{font-size:.9rem;line-height:1.32}.moment-head .tiny{min-height:34px;font-size:.76rem}.watch-grid{grid-template-columns:1fr 1fr;gap:7px}.watch-grid span{font-size:.78rem;line-height:1.25}.case-pulse{display:none}.pinned-feedback{position:static;top:auto;z-index:auto;margin:7px 0;padding:10px;border-radius:16px;box-shadow:0 8px 22px #0003}.pinned-feedback h2{font-size:.98rem;margin:0 0 .35rem}.feedback-grid{gap:6px}.feedback-grid div{padding:6px 7px;border-radius:12px}.feedback-grid b{font-size:.58rem}.feedback-grid span{font-size:.78rem;line-height:1.18}.impact-flash{position:static;top:auto;margin:5px 0;padding:8px 10px}.timer{position:static;top:auto;z-index:auto;grid-template-columns:auto 56px auto;gap:6px;margin:7px 0;padding:8px;border-radius:16px}.timer-circle{width:56px;height:56px}.timer-circle span{font-size:1.18rem}.timer-circle small{font-size:.55rem;margin-top:-17px}.timer #timerToggle,.timer #timerReset,.timer #abandonCaseBtn{grid-column:auto;min-height:38px;font-size:.76rem;padding:0 6px}.timer #timerToggle{grid-column:1/-1}.timer #timerReset,.timer #abandonCaseBtn{grid-column:span 1}.table-state{margin:6px 0;gap:5px}.table-state span{font-size:.66rem;padding:6px 8px}.submit{padding:10px;margin:7px 0;scroll-margin-top:180px}.submit-head{grid-template-columns:1fr auto;gap:8px}.submit-head h2{font-size:1rem}.submit-head p{display:none}.submit-head button{min-height:40px;border-radius:12px;padding:0 10px}.suit-row{gap:6px;margin-top:8px}.suit-title{font-size:.64rem;padding:6px 8px}.suit-col select,.weave-card select{padding:10px 8px;font-size:.86rem}.suit-help,.weave-card span{display:none}.weave-pair{grid-template-columns:1fr;gap:6px}.weave-card{padding:8px}.weave-card label{font-size:.62rem;margin-bottom:4px}.play-tools{padding:9px;margin:7px 0;scroll-margin-top:180px}.play-tools details{padding:8px;margin:6px 0}.log-list{max-height:230px}.overtime-panel{position:static;top:auto;z-index:auto;margin:6px 0;padding:10px;border-radius:18px}.overtime-panel h2{font-size:1.1rem}.overtime-panel p{font-size:.84rem}.overtime-actions{grid-template-columns:1fr;gap:6px}.overtime-actions button{min-height:42px}.dock{left:6px;right:6px;bottom:calc(6px + var(--safe-bottom));padding:5px}.dock button{min-height:42px;font-size:.68rem}.modal{width:min(94vw,760px);max-height:82svh}.modal-inner{padding:13px}
}
@media(max-width:380px){.console-actions button{font-size:.66rem}.console-meters span{font-size:.68rem}.console-copy b{font-size:.92rem}.timer{grid-template-columns:auto 52px auto}.timer-circle{width:52px;height:52px}}

/* v3.2 mobile play surface: dual 2x2 pads, inline picker, review archive */
.play-entry{border:2px solid #d2b487;background:linear-gradient(180deg,#fff8ef,#eadfce)}
.entry-status{margin:10px 0 8px;border-left:5px solid var(--gold);background:#fffaf1;border-radius:14px;padding:9px 11px;font-weight:900;color:#2b231b;line-height:1.3}
.entry-status.invalid{border-left-color:var(--red);background:#fff0ee;color:#4a1017}
.dual-pad-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}
.pad-panel{background:#fffaf1;border:1px solid var(--line);border-radius:18px;padding:10px;min-width:0}
.pad-title{display:flex;justify-content:space-between;gap:6px;align-items:baseline;margin-bottom:8px}
.pad-title b{font-size:.86rem;text-transform:uppercase;letter-spacing:.06em;color:#2d251d}
.pad-title span{font-size:.72rem;font-weight:850;color:#75695b;text-align:right}
.suit-pad{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px;margin-top:0!important}
.suit-pad-btn{min-height:72px;border-radius:16px;background:linear-gradient(180deg,var(--suit),#11171d);color:#fff;border:2px solid #0002;padding:8px;text-align:left;box-shadow:inset 0 1px #fff3,0 8px 18px #0002;display:flex;flex-direction:column;justify-content:center;gap:2px}
.suit-pad-btn b{font-size:1.08rem;line-height:1;font-weight:950}
.suit-pad-btn span{font-size:.7rem;line-height:1.1;font-weight:850;opacity:.95;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.suit-pad-btn.selected{outline:3px solid #11171d;box-shadow:0 0 0 3px #fffaf1,0 8px 22px #0004}
.suit-pad-btn.invalid{outline-color:var(--red);filter:saturate(.75)}
.suit-pad-btn:disabled{opacity:.42;filter:grayscale(.15);transform:none;cursor:not-allowed}
.clear-weave{width:100%;margin-top:8px;min-height:38px}
.entry-picker{margin-top:10px;background:#11171d;color:#f7efe4;border:1px solid #2c3640;border-radius:18px;padding:10px;box-shadow:0 14px 36px #0005}
.entry-picker-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.entry-picker-head b{font-size:.88rem;line-height:1.2}
.entry-card-list{display:grid;gap:7px;max-height:min(44svh,360px);overflow:auto;padding-right:2px}
.entry-card-list button{min-height:48px;background:#fffaf1;color:#17130f;border:1px solid var(--line);border-radius:14px;text-align:left;padding:8px 10px;display:grid;gap:2px}
.entry-card-list button b{font-size:.88rem;line-height:1.12}
.entry-card-list button span{font-size:.72rem;color:#655b50;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.play-tools.live-mode details:nth-of-type(1),.play-tools.live-mode details:nth-of-type(4){display:none}
.play-tools.review-mode{border:2px solid #d2b487;background:linear-gradient(180deg,#fff8ef,#eadfce)}
.review-meter-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.review-meter-grid div{background:#fffaf1;border:1px solid var(--line);border-radius:14px;padding:8px}.review-meter-grid b{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#71675b}.review-meter-grid span{font-weight:950}.review-list{display:grid;gap:8px;margin-top:8px}.review-play{background:#fffaf1;border:1px solid var(--line);border-radius:14px;padding:9px}.review-play b{display:block}.review-play span{display:block;font-size:.78rem;font-weight:900;color:#71675b;margin:2px 0}.review-play p{margin:0;color:#3f372e}
.run-archive{display:grid;gap:8px}.run-row{display:grid;grid-template-columns:1.2fr 1fr auto;gap:8px;align-items:center;background:#fffaf1;border:1px solid var(--line);border-radius:16px;padding:10px;cursor:pointer}.run-row b{display:block}.run-row span{display:block;font-size:.78rem;color:#6c6257;font-weight:850}.run-row code{background:#11171d;color:#f7efe4;border-radius:10px;padding:8px;font-size:.72rem;white-space:nowrap}
@media(max-width:620px){.dual-pad-grid{grid-template-columns:1fr 1fr;gap:7px}.pad-panel{padding:7px;border-radius:16px}.pad-title{display:block;margin-bottom:6px}.pad-title b{display:block;font-size:.66rem}.pad-title span{display:block;font-size:.56rem;text-align:left}.suit-pad{gap:5px}.suit-pad-btn{min-height:58px;border-radius:13px;padding:6px}.suit-pad-btn b{font-size:.92rem}.suit-pad-btn span{font-size:.58rem;line-height:1.05}.entry-status{font-size:.78rem;padding:7px 8px;margin:7px 0}.entry-picker{padding:8px;border-radius:16px}.entry-card-list{max-height:38svh}.entry-card-list button{min-height:44px;padding:7px 8px}.entry-card-list button b{font-size:.78rem}.entry-card-list button span{font-size:.62rem}.clear-weave{min-height:34px;font-size:.68rem;padding:0 4px}.run-row{grid-template-columns:1fr}.run-row code{justify-self:start}.review-meter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:380px){.dual-pad-grid{gap:5px}.pad-panel{padding:6px}.suit-pad-btn{min-height:54px}.suit-pad-btn span{font-size:.54rem}.submit-head{grid-template-columns:1fr}.submit-head button{width:100%}}
