:root{--wood: #1b110b;--wood-light: #382116;--paper: #ead9b3;--paper-light: #f7e9c9;--paper-deep: #d5b67a;--ink: #28190f;--muted: #735b3d;--line: #8b683a;--red: #8d3328;--red-dark: #5e201a;--green: #4c712e;--blue: #315e6a;--gold: #b8862e;color:var(--ink);background:var(--wood);font-family:Georgia,Times New Roman,serif;font-synthesis:none;text-rendering:geometricPrecision}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;overflow-x:hidden;background:radial-gradient(circle at 22% 10%,rgb(118 70 35 / .3),transparent 32%),repeating-linear-gradient(88deg,transparent 0 40px,rgb(0 0 0 / .07) 42px 44px),linear-gradient(110deg,#130b07,#321d12 42%,#160d08)}button,input,select{font:inherit}button{align-items:center;background:linear-gradient(#f3e2b9,#d3ae6e);border:1px solid #7d5729;border-radius:5px;box-shadow:inset 0 0 0 1px #ffffff59,0 3px #4b3017;color:var(--ink);cursor:pointer;display:inline-flex;font-weight:700;gap:8px;justify-content:center;min-height:42px;padding:9px 14px;transition:filter .15s ease,transform .15s ease,box-shadow .15s ease}button:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}button:active:not(:disabled){box-shadow:inset 0 2px 5px #00000040;transform:translateY(1px)}button:disabled{cursor:not-allowed;filter:grayscale(.45);opacity:.45}input,select{background:#fff8e1b8;border:1px solid #8d6a3d;border-radius:4px;color:var(--ink);min-height:44px;outline:0;padding:9px 11px;width:100%}input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #315e6a2e}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.04}p{line-height:1.45}.app{min-height:100vh}.parchment{background:linear-gradient(90deg,rgb(76 43 17 / .08),transparent 13%,transparent 86%,rgb(76 43 17 / .09)),radial-gradient(circle at 12% 8%,rgb(255 255 255 / .38),transparent 23%),linear-gradient(145deg,var(--paper-light),var(--paper));border:1px solid #7d5b31;box-shadow:inset 0 0 0 3px #fff3,inset 0 0 24px #5c37131f,0 12px 28px #00000061}.pins{position:relative}.pins:before,.pins:after{background:radial-gradient(circle at 35% 30%,#ffe5a3 0,#ffe5a3 12%,#ad761c 42%,#47280b 78%);border:1px solid #40270c;border-radius:50%;box-shadow:0 2px 4px #00000073;content:"";height:15px;position:absolute;top:10px;width:15px;z-index:2}.pins:before{left:11px}.pins:after{right:11px}.eyebrow{color:var(--muted);display:block;font-size:12px;font-weight:800;letter-spacing:.13em;margin-bottom:8px;text-transform:uppercase}.fieldLabel{color:var(--muted);display:grid;font-size:13px;font-weight:800;gap:6px;letter-spacing:.04em}.primaryButton,.readyButton{background:linear-gradient(#76914b,#496b2e);border-color:#354b22;color:#fff8df;text-shadow:0 1px #223116}.secondaryButton{background:linear-gradient(#e8ddbd,#b7a780)}.dangerButton{background:linear-gradient(#b25545,#772b24);border-color:#542019;color:#fff4dc}.ghostButton{background:#f5e2b81f;border-color:#e9d3a259;box-shadow:none;color:#f0ddb4}.isSelected{box-shadow:inset 0 0 0 3px #315e6a,0 3px #294b54!important}.microcopy{color:var(--muted);font-size:13px;margin:8px 0 0}.appBar{align-items:center;background:#120b07e6;border-bottom:1px solid #775628;color:#eadab3;display:grid;gap:18px;grid-template-columns:1fr auto 1fr;min-height:62px;padding:9px clamp(14px,3vw,40px);position:sticky;top:0;z-index:50}.appBar>strong{justify-self:end;letter-spacing:.03em}.connection{color:#aa9270;font-size:13px;font-weight:700}.connection:before{background:#7c5544;border-radius:50%;content:"";display:inline-block;height:8px;margin-right:7px;width:8px}.connection.isOnline{color:#b8d493}.connection.isOnline:before{background:#68a342;box-shadow:0 0 8px #68a342}.landingStage{align-items:stretch;display:grid;gap:clamp(18px,3vw,36px);grid-template-columns:minmax(310px,760px) minmax(290px,480px);justify-content:center;min-height:100vh;padding:clamp(24px,5vw,74px)}.landingTitle{display:flex;flex-direction:column;justify-content:center;padding:clamp(38px,7vw,90px)}.landingTitle h1{font-size:clamp(50px,7vw,98px);letter-spacing:-.045em;margin:0 0 22px;text-shadow:0 2px rgb(255 255 255 / .35)}.landingTitle>p{color:#5f472d;font-size:clamp(17px,2vw,23px);max-width:650px}.roomStatus{align-items:center;border-top:1px solid rgb(89 61 30 / .25);color:#5e462d;display:flex;font-weight:700;gap:9px;margin-top:24px;padding-top:20px}.roomStatus small{color:var(--muted);font-weight:400;margin-left:auto}.statusLamp{background:#8a4e3e;border-radius:50%;box-shadow:inset 0 1px 2px #00000080;height:11px;width:11px}.statusLamp.isOnline{background:#60923d;box-shadow:0 0 9px #60923da6}.landingActions{align-content:center;display:grid;gap:15px}.landingAction{align-items:center;background:linear-gradient(112deg,#f4e4bf,#cba464);border-width:2px;display:grid;gap:17px;grid-template-columns:58px 1fr;justify-content:stretch;min-height:108px;padding:18px 24px;text-align:left}.landingAction>span:last-child{display:grid;gap:4px}.landingAction strong{font-size:25px}.landingAction small{color:#715636;font-size:14px;font-weight:400}.actionSigil{border:1px solid rgb(78 53 25 / .4);border-radius:50%;display:grid;font-size:28px;height:54px;place-items:center;width:54px}.masterAction{background:linear-gradient(112deg,#efe0bb,#b98d4c)}.tvAction{background:linear-gradient(112deg,#e6e0c2,#9aaf83)}.libraryAction{background:linear-gradient(112deg,#f2dfbc,#bd986e)}.modalShade{align-items:center;background:#0d0805d1;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;overflow-y:auto;padding:22px;position:fixed;z-index:100}.modalSheet{background:linear-gradient(145deg,#f5e7c6,#dbc18c);border:2px solid #805b2f;box-shadow:inset 0 0 0 4px #ffffff40,0 24px 70px #000;max-height:calc(100vh - 40px);overflow-y:auto;padding:clamp(24px,4vw,44px);position:relative;width:min(960px,100%)}.modalSheet h2{font-size:clamp(30px,4vw,47px);margin-bottom:22px}.modalClose{background:transparent;border:0;box-shadow:none;font-size:30px;min-height:38px;padding:0;position:absolute;right:15px;top:10px;width:38px}.joinSheet>.fieldLabel{max-width:520px}.racePicker{display:grid;gap:9px;grid-template-columns:repeat(5,minmax(0,1fr));margin:20px 0}.raceChoice{background:#fff8e07a;display:grid;min-width:0;padding:5px}.raceChoice img{aspect-ratio:1;border-radius:3px;object-fit:cover;width:100%}.raceChoice span{font-size:13px;overflow:hidden;padding:3px;text-overflow:ellipsis}.chosenRace{align-items:center;background:#fff9e673;border:1px solid rgb(105 74 38 / .34);display:grid;gap:22px;grid-template-columns:190px 1fr;margin-bottom:20px;padding:14px}.chosenRace img{aspect-ratio:1;object-fit:cover;width:100%}.chosenRace h3{font-size:31px;margin:0 0 8px}.chosenRace p{margin-bottom:8px}.chosenRace strong{color:#526b35;font-size:14px}.chosenRace ul,.raceLibraryCard ul{color:#52613c;font-size:13px;line-height:1.35;margin:8px 0 0;padding-left:18px}.chosenRace li+li,.raceLibraryCard li+li{margin-top:4px}.joinSheet>.primaryButton{min-height:52px;width:100%}.compactModal{max-width:460px}.compactModal input{font-size:24px;margin-bottom:14px;text-align:center}.compactModal>button:last-child{width:100%}.hallPage,.gamePage,.libraryPage{margin:0 auto;max-width:1680px;padding:clamp(16px,3vw,42px)}.hallHeading{padding:clamp(28px,4vw,50px);text-align:center}.hallHeading h1{font-size:clamp(38px,5vw,64px);margin-bottom:10px}.hallHeading p{color:var(--muted);margin:auto;max-width:760px}.rosterGrid{display:grid;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr));margin:24px 0}.rosterCard{align-items:center;display:grid;gap:10px;grid-template-columns:62px 1fr;min-height:136px;overflow:hidden;padding:12px;position:relative}.rosterCard.isReady{outline:3px solid rgb(77 113 46 / .65);outline-offset:-5px}.racePortrait{background:#2f2117;border:3px solid #9e783a;border-radius:50%;box-shadow:inset 0 0 0 2px #e4c985,0 3px 8px #00000059;height:58px;overflow:hidden;width:58px}.racePortrait img{height:100%;object-fit:cover;width:100%}.racePortrait.isLarge{height:126px;width:126px}.rosterIdentity{min-width:0}.rosterIdentity small{color:var(--muted)}.rosterIdentity h3{font-size:20px;margin:3px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rosterIdentity p{color:var(--muted);font-size:13px;margin:0}.onlineBadge{color:#8a4d3d;font-size:11px;font-weight:800;grid-column:1;text-align:center;text-transform:uppercase}.onlineBadge.isOnline{color:var(--green)}.readyStamp{color:#846e50;font-size:12px;letter-spacing:.12em;text-align:center}.isReady .readyStamp{color:var(--green);transform:rotate(-4deg)}.dangerLink{background:transparent;border:0;box-shadow:none;color:var(--red);font-size:12px;grid-column:1 / -1;min-height:24px;padding:0;text-decoration:underline}.emptySeat{border-style:dashed;box-shadow:none;color:#b9a27c;display:grid;font-style:italic;grid-template-columns:1fr;place-items:center;text-align:center}.lobbyEditor{align-items:center;display:grid;gap:24px;grid-template-columns:126px 1fr minmax(190px,250px);padding:24px}.editorFields{display:grid;gap:10px;grid-template-columns:1fr 1fr}.editorFields p{color:var(--muted);font-size:13px;grid-column:1 / -1;margin:0}.editorActions{display:grid;gap:10px}.masterStart{align-items:center;display:flex;justify-content:space-between;padding:24px 30px}.masterStart>div{display:grid}.masterStart strong{font-size:42px}.masterStart span{color:var(--muted)}.masterStart button{min-width:250px}.heroHeader,.masterHeader,.tvHeading,.libraryHeading{align-items:center;display:grid;gap:24px;margin-bottom:22px;padding:24px 34px}.heroHeader{grid-template-columns:126px 1fr minmax(190px,280px)}.heroHeader h1,.masterHeader h1,.tvHeading h1,.libraryHeading h1{font-size:clamp(34px,4vw,57px);margin:0 0 8px}.heroHeader p{color:var(--muted);margin:0}.heroVitals{border-left:1px solid rgb(97 67 31 / .28);display:grid;gap:8px;padding-left:24px}.heroVitals>strong{color:var(--red);font-size:46px}.heroVitals small{color:var(--ink);font-size:17px}.hpTrack,.miniHp{background:#8f7653;border:1px solid #684a28;height:10px;overflow:hidden}.hpTrack i,.miniHp i{background:linear-gradient(90deg,#7e241e,#c44f36);display:block;height:100%}.effectRow{display:flex;flex-wrap:wrap;gap:5px;grid-column:2 / -1}.effectRow span{background:#6d563b;border-radius:30px;color:#fff0cb;font-size:12px;padding:5px 9px}.gameColumns{display:grid;gap:20px;grid-template-columns:minmax(0,1fr) minmax(310px,390px)}.tableColumn,.masterMapColumn{display:grid;gap:16px;min-width:0}.controlColumn,.masterControls{align-content:start;display:grid;gap:16px}.panel{padding:19px}.panelTitle h2{font-size:27px;margin:0 0 16px}.panel hr{border:0;border-top:1px solid rgb(97 66 30 / .26);margin:18px 0}.eventCard{padding:clamp(20px,3vw,34px)}.eventCard h2{font-size:clamp(28px,4vw,43px);margin-bottom:10px}.eventCard>p{color:var(--muted);margin-bottom:12px}.eventReward{border-top:1px solid rgb(97 66 30 / .25);color:var(--green)!important;font-weight:800;padding-top:10px}.riddleBlock blockquote,.publicEvent blockquote{border-left:4px solid var(--gold);font-size:clamp(18px,2.2vw,27px);font-style:italic;margin:18px 0;padding:4px 18px}.riddleBlock form{display:grid;gap:8px;grid-template-columns:1fr auto}.hintList{display:grid;gap:5px;margin:12px 0}.hintList span{background:#b7862e1f;border-left:3px solid var(--gold);font-size:13px;padding:7px 9px}.shopGrid{display:grid;gap:9px;grid-template-columns:repeat(3,minmax(0,1fr))}.shopGrid article{background:#fff9e46b;border:1px solid rgb(104 74 37 / .28);display:grid;gap:7px;padding:10px}.shopGrid span{color:var(--muted);font-size:12px}.campaignPanel{display:grid;gap:10px}.gmSecret{background:#33251b;border-left:4px solid var(--red);color:#f0dcb4;font-size:13px;padding:10px}.submissionList{display:grid;gap:8px}.submissionList>article{background:#fff9e45c;border:1px solid rgb(104 74 37 / .25);display:grid;gap:6px;grid-template-columns:1fr auto;padding:9px}.submissionList article p{margin:2px 0}.submissionList article>div:last-child{display:flex;gap:5px;grid-column:1 / -1}.submissionList article button{min-height:32px;padding:4px 9px}.resolveGrid{display:grid;gap:7px;grid-template-columns:repeat(3,minmax(0,1fr))}.combatActions{display:grid;gap:10px}.inlineActions,.buttonGrid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.buttonGrid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.cardHand{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));max-height:310px;overflow-y:auto;padding:2px 4px 5px 2px}.attackCard{align-content:space-between;background:linear-gradient(145deg,#f3e2b8,#c7a565);display:grid;min-height:112px;padding:10px;text-align:left}.attackCard small{color:var(--blue);font-size:10px;text-transform:uppercase}.attackCard strong{font-size:15px}.attackCard span{color:var(--red);font-size:12px}.reactionCallout{background:#efe0ad;border:2px solid var(--red);display:grid;gap:10px;padding:12px}.reactionCallout>div{display:grid;gap:7px;grid-template-columns:1fr 1fr}.sanvarAction,.coordinateFields{display:grid;gap:8px;grid-template-columns:1fr 1fr}.teamResources{display:grid;gap:10px}.inventoryList{display:flex;flex-wrap:wrap;gap:7px}.inventoryList>span{background:#7a582b1f;border:1px solid rgb(99 69 33 / .3);border-radius:3px;font-size:13px;padding:7px 9px}.inventoryList b{color:var(--red);margin-left:5px}.mapFrame{overflow:hidden;padding:12px}.mapCaption{align-items:center;display:flex;justify-content:space-between;padding:2px 4px 10px}.mapCaption>div{display:grid;gap:3px}.mapCaption span{color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.mapCaption small{color:var(--muted);font-size:11px;font-style:italic;max-width:75ch}.tacticalMap{--map-columns: 12;--map-rows: 8;aspect-ratio:12 / 8;background:linear-gradient(calc(125deg + var(--map-hue, 0) * 1deg),#19252247,#2b1b1161),url(/assets/generated/map-backdrop.png) center / cover,#8f7c5b;border:5px solid #574128;box-shadow:inset 0 0 35px #0000008c;display:grid;grid-template-columns:repeat(var(--map-columns),minmax(0,1fr));grid-template-rows:repeat(var(--map-rows),minmax(0,1fr));overflow:hidden;position:relative}.mapCell{aspect-ratio:auto;background:transparent;border:0;border-bottom:1px solid rgb(239 222 174 / .18);border-radius:0;border-right:1px solid rgb(239 222 174 / .18);box-shadow:none;min-height:0;padding:0}.mapCell:disabled{filter:none;opacity:1}.mapCell.isReachable{background:#6c996629;cursor:crosshair}.mapCell.isReachable:hover{background:#9bcb8966;transform:none}.mapCell.isObstacle{background:radial-gradient(ellipse,#31281f 0 28%,#5b4934 30% 50%,transparent 54%)}.mapToken{background:transparent;border:0;box-shadow:none;display:grid;height:clamp(42px,5.3vw,70px);min-height:0;padding:0;place-items:center;position:absolute;transform:translate(-50%,-50%);width:clamp(42px,5.3vw,70px);z-index:5}.mapToken:hover:not(:disabled){filter:brightness(1.1);transform:translate(-50%,-54%)}.mapToken.isSelected{border-radius:50%;box-shadow:0 0 0 4px #ffdb76,0 0 18px #ffdb76!important}.mapToken>img,.enemyGlyph{background:#2d2117;border:3px solid #e4c36e;border-radius:50%;box-shadow:0 4px 9px #000;height:75%;object-fit:cover;width:75%}.mapToken>span:not(.enemyGlyph){background:#140c07e0;border-radius:2px;bottom:-1px;color:#f5e2b6;font-size:clamp(7px,.8vw,11px);left:50%;max-width:110px;overflow:hidden;padding:2px 4px;position:absolute;text-overflow:ellipsis;transform:translate(-50%);white-space:nowrap}.enemyGlyph{align-items:center;color:#f3d7a0;display:flex;font-size:clamp(20px,3vw,38px);justify-content:center}.enemyToken>.enemyGlyph{border-color:#a14d39}.enemyToken>small{background:var(--red-dark);color:#fff0d0;font-size:8px;padding:1px 3px;position:absolute;right:0;top:0}.mapEmpty{color:#ead6aa;display:grid;top:0;right:0;bottom:0;left:0;place-content:center;position:absolute;text-align:center;text-shadow:0 2px 4px #000}.mapEmpty strong{font-size:clamp(24px,4vw,48px)}.mapEmpty span{font-size:13px}.initiativeStrip{padding:15px}.initiativeStrip>div{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 5px}.initiativeStrip article{align-items:center;background:#6649251a;border:1px solid rgb(104 76 39 / .28);display:grid;flex:0 0 auto;gap:6px;grid-template-columns:auto minmax(80px,1fr) auto;padding:8px 10px}.initiativeStrip article.isActive{background:#5f7439;color:#fff5d9;outline:3px solid #d3b45f}.initiativeStrip article small{opacity:.6}.initiativeStrip article span{color:var(--red);font-weight:800}.initiativeStrip article.isActive span{color:#fff}.initiativeStrip p{color:var(--muted);margin:0}.resultLedger{padding:17px 20px}.resultLedger p{border-top:1px solid rgb(107 75 37 / .2);font-size:13px;margin:0;padding:7px 0}.chatPanel{min-width:0}.chatScroll{display:grid;gap:7px;max-height:280px;overflow-y:auto}.chatMessage{border-left:3px solid var(--blue);padding:4px 8px}.chatMessage.isSystem{border-color:var(--gold);color:var(--muted);font-style:italic}.chatMessage strong{display:block;font-size:12px}.chatMessage p{font-size:13px;margin:2px 0 0;overflow-wrap:anywhere}.chatForm{display:grid;gap:7px;grid-template-columns:1fr 44px;margin-top:12px}.chatForm button{min-width:0;padding:4px}.masterHeader{grid-template-columns:1fr auto}.masterHeaderActions{display:flex;gap:8px}.masterLayout{display:grid;gap:20px;grid-template-columns:minmax(0,1fr) minmax(340px,420px)}.masterTools{display:grid;gap:10px}.activeRoster{display:grid;gap:7px}.activeRoster article{align-items:center;border-top:1px solid rgb(93 65 31 / .2);display:grid;grid-template-columns:1fr auto;padding-top:7px}.activeRoster article>span{display:grid}.activeRoster article small{color:var(--muted)}.activeRoster .dangerLink{grid-column:auto;padding:0 5px}.tvPage{margin:0 auto;max-width:1920px;padding:clamp(18px,2.5vw,44px)}.tvHeading{grid-template-columns:1fr auto}.tvHeading>strong{color:var(--red);font-size:clamp(26px,3vw,48px)}.tvLayout{display:grid;gap:22px;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr)}.tvLayout>section{display:grid;gap:16px}.tvLayout aside{align-content:start;display:grid;gap:16px}.tvParty{display:grid;gap:8px}.publicPlayer{align-items:center;border-top:1px solid rgb(93 65 31 / .22);display:grid;gap:10px;grid-template-columns:58px 1fr;padding:8px 0}.publicPlayer>div:last-child{display:grid;gap:2px}.publicPlayer span,.publicPlayer small{color:var(--muted);font-size:11px}.miniHp{height:6px}.libraryHeading{grid-template-columns:1fr auto}.libraryHeading p{color:var(--muted);margin:0}.libraryTabs{display:grid;gap:9px;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:20px}.libraryTabs button{background:linear-gradient(#eadab3,#b99763);min-width:0}.libraryTabs button.isActive{background:linear-gradient(#f7e8bf,#c8994e);box-shadow:inset 0 0 0 2px #ffffff40,0 0 14px #d4a54e8c}.libraryPanel{min-height:580px}.libraryStack{display:grid;gap:20px}.libraryCatalog{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.libraryCatalog.itemGroups{grid-template-columns:repeat(2,minmax(0,1fr))}.libraryCard{min-width:0;padding:20px}.libraryCard h2{font-size:clamp(24px,2.4vw,36px);margin:5px 0 12px}.libraryCard p{color:#58432b}.libraryCard>strong{color:var(--green);display:block;line-height:1.35}.libraryCard>small{color:var(--muted);display:block;line-height:1.4}.libraryVariants{display:grid;gap:9px}.libraryVariant{border-left:4px solid #8d744d;padding:5px 0 5px 12px}.libraryVariant.tone-red{border-color:#954735}.libraryVariant.tone-blue{border-color:#42667c}.libraryVariant.tone-green{border-color:#5c783e}.libraryVariant.tone-purple{border-color:#75547c}.libraryVariant.tone-gold{border-color:#b4832f}.libraryVariant p{margin:0 0 4px}.libraryVariant strong,.libraryVariant small{display:block;font-size:13px;line-height:1.35}.libraryVariant strong{color:var(--green)}.libraryVariant small{color:var(--red);margin-top:2px}.actionLibraryCard{border-top:5px solid var(--blue)}.monsterLibraryCard{border-top:5px solid var(--red)}.sceneLibraryCard{overflow:hidden;position:relative}.sceneLibraryCard .sceneNumber{color:#843e2638;font-size:74px;font-weight:900;line-height:1;position:absolute;right:12px;top:8px}.raceLibrary{display:grid;gap:20px;grid-template-columns:1fr}.raceLibraryCard,.raceLibraryCard:first-child{display:grid;gap:20px;grid-column:auto;grid-template-columns:minmax(220px,36%) 1fr;overflow:hidden;padding:14px}.raceLibraryCard>img{aspect-ratio:1;object-fit:cover;width:100%}.raceLibraryCard>div{align-self:center;padding:12px}.raceLibraryCard h2{font-size:clamp(32px,4vw,54px);margin-bottom:12px}.raceLibraryCard p{color:#58432b}.raceLibraryCard strong{color:var(--green)}.endedCard,.loadingCard{margin:clamp(30px,8vw,100px) auto;max-width:760px;padding:clamp(42px,7vw,90px);text-align:center}.endedCard h1{font-size:clamp(45px,7vw,76px);margin-bottom:15px}.loadingCard{background:#ead9b3;border:1px solid #7d5b31;box-shadow:0 10px 30px #000;color:var(--ink)}.errorToast{background:#fff0d5;border:2px solid var(--red);bottom:18px;box-shadow:0 10px 28px #0000007a;color:#702019;left:50%;max-width:min(720px,calc(100vw - 30px));overflow-wrap:anywhere;padding:12px 17px;position:fixed;transform:translate(-50%);z-index:200}@media (max-width: 1180px){.landingStage{grid-template-columns:minmax(0,760px)}.landingTitle{min-height:52vh}.landingActions{grid-template-columns:repeat(2,minmax(0,1fr))}.rosterGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.gameColumns,.masterLayout,.tvLayout{grid-template-columns:1fr}.controlColumn{grid-template-columns:repeat(2,minmax(0,1fr))}.controlColumn>:last-child{grid-column:1 / -1}.masterControls{grid-template-columns:repeat(2,minmax(0,1fr))}.masterControls>:last-child{grid-column:1 / -1}.tvLayout aside{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.appBar{grid-template-columns:1fr auto}.appBar>strong{display:none}.landingStage{padding:14px}.landingTitle{min-height:auto;padding:46px 26px}.landingTitle h1{font-size:clamp(44px,14vw,72px)}.landingActions{grid-template-columns:1fr}.landingAction{min-height:88px}.modalShade{align-items:flex-start;padding:8px}.modalSheet{max-height:none;padding:24px 16px}.racePicker{grid-template-columns:repeat(5,minmax(56px,1fr));overflow-x:auto}.raceChoice{min-width:74px}.chosenRace{grid-template-columns:90px 1fr}.chosenRace h3{font-size:25px}.chosenRace p{font-size:13px}.hallPage,.gamePage,.libraryPage,.tvPage{padding:12px}.rosterGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.lobbyEditor{grid-template-columns:78px 1fr}.lobbyEditor .racePortrait{height:78px;width:78px}.editorFields{grid-template-columns:1fr}.editorFields p{grid-column:1}.editorActions{grid-column:1 / -1;grid-template-columns:1fr 1fr}.masterStart{align-items:stretch;display:grid;gap:15px}.masterStart button{min-width:0}.heroHeader{grid-template-columns:86px 1fr;padding:20px}.heroHeader .racePortrait{height:86px;width:86px}.heroVitals{border-left:0;border-top:1px solid rgb(97 67 31 / .28);grid-column:1 / -1;padding:15px 0 0}.effectRow{grid-column:1 / -1}.controlColumn,.masterControls,.tvLayout aside{grid-template-columns:1fr}.controlColumn>:last-child,.masterControls>:last-child{grid-column:auto}.masterHeader,.tvHeading,.libraryHeading{align-items:stretch;grid-template-columns:1fr;padding:22px}.masterHeaderActions{display:grid;grid-template-columns:1fr 1fr}.libraryTabs,.libraryCatalog,.libraryCatalog.itemGroups{grid-template-columns:repeat(2,minmax(0,1fr))}.tacticalMap{border-width:3px}.mapToken{height:clamp(24px,7.2vw,38px);width:clamp(24px,7.2vw,38px)}.mapToken>img,.enemyGlyph{border-width:2px}.enemyGlyph{font-size:clamp(14px,4.5vw,24px)}.mapToken>span:not(.enemyGlyph){bottom:-5px;font-size:6px;max-width:54px}.enemyToken>small{font-size:6px}.raceLibrary{grid-template-columns:1fr}.raceLibraryCard,.raceLibraryCard:first-child{grid-column:auto;grid-template-columns:120px 1fr}.raceLibraryCard h2{font-size:30px}}@media (max-width: 470px){.roomStatus{align-items:flex-start;flex-wrap:wrap}.roomStatus small{margin-left:20px;width:100%}.landingAction{grid-template-columns:48px 1fr;padding:13px 16px}.actionSigil{font-size:23px;height:45px;width:45px}.landingAction strong{font-size:21px}.chosenRace{grid-template-columns:1fr}.chosenRace img{max-height:180px}.rosterGrid{grid-template-columns:1fr}.rosterCard{min-height:112px}.lobbyEditor{grid-template-columns:1fr}.lobbyEditor>.racePortrait{justify-self:center}.editorActions{grid-template-columns:1fr}.heroHeader{grid-template-columns:68px 1fr}.heroHeader .racePortrait{height:68px;width:68px}.heroHeader h1{font-size:31px}.cardHand,.riddleBlock form,.shopGrid{grid-template-columns:1fr}.buttonGrid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.libraryTabs,.libraryCatalog,.libraryCatalog.itemGroups,.raceLibraryCard,.raceLibraryCard:first-child{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
