.ce{--ink:#11191c;--paper:#eee7d6;--muted:#aeb7b4;--amber:#e6b778;--rust:#d67d59;--line:#384347;background:var(--ink);color:var(--paper);margin:0;font:15px/1.5 Arial,sans-serif;color-scheme:dark}.ce *{box-sizing:border-box}.ce [hidden]{display:none!important}.ce button,.ce input,.ce select,.ce textarea{font:inherit}.ce button,.ce .button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:11px 17px;border:1px solid var(--amber);border-radius:3px;background:var(--amber);color:#182020;font-weight:700;cursor:pointer;text-decoration:none}.ce button:hover,.ce .button:hover{filter:brightness(1.12)}.ce button:disabled{opacity:.45;cursor:wait}.ce :focus-visible{outline:3px solid #8ce4ea;outline-offset:4px}.ce .quiet{background:transparent;border-color:#5c6768;color:var(--paper);font-size:13px}.ce button[aria-pressed=true]{border-color:var(--amber);color:var(--amber);background:#34332a}.ce h1,.ce h2,.ce h3,.ce p{margin:0 0 14px}.ce h1,.ce h2,.ce h3{line-height:1.12}.ce h2{font-size:30px;letter-spacing:-.7px}.ce h3{font-size:18px}.ce a{color:var(--amber)}.ce .eyebrow{font:700 11px/1.5 Arial,sans-serif;letter-spacing:2px;color:var(--amber);margin-bottom:9px}.ce .small,.ce .field-help{font-size:12px;line-height:1.6;color:var(--muted)}.ce .ce-top{min-height:77px;max-width:1800px;margin:auto;display:flex;align-items:center;gap:17px;padding:15px 30px;border-bottom:1px solid var(--line)}.ce-top>.blc-logo{max-width:100px}.ce-wordmark{font:900 21px/1 Arial,sans-serif;letter-spacing:-1px;color:var(--paper)!important;text-decoration:none;white-space:nowrap}.ce-wordmark b{color:var(--amber)}.ce-wordmark small{display:block;font:9px/1.5 Arial;letter-spacing:1.5px;margin-top:6px;color:var(--muted)}.top-actions{margin-left:auto;display:flex;gap:8px;align-items:center}.top-actions>a{font-size:12px;margin-right:15px}.ce main{max-width:1680px;margin:auto;padding:24px 30px 64px}.ce #error:not(:empty){padding:14px;background:#532d27;color:#ffe3ce;border:1px solid var(--rust);margin-bottom:12px}.ce #network{padding:16px;border:1px solid var(--amber);margin-bottom:16px}.ce #network button{margin-left:16px}.ce-hero{position:relative;min-height:660px;background:linear-gradient(90deg,#11191cf2 1%,#11191cc2 30%,#11191c15 80%),url('crevez-art/saint-reste-night.webp') center/cover;display:flex;align-items:center;border-bottom:1px solid var(--line);overflow:hidden}.hero-copy{z-index:1;padding:50px 40px;max-width:670px}.ce-hero h1{font:900 clamp(40px,5.3vw,84px)/.97 Impact,'Arial Black',sans-serif;letter-spacing:-1.5px;margin:28px 0;color:var(--paper)}.ce-hero h1 em{font-style:normal;color:var(--amber)}.hero-copy>p:not(.eyebrow){max-width:420px;font-size:17px;color:#e1dfd5}.hero-copy .hero-foot{font-size:12px!important;margin:28px 0 0;color:#afbbb9!important}.hero-copy>.quiet{margin-left:8px;margin-top:12px}.radio-caption{position:absolute;right:35px;bottom:38px;padding:22px;border-left:3px solid var(--rust);background:#11191cdd;font-size:10px;letter-spacing:1px}.radio-caption blockquote{font:italic 20px/1.4 Georgia,serif;margin:12px 0 0;letter-spacing:0}.signal-dot{display:inline-block;width:7px;height:7px;background:var(--rust);border-radius:50%;margin-right:8px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:22px}.section-heading>p{font-size:13px;color:var(--muted)}.scenario-section{padding:50px 0 30px}.scenario-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.ce .scenario-card{position:relative;display:flex;align-items:stretch;flex-direction:column;text-align:left;padding:0 22px 20px;background:#1b2529;border:1px solid var(--line);color:var(--paper);overflow:hidden;gap:0;font-weight:400}.ce .scenario-card.selected{border-color:var(--amber);box-shadow:0 0 0 1px var(--amber)}.scenario-art{display:block;height:190px;margin:0 -22px 18px;background-image:linear-gradient(0deg,#1b2529 0%,transparent 80%),url('crevez-art/saint-reste-atlas.webp');background-size:auto,300% 300%;background-position:center,right bottom;filter:saturate(.7)}.scenario-1 .scenario-art{background-position:center,left center}.scenario-2 .scenario-art{background-position:center,center top}.scenario-3 .scenario-art{background-position:center,center bottom}.scenario-number{position:absolute;top:15px;left:15px;background:#11191cce;padding:5px 8px;letter-spacing:2px;font-size:10px}.scenario-tag{color:var(--amber);font-size:10px;letter-spacing:1.8px;text-transform:uppercase;margin-bottom:8px}.scenario-card strong{font-size:25px;line-height:1.05;min-height:53px;margin-bottom:12px}.scenario-pitch{font-size:13px;line-height:1.6;color:#c6ceca;flex:1;margin-bottom:20px}.scenario-meta{font-size:11px;border-top:1px solid var(--line);padding-top:14px}.scenario-meta>span{color:var(--muted)}.scenario-select{color:var(--amber);font-size:12px;font-weight:700;margin-top:14px}.scenario-section>.small{margin-top:14px}.panel{border:1px solid var(--line);padding:25px;background:#1a2428;border-radius:4px}.entry-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:22px}.entry-grid h2{margin-bottom:25px}.ce label{display:flex;flex-direction:column;gap:7px;margin-bottom:17px;font-size:13px;font-weight:700}.ce input,.ce select,.ce textarea{background:#111a1f;border:1px solid #556265;color:var(--paper);border-radius:3px;padding:12px;width:100%;min-width:0}.ce textarea{resize:vertical}.ce .check{flex-direction:row;gap:12px;font-size:12px;font-weight:400;align-items:flex-start}.check input{width:17px;min-width:17px;height:17px;accent-color:var(--amber);margin:2px 0}.join-panel{background:linear-gradient(140deg,#273134,#192326)}.join-panel .small{margin-top:25px}.saved-panel{display:flex;align-items:center;gap:20px;margin-top:24px}.saved-panel>div{margin-right:auto}.saved-panel h2{font-size:23px;margin:0}.ce .rules{margin-top:28px}.ce summary{cursor:pointer;font-weight:700;min-height:44px;padding:10px 0}.ce summary::marker{color:var(--amber)}.rules>details>summary{font-size:22px}.rule-intro{max-width:740px;margin:35px 0}.rule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.rule-grid h3{font-size:18px;color:var(--amber)}.rule-grid p{font-size:14px;color:#c4cecb}.rule-example{margin:22px 0;padding:20px;border-left:3px solid var(--amber);background:#111b20}.mission-head{display:flex;justify-content:space-between;gap:30px;margin-bottom:20px}.mission-head>div:first-child{max-width:850px}.mission-head h1{font:900 44px/1.1 Impact,'Arial Black',sans-serif;letter-spacing:.5px}.mission-head #brief{font-size:14px;color:#c2cdca}.invite{display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:350px;align-content:flex-start}.invite>span{width:100%;font-size:9px;letter-spacing:2px;color:var(--muted)}.invite strong{font:700 26px monospace;color:var(--amber);margin-right:8px}.party{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:18px}.survivor{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:#1b2529;padding:8px;min-width:0}.survivor.me{border-color:var(--amber)}.survivor.dead{opacity:.5;filter:grayscale(1)}.party-portrait{width:58px;flex-shrink:0;line-height:0}.party-portrait svg{width:100%;height:auto}.survivor b{font-size:14px;display:block;overflow-wrap:anywhere}.survivor small{font-size:9px;line-height:1.5;color:#bdc9c4;display:block}.survivor button{font-size:10px!important;min-height:24px!important;padding:3px 6px!important;margin-top:4px}.story-panel{display:flex;align-items:center;gap:25px;background:#263137;border:1px solid #58635e;border-left:4px solid var(--amber);padding:22px 26px;margin:18px 0}.story-speaker{display:flex;align-items:center;gap:14px;min-width:150px}.story-speaker .eyebrow{font-size:11px;margin:0}.story-speaker .eyebrow span{font-size:8px;color:#abb8b5;letter-spacing:1px}.radio-symbol{font-size:40px;color:var(--amber)}.story-copy{flex:1}.story-copy h2{font-size:19px;letter-spacing:0;margin-bottom:8px;color:var(--amber)}.story-copy p{font:17px/1.5 Georgia,serif;margin:0}.story-panel>button{align-self:flex-start}.character-workshop{margin-top:20px}.character-layout{display:grid;grid-template-columns:280px 1fr;gap:38px}.character-preview{background:#10191e;border:1px solid var(--line);align-self:start;padding:15px}.character-preview>div:first-child{aspect-ratio:1}.character-preview svg{width:100%;height:100%}.character-preview .eyebrow{margin:20px 0 8px}.character-preview h3{font-size:28px}.character-preview>p{color:var(--muted)}#preview-stats{display:flex;justify-content:space-between;padding:15px 0;border-top:1px solid var(--line)}#preview-stats span{font-size:10px;letter-spacing:2px}#preview-stats b{display:block;font-size:28px;color:var(--amber)}.character-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.portrait-field{border:0;padding:0;margin:0 0 20px}.portrait-field legend{font-size:13px;font-weight:700;margin-bottom:8px}.portrait-picker{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.ce .portrait-picker button{padding:0;border:2px solid transparent;aspect-ratio:1;line-height:0;overflow:hidden}.ce .portrait-picker button[aria-pressed=true]{border-color:var(--amber);box-shadow:0 0 0 2px var(--ink),0 0 0 3px var(--amber)}.portrait-picker svg{width:100%;height:100%}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stats small{font-weight:400;color:var(--muted);font-size:10px}.stats input{font-size:22px;text-align:center}.dice-results{display:flex;gap:8px;margin:12px 0}.dice-results>span{padding:7px 14px;background:var(--paper);color:var(--ink);font-weight:700;font-size:22px;text-align:center}.dice-results small{display:block;font-size:8px}.host-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:18px 0}.host-controls p{margin-bottom:0}.phone-tabs{display:flex;gap:5px;margin:15px 0}.phone-tabs button{flex:1;background:transparent;border-color:var(--line);color:var(--muted);font-size:12px}.game-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px}.maps{display:grid;grid-template-columns:180px minmax(0,1fr);gap:15px;align-content:start;border:1px solid var(--line);padding:18px;background:#10191d}.map-head{grid-column:1/-1;display:flex;justify-content:space-between;gap:15px;align-items:center}.map-head h2{font-size:20px;margin-bottom:0}.map-tools{display:flex;gap:10px;align-items:center}.map-tools>span{white-space:nowrap;color:var(--rust);font-size:10px;letter-spacing:1px;font-weight:700}.world-map svg{width:100%;display:block}.region-border{stroke:#65716a;stroke-width:3}.region-sector.selected .region-border{stroke:var(--amber);stroke-width:10}.region-sector{cursor:pointer}.region-unknown{fill:#6d7b7c;font-size:70px}.sector-name{fill:#eee7d6;font:bold 22px Arial}.sector-people{fill:#d8ac72;font:17px Arial}.objectives{margin:20px 0}.objectives ol{list-style:none;padding:0;margin:0}.objectives li{display:flex;gap:9px;font-size:12px;line-height:1.5;margin-bottom:14px;color:#d4d7cd}.objectives li>span{display:grid;place-items:center;min-width:21px;height:21px;background:#34413f;color:var(--amber);font-size:11px}.objectives li.done{color:#8ebc94}.group-tabs{display:flex;gap:5px;flex-wrap:wrap}.ce .group-tabs button{font-size:10px;padding:6px 8px;min-height:32px;background:transparent;color:#b6c4bf;border-color:var(--line)}.local-scene{min-width:0}.local-title{font-size:18px!important;margin:0 0 9px!important;display:flex;justify-content:space-between;gap:10px}.local-title span{font:10px/1.5 Arial;color:var(--muted);text-align:right;max-width:55%}.local-maps{display:grid;gap:15px}.local-maps.two{grid-template-columns:1fr 1fr}.sector-scene{min-width:0}.map-scroll{overflow:auto;line-height:0}.map-scroll>svg{width:100%;height:auto;display:block}.zoomed .map-scroll>svg{min-width:850px}.zone-border{stroke:#b8c6ae;stroke-opacity:.75;stroke-width:3}.tile{cursor:pointer}.tile:hover .zone-border,.tile:focus .zone-border{stroke:var(--amber);stroke-width:8;stroke-opacity:1}.tile.unknown .zone-border{stroke:#425453}.tile-label{fill:#eee7d6;font:bold 19px Arial}.tile-status{fill:#cbd4c9;font:16px Arial}.tile .unknown{fill:#687778;font:90px Georgia}.enemy-marker circle{fill:#983c30;stroke:#efb09b;stroke-width:3}.enemy-marker text{fill:#fff0e0;font:bold 31px Arial}.barrier-marker{fill:#d6e5cc;font:bold 25px Arial}.noise-marker{fill:#17211f;font:bold 23px Arial}.spawn-marker{fill:#17211f;font:bold 16px Arial}.pawn text{fill:#eee7d6;font:bold 13px Arial}.map-legend{font-size:10px;color:var(--muted);margin-top:12px}.transit{font-size:12px;color:var(--amber);padding-top:8px}.map-detail{padding:16px;background:#263137;border:1px solid var(--amber);font-size:13px}.controls{min-width:0}.controls .panel{padding:20px;margin-bottom:16px}.controls h2{font-size:26px}.controls h3{font-size:12px;letter-spacing:1px;color:#b6c6bc;margin:16px 0 9px}.controls #my-status{font-size:13px;color:var(--amber);border-bottom:1px solid var(--line);padding-bottom:14px}.action-group{display:grid;grid-template-columns:1fr 1fr;gap:7px}.action-group h3{grid-column:1/-1}.ce .action-button{display:flex;flex-wrap:wrap;justify-content:space-between;text-align:left;align-items:center;background:#283431;color:var(--paper);border-color:#53685c;padding:11px;font-size:12px;gap:6px}.action-button>span{flex:1}.action-button>b{color:var(--amber);font-size:10px}.action-button>small{width:100%;font-size:10px;line-height:1.4;color:#b6c6bc;font-weight:400}.ce .action-button.danger{background:#3e2c28;border-color:#8c5343}.stunt-actions{margin:17px 0}.stunt-actions>button{width:100%;margin:5px 0}.sheet-head{display:flex;gap:18px;align-items:center;margin-bottom:16px}#sheet-portrait{width:82px;flex-shrink:0;line-height:0}#sheet-portrait svg{width:100%}.sheet-head h2{margin-bottom:5px}.sheet-head p{margin-bottom:0;font-size:12px}#sheet-vitals{display:flex;gap:20px;border-block:1px solid var(--line);padding:15px 0}.vital>span{display:block;font-size:9px;letter-spacing:1px;color:var(--muted)}.vital>b{font-size:28px;color:var(--amber)}.vital small{font-size:11px;font-weight:400}.sheet-stats{display:flex;justify-content:space-between;margin:20px 0}.sheet-stats>span{font-size:10px;letter-spacing:1px}.sheet-stats b{display:block;font-size:23px}#xp-track>div{display:flex;justify-content:space-between;font-size:12px;color:var(--amber)}#xp-track span{font-size:10px;color:var(--muted)}#xp-track progress{width:100%;height:6px;accent-color:var(--amber)}.talent{font-size:12px}.bag-item{border-top:1px solid var(--line);padding:10px 0;font-size:13px}.bag-item button{font-size:10px!important;min-height:32px!important;padding:6px 10px!important;margin:8px 5px 0 0}.dialogue{max-height:350px;overflow:auto;overscroll-behavior:contain}.dialogue p{padding:13px;font-size:14px;border-left:2px solid #52615d;background:#111b1f}.dialogue .chat-mj{font-family:Georgia,serif;border-color:var(--amber)}.dialogue span{display:block;font:700 9px Arial;letter-spacing:1px;color:var(--amber);margin-bottom:7px}.idea-tools{display:flex;gap:10px;margin-bottom:10px}.idea-tools button{font-size:12px}.proposal{margin-top:18px;border:1px solid var(--amber);padding:17px;background:#2f332b}.proposal-effect{font-size:12px;color:var(--amber)}.proposal .small{margin-top:12px}.journal{margin-top:20px}.journal ol{padding-left:25px;font-size:13px;color:var(--muted)}.journal li{margin:6px 0}.journal li span{font:11px monospace;color:var(--amber);margin-right:8px}#private-background p{font:15px/1.5 Georgia}.at-refuge .game-grid,.at-refuge .journal{display:none}.ce:not(.tv) #game:not([hidden]):not(.at-refuge)~#rules-panel{display:none}.ce.show-game-rules #rules-panel{display:block!important}.ce:not(.tv) #game:not([data-tab=sheet]) #my-sheet,.ce:not(.tv) #game:not([data-tab=director]) #director{display:none}.ce:not(.tv) #game[data-tab=sheet] #action-panel,.ce:not(.tv) #game[data-tab=director] #action-panel{display:none}.ce:not(.tv) #game[data-tab=rules] .game-grid{display:none}
/* TV: the map and the shared story occupy the screen, with no private sheet. */
.ce.tv{overflow:hidden}.tv .ce-top{height:65px;min-height:65px;padding:10px 24px}.tv .ce-top .blc-logo,.tv .top-actions>a{display:none}.tv main{max-width:none;padding:14px 24px}.tv #game{height:calc(100dvh - 94px);display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px}.tv .mission-head{grid-row:1;margin:0;gap:30px}.tv .mission-head h1{font-size:36px;margin-bottom:5px}.tv .mission-head #brief{font-size:13px;line-height:1.4;margin:0;max-width:1250px}.tv .mission-head>div:first-child{max-width:none}.tv .mission-head .eyebrow{margin:0;font-size:10px}.tv .invite{min-width:150px;max-width:180px;align-content:center;justify-content:end}.tv .invite button{display:none}.tv .invite>span{text-align:right}.tv .party{grid-row:2;margin:0;grid-template-columns:repeat(6,1fr)}.tv .survivor{padding:6px 10px;gap:12px}.tv .party-portrait{width:50px}.tv .survivor b{font-size:14px}.tv .survivor small{font-size:10px}.tv .survivor button{display:none}.tv .game-grid{grid-row:3;display:block;min-height:0}.tv .maps{height:100%;grid-template-columns:230px minmax(0,1fr);grid-template-rows:30px minmax(0,1fr);gap:12px 24px;padding:12px 18px}.tv .map-head{height:30px}.tv .map-head .eyebrow,.tv .map-head h2,.tv #zoom-map{display:none}.tv .map-head:before{content:'SAINT-RESTE / OPÉRATION EN COURS';font:bold 11px Arial;letter-spacing:2px;color:var(--muted)}.tv .world-sidebar{min-height:0;overflow:auto}.tv .world-map{max-width:215px;margin:auto}.tv .objectives{margin:16px 0}.tv .objectives li{font-size:13px;margin-bottom:12px}.tv .group-tabs button{font-size:11px}.tv .local-scene{display:flex;flex-direction:column;min-height:0;position:relative}.tv .local-maps{flex:1;min-height:0;display:flex;justify-content:center;gap:28px}.tv .sector-scene{display:flex;flex-direction:column;min-width:0;max-width:100%;flex:0 1 auto}.tv .local-title{flex:0 0 24px;font-size:19px!important}.tv .map-scroll{flex:1;min-height:0;overflow:hidden;aspect-ratio:1}.tv .map-scroll>svg{height:100%;width:100%;object-fit:contain}.tv .local-maps.two .sector-scene{flex:0 1 auto}.tv .map-legend{margin:6px 0 0;text-align:center;font-size:11px;flex-shrink:0}.tv .transit{padding:0;flex-shrink:0}.tv .map-detail{position:absolute;bottom:30px;left:20px;right:20px}.tv .story-panel{grid-row:4;margin:0;padding:16px 24px;min-height:128px}.tv .story-copy p{font-size:19px;line-height:1.5}.tv .story-copy h2{font-size:20px}.tv .story-speaker{min-width:175px}.tv #result{grid-row:3;z-index:2;align-self:end;max-width:700px;margin:0 0 20px 270px}.tv #result~.game-grid{grid-row:3}.tv .journal,.tv #rules-panel,.tv footer:not(.opening-footer),.tv #character,.tv #host-controls,.tv #phone-tabs,.tv #controls{display:none!important}.tv .at-refuge .game-grid{display:none}.tv #game.at-refuge{grid-template-rows:auto auto 1fr}.tv .at-refuge .party{grid-template-columns:repeat(3,1fr)}.tv .at-refuge .survivor{padding:25px}.tv .at-refuge .party-portrait{width:100px}
@media(min-width:1100px){.ce:not(.tv) .phone-tabs{margin-left:auto;max-width:500px}.ce:not(.tv) #game[data-tab=map] .game-grid{grid-template-columns:1fr}.ce:not(.tv) #game[data-tab=map] #controls{display:none}}
@media(max-width:1100px){.ce .ce-top{padding:12px 18px}.ce-top>.blc-logo{display:none}.top-actions>a{display:none}.ce main{padding:20px}.ce-hero{min-height:610px}.hero-copy{padding:30px}.hero-copy>p:not(.eyebrow){max-width:350px}.radio-caption{right:20px;bottom:25px;max-width:270px}.scenario-grid{grid-template-columns:repeat(2,1fr)}.scenario-card strong{min-height:0}.scenario-art{height:200px}.character-layout{grid-template-columns:200px 1fr;gap:24px}.portrait-picker{grid-template-columns:repeat(4,1fr)}.game-grid{display:block}.maps{grid-template-columns:170px 1fr}.ce:not(.tv) #game:not([data-tab=map]) .maps{display:none}.ce:not(.tv) #game[data-tab=map] #controls{display:none}.ce:not(.tv) #game[data-tab=rules] #controls{display:none}.controls{max-width:650px;margin:auto}.phone-tabs{position:sticky;top:0;z-index:4;background:var(--ink);padding:8px 0}.rule-grid{grid-template-columns:1fr 1fr}.mission-head h1{font-size:36px}.invite{max-width:250px}.story-panel{gap:15px}.story-speaker{min-width:110px}.radio-symbol{display:none}}
@media(max-width:650px){.ce{font-size:14px}.ce .ce-top{padding:12px;flex-wrap:wrap;gap:10px}.ce-wordmark{font-size:19px}.ce-wordmark small{font-size:8px}.top-actions{gap:5px}.ce .top-actions .quiet{font-size:10px;padding:5px 7px;min-height:32px}.top-actions #silence{display:none}.ce main{padding:12px 12px 40px}.ce-hero{min-height:640px;align-items:start;background-position:65% center;background-image:linear-gradient(90deg,#11191ce3,#11191c70),url('crevez-art/saint-reste-night.webp')}.hero-copy{padding:32px 18px}.ce-hero h1{font-size:48px;margin:25px 0}.hero-copy>.eyebrow{font-size:9px;letter-spacing:1px}.hero-copy>p:not(.eyebrow){font-size:15px;max-width:285px}.hero-copy>.quiet{margin-left:0;display:block}.hero-copy .hero-foot{display:none}.radio-caption{left:18px;right:18px;bottom:20px;padding:14px 17px;max-width:none}.radio-caption blockquote{font-size:17px}.section-heading{display:block}.section-heading h2{font-size:27px}.section-heading>p{font-size:12px;margin-top:12px}.scenario-section{padding-top:35px}.scenario-grid{grid-template-columns:1fr;gap:20px}.scenario-art{height:190px}.scenario-card strong{font-size:28px}.scenario-pitch{font-size:14px}.scenario-meta{font-size:12px}.entry-grid{grid-template-columns:1fr}.panel{padding:20px}.ce h2{font-size:26px}.saved-panel{flex-wrap:wrap;gap:12px}.saved-panel h2{font-size:20px}.character-layout{display:block}.character-preview{display:grid;grid-template-columns:110px 1fr;gap:6px 18px;margin-bottom:24px;padding:12px}.character-preview>div:first-child{grid-row:1/5;width:110px}.character-preview .eyebrow{margin:2px 0 0;font-size:8px}.character-preview h3{font-size:22px;margin:0;overflow-wrap:anywhere}.character-preview>p{font-size:11px;margin:0}#preview-stats{padding:4px 0 0;border:0}#preview-stats b{font-size:20px;display:inline;margin-right:4px}#preview-stats span{font-size:8px;letter-spacing:0}.character-grid{display:block}.stats{gap:8px}.stats label{font-size:10px}.stats small{font-size:8px;min-height:23px}.portrait-picker{gap:10px}.character-workshop{padding:18px 14px}.character-workshop .section-heading h2{font-size:24px}.host-controls{display:block}.host-controls>div{margin-bottom:20px}.mission-head{display:block;margin-bottom:14px}.mission-head h1{font-size:32px;margin-bottom:10px}.mission-head #brief{font-size:12px;line-height:1.5}.mission-head .eyebrow{font-size:8px;letter-spacing:1px}.invite{max-width:none;gap:5px}.invite>span{width:auto;font-size:7px;max-width:45px}.invite strong{font-size:20px;margin:0 6px 0 0}.ce .invite button{min-height:32px;padding:6px 9px;font-size:10px}.party{grid-template-columns:repeat(3,1fr);gap:6px}.survivor{display:block;padding:6px}.party-portrait{width:38px;margin-bottom:5px}.survivor b{font-size:10px}.survivor small{font-size:8px}.story-panel{display:block;padding:16px;position:relative;margin:14px 0}.story-speaker{margin-bottom:10px}.story-speaker .eyebrow{font-size:9px}.story-speaker .eyebrow br{display:none}.story-speaker .eyebrow span{margin-left:8px}.story-copy h2{font-size:17px}.story-copy p{font-size:15px;line-height:1.5}.story-panel>button{position:absolute;top:6px;right:7px;font-size:9px;min-height:30px;padding:4px 8px}.phone-tabs{gap:3px;margin:8px 0}.ce .phone-tabs button{font-size:10px;padding:8px 4px;min-height:44px}.controls .panel{padding:18px 15px}.action-button>small{font-size:10px}.maps{padding:12px;grid-template-columns:1fr;gap:15px}.map-head{align-items:start}.map-head h2{font-size:16px}.map-head .eyebrow{font-size:8px;letter-spacing:1px}.map-tools{flex-direction:column;align-items:end;gap:4px}.map-tools .quiet{font-size:10px;min-height:32px;padding:4px 8px}.world-sidebar{display:grid;grid-template-columns:110px 1fr;gap:12px}.objectives{margin:0}.objectives .eyebrow{font-size:8px;letter-spacing:1px}.objectives li{font-size:10px;margin:0 0 10px;gap:6px}.objectives li>span{min-width:17px;height:17px}.group-tabs{grid-column:1/-1}.ce .group-tabs button{min-height:36px}.local-title{font-size:16px!important}.local-title span{font-size:9px}.rule-grid{grid-template-columns:1fr;gap:16px}.rules>details>summary{font-size:18px}.rule-intro{margin:25px 0}.rule-grid p{font-size:13px}.dice-results{gap:5px}.dice-results>span{padding:5px 10px}.sheet-head{gap:14px}#sheet-vitals{gap:16px}.vital>b{font-size:25px}.vital small{font-size:9px}.idea-tools{flex-wrap:wrap}.ce:not(.tv) #game:not(.at-refuge) .journal{display:none}.ce .rules{padding:18px}.ce footer{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.ce *{scroll-behavior:auto!important;transition:none!important}}

/* Explicit grid tracks prevent SVG's 300px intrinsic width shrinking TV maps. */
.tv .local-maps{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
.tv .local-maps.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.tv .sector-scene{display:grid;grid-template-rows:24px minmax(0,1fr);gap:8px}
.tv .map-scroll{width:100%;height:100%;aspect-ratio:auto;min-width:0}
.tv .map-scroll>svg{width:100%;height:100%}
.ce #expand-story{display:none}
@media(max-width:650px){.ce-top>.blc-logo{display:none}.ce .ce-top{gap:7px;padding-block:10px}.top-actions{width:100%;margin-left:0;justify-content:end}.ce .story-copy p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.ce .story-panel.expanded .story-copy p{display:block}.ce #expand-story{display:inline-flex;position:static;margin-top:10px;min-height:32px;font-size:10px}.ce:not(.tv) #game:not(.at-refuge) .party-portrait{float:left;width:32px;margin-right:7px}.ce:not(.tv) #game:not(.at-refuge) .survivor small{clear:both}.ce:not(.tv) #game:not(.at-refuge) .survivor b{min-height:32px}}

.ce.tv .ce-top>.blc-logo{display:none!important}
@media(max-width:650px){.ce .ce-top>.blc-logo{display:none!important}.story-speaker{padding-right:68px}.story-speaker .eyebrow span{display:none}}

/* Campaign dossiers, persistent encounters and personal recovery. */
.ce .campaign-card{position:relative;display:grid;grid-template-columns:1fr 1.05fr;align-items:stretch;width:100%;padding:0;text-align:left;background:#1c292e;color:var(--paper);border:1px solid #647572;gap:0;margin-bottom:26px;overflow:hidden;font-weight:400}.campaign-art{min-height:335px;background:linear-gradient(90deg,transparent 60%,#1c292e 100%),url('crevez-art/point-zero.webp') center 55%/cover}.campaign-copy{display:flex;flex-direction:column;align-items:start;justify-content:center;padding:30px 34px}.campaign-copy>strong{font:900 62px/.95 Impact,'Arial Black',sans-serif;letter-spacing:2px;color:#d5e8df;margin-bottom:7px}.campaign-copy>span:not(.eyebrow):not(.campaign-subtitle):not(.scenario-select){font-size:14px;line-height:1.6;max-width:550px}.campaign-subtitle{font:italic 24px/1.3 Georgia,serif;margin-bottom:14px;color:var(--amber)}.campaign-copy .campaign-meta{font-size:11px!important;color:#b4c7c2;margin-top:18px}.ce .campaign-card.selected{border-color:var(--amber);box-shadow:0 0 0 1px var(--amber)}.stat-help{border-left:2px solid var(--amber);padding:4px 13px;margin:0 0 18px;background:#142025}.stat-help p{font-size:12px;line-height:1.6;margin:8px 0}.stat-help b{color:var(--amber)}.recover-entry{border-top:1px solid var(--line);margin-top:20px;padding-top:8px}.recover-entry summary{font-size:13px}.save-status{width:100%!important;max-width:none!important;font-size:9px!important;letter-spacing:0!important;color:var(--muted);line-height:1.5}.pause-panel{display:flex;justify-content:space-between;gap:25px;align-items:center;background:#293733;border:1px solid var(--amber);padding:22px 25px;margin-bottom:18px}.pause-panel h2{font-size:25px}.pause-panel p:last-child{font-size:13px;margin:0;color:#c8d6cc}.pause-buttons{display:flex;gap:10px;flex-wrap:wrap}.recovery-controls{margin:18px 0}.recovery-controls details{max-width:720px}.recovery-controls summary{font-size:15px}#recovery-result{margin-top:18px}#recovery-key{font-family:monospace;font-size:13px}.ce:not(.tv) #game:not(.at-refuge):not([data-tab=sheet]) #recovery-controls{display:none}.npc-panel{border-top:1px solid var(--line);margin-top:20px;padding-top:5px}.npc-card{border:1px solid #556963;background:#152125;padding:14px;margin:12px 0}.npc-identity{display:flex;align-items:center;gap:12px}.npc-identity h4{font-size:17px;margin:0 0 4px;color:#e8dec8}.npc-identity p{font-size:11px;color:var(--muted);margin:0}.npc-badge{width:40px;height:40px;min-width:40px;display:grid;place-items:center;border:1px solid #b3c6b8;border-radius:50%;font:bold 22px Georgia;color:#cfdecf;background:#30443e}.npc-status{font-size:11px;color:var(--amber);margin:10px 0 0!important}.npc-card details p{font-size:12px;line-height:1.6}.npc-card summary{font-size:12px}.npc-actions>.action-button{width:100%;margin:5px 0}.npc-marker rect{fill:#afc7b7;stroke:#17312c;stroke-width:2}.npc-marker text{fill:#17312c;font:bold 17px Arial}.sheet-stats small{display:block;color:var(--muted);font-size:9px;letter-spacing:0;max-width:80px;margin-top:5px}.equipment{margin-top:20px}.equipment ul{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0}.equipment li{padding:6px 9px;background:#293b35;font-size:11px;border:1px solid #50675b}.rp-journal-lines{max-height:270px;overflow:auto;overscroll-behavior:contain}.rp-journal-lines p{font-size:12px;line-height:1.6;border-left:2px solid #93b6a2;padding:10px 12px;background:#132123}.rp-journal-lines small{display:block;color:var(--amber);font-size:9px;margin-bottom:5px}.rp-rules{margin-top:28px}.ce .is-paused .phone-tabs:after{content:'En pause';font-size:10px;color:var(--amber);align-self:center;margin-left:7px}.tv .party.large-party{grid-template-columns:repeat(8,minmax(0,1fr))}.tv .large-party .party-portrait{width:40px}.tv .large-party .survivor{padding:6px;gap:8px}.tv .large-party .survivor b{font-size:12px}.tv .large-party .survivor small{font-size:9px}.tv #recovery-controls{display:none!important}.tv .pause-panel{position:fixed;z-index:10;top:80px;left:25%;right:25%;box-shadow:0 15px 80px #000b}.tv .pause-buttons{display:none}.tv .is-paused .game-grid{opacity:.6}.tv .save-status{text-align:right}.point-zero .story-panel{border-left-color:#a8c5b7}.point-zero .ce-wordmark b{color:#b8d2c3}
@media(max-width:650px){.ce .campaign-card{display:block}.campaign-art{display:block;min-height:210px;background-image:linear-gradient(0deg,#1c292e 0%,transparent 65%),url('crevez-art/point-zero.webp');background-position:center 55%}.campaign-copy{padding:15px 22px 25px}.campaign-copy>strong{font-size:54px}.campaign-copy>.eyebrow{font-size:9px;letter-spacing:1px}.campaign-subtitle{font-size:21px}.campaign-copy>span:not(.eyebrow):not(.campaign-subtitle):not(.scenario-select){font-size:13px}.pause-panel{display:block;padding:18px}.pause-panel h2{font-size:22px}.pause-buttons{margin-top:18px}.pause-buttons button{width:100%}.recovery-controls{padding:16px}.party.large-party{grid-template-columns:repeat(4,minmax(0,1fr))}.ce:not(.tv) #game:not(.at-refuge) .large-party .party-portrait{float:none;width:30px;margin:0 0 5px}.ce:not(.tv) #game:not(.at-refuge) .large-party .survivor b{min-height:0;font-size:9px}.large-party .survivor small{font-size:7px}.sheet-stats small{font-size:8px;max-width:72px}.stat-help p{font-size:11px}.ce .is-paused .phone-tabs:after{display:none}}
.absence-controls{margin:-6px 0 14px;border-bottom:1px solid var(--line)}.absence-controls summary{font-size:12px;color:var(--muted)}#skip-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.tv #absence-controls{display:none!important}.tv #game:not(.at-refuge) .party{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
@media(max-width:650px){.party[data-count="4"],.party.large-party{grid-template-columns:repeat(2,minmax(0,1fr))}.ce:not(.tv) #game:not(.at-refuge) .large-party .survivor{display:flex;gap:7px;align-items:start}.ce:not(.tv) #game:not(.at-refuge) .large-party .survivor b{font-size:11px}.ce:not(.tv) #game:not(.at-refuge) .large-party .survivor small{font-size:9px}.ce:not(.tv) #game:not(.at-refuge) .large-party .party-portrait{flex:0 0 30px}.ce .absence-controls summary{font-size:11px}}
.pawn>svg{overflow:hidden}

/* A police dossier is distinct from a civilian survivor sheet. */
.character-identity{display:grid;grid-template-columns:1fr 1fr;gap:18px}.profession-fixed{padding:16px 18px;margin:0 0 20px;border-left:3px solid #b5d1c1;background:#17282d}.profession-fixed>span{font-size:9px;letter-spacing:2px;color:#a7bfb5;display:block}.profession-fixed>strong{display:block;font-size:24px;margin:4px 0}.profession-fixed>p{font-size:12px;color:#b5c9c1;margin:0}.specialty-field{border:0;padding:0;margin:0 0 24px}.specialty-field>legend{font-size:15px;font-weight:700;margin-bottom:11px}.specialty-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ce .specialty-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:start;text-align:left;padding:17px;background:#16232a;color:var(--paper);border:1px solid #516c65;gap:10px}.specialty-card strong{font-size:19px}.specialty-card>span{font-size:12px;line-height:1.65;color:#bacbc3;font-weight:400}.ce .specialty-card[aria-pressed=true]{background:#293c35;border:2px solid #bfd3b0;padding:16px;color:#e4ebce}.specialty-card[aria-pressed=true]>strong:after{content:' ✓';color:var(--amber)}.police-workshop .character-preview{background:#142429;border-color:#6e8981}.preview-equipment{border-top:1px solid #405b55;margin-top:14px;padding-top:14px}.preview-equipment h4{font-size:12px;color:#c3dacb;margin:0 0 10px}.preview-equipment ul{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:5px}.preview-equipment li{font-size:10px;background:#2b4037;padding:5px 8px;border:1px solid #4a6455}.preview-equipment p{font-size:10px;color:#b6c9bd;margin:10px 0 0}.trait-builder{border:1px solid #60746b;padding:20px;margin:28px 0 20px;min-width:0;background:#142127}.trait-builder legend{padding:0 8px;font:700 16px/1.4 Arial;color:#c8d9c8}.trait-preview-message{margin:16px 0;font-size:13px;line-height:1.6;color:#d0ddce}.trait-choices{display:grid;grid-template-columns:1fr 1fr;gap:14px}.trait-effects{display:grid;grid-template-columns:1fr 1fr;gap:12px}.trait-card{min-width:0;border:1px solid #3d5b4e;background:#1c3028;padding:17px;font-size:12px}.trait-card.complication{border-color:#77634b;background:#302b24}.trait-card>.eyebrow{font-size:9px;letter-spacing:1.3px}.trait-card h4{font-size:17px;line-height:1.3;margin:0 0 12px;color:#e5ead5}.trait-card dl{margin:0}.trait-card dt{font-size:10px;font-weight:700;letter-spacing:.7px;color:var(--amber);margin-top:12px}.trait-card dd{margin:3px 0 0;font-size:12px;line-height:1.6;color:#c2cfc2}.ce .trait-accept{margin-top:20px;font-size:13px;line-height:1.6}.personal-traits{margin:22px 0}.personal-traits .trait-card{margin:10px 0}.trait-warning{padding:14px;background:#3c3226;border-left:3px solid #e6b778;color:#f1dfc1;font-size:13px;line-height:1.6}.callsign{display:block;color:#bdd8c7;font-size:9px;line-height:1.4;overflow-wrap:anywhere}.tv .callsign{font-size:10px}
@media(max-width:650px){.character-identity{display:block}.specialty-cards{grid-template-columns:1fr}.ce .specialty-card{padding:14px;gap:7px}.ce .specialty-card[aria-pressed=true]{padding:13px}.specialty-card strong{font-size:18px}.specialty-card>span{font-size:12px}.preview-equipment{grid-column:1/-1;margin-top:8px}.trait-builder{padding:16px 12px;margin-top:24px}.trait-builder legend{font-size:14px}.trait-choices,.trait-effects{grid-template-columns:1fr}.trait-card{padding:14px}.trait-card dd{font-size:12px}.trait-preview-message{font-size:12px}.ce .trait-accept{font-size:12px}.profession-fixed{padding:14px}.callsign{font-size:9px}}

/* Scene camera: the selected map is explicit and follows the character until browsed. */
.map-location{margin:0 0 10px;padding:9px 12px;background:#1b2c2b;border-left:3px solid #9fc5b1;color:#cbdcd0;font-size:12px;line-height:1.5}.map-location.browsing{background:#332e24;border-color:var(--amber);color:#f0d9b5}.group-tabs button{justify-content:space-between;gap:8px}.group-tabs button>span{font-size:9px;color:#b9cdbf;white-space:nowrap}.map-tools{flex-wrap:wrap;justify-content:end}.interior-board .zone-border{stroke:#d4d4b3;stroke-opacity:.4;stroke-width:2}.interior-board .tile.current:hover .zone-border,.interior-board .tile.current:focus .zone-border{stroke-opacity:1;stroke-width:6}.needs-clarification .trait-preview-message{padding:12px;border-left:3px solid var(--amber);background:#302b24}
/* The shared board keeps its height even when Villanelle has a long scene to tell. */
.tv .mission-head #brief{display:none}.tv .mission-head h1{font-size:30px;margin:4px 0 0}.tv .mission-head .eyebrow{font-size:10px}.tv .save-status{font-size:9px;margin:0}.tv .invite{align-content:start}.tv .party-portrait{width:46px}.tv .maps{grid-template-columns:215px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:8px 20px}.tv .map-head{height:auto;min-height:25px}.tv .map-head:before{content:'POSITIONS PARTAGÉES';font-size:10px}.tv .local-scene{min-width:0}.tv .map-location{flex:0 0 auto;margin:0 0 6px;padding:4px 10px;font-size:12px;line-height:1.4}.tv .local-maps{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;min-width:0;min-height:0}.tv .local-maps.two{grid-template-columns:repeat(2,minmax(0,1fr))}.tv .sector-scene{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;max-width:none;min-width:0}.tv .local-title{font-size:20px!important;margin:0 0 5px;line-height:1.2;min-width:0}.tv .local-title>span{font-size:12px}.tv .map-scroll{width:100%;height:100%;aspect-ratio:auto;min-height:0;overflow:hidden}.tv .map-scroll>svg{display:block;width:100%;height:100%;min-width:0}.tv .map-legend{font-size:10px;margin:5px 0 0}.tv .story-panel{min-height:0;max-height:115px;padding:12px 18px;gap:18px;align-items:center;overflow:hidden}.tv .story-speaker{min-width:145px}.tv .story-copy{min-width:0}.tv .story-copy h2{font-size:17px;margin:0 0 5px}.tv .story-copy p{font-size:18px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tv .story-panel>button{align-self:center;font-size:11px;padding:7px 12px;min-height:36px;white-space:nowrap}.tv .story-panel.expanded{position:fixed;left:24px;right:24px;bottom:18px;max-height:65vh;min-height:160px;overflow:auto;z-index:20;box-shadow:0 -20px 80px #000b;align-items:flex-start}.tv .story-panel.expanded .story-copy p{display:block;overflow:visible;font-size:21px;line-height:1.6}.tv .story-panel.expanded>button{align-self:flex-start}.tv .world-sidebar .group-tabs{display:grid;grid-template-columns:1fr;gap:5px}.tv .world-sidebar .group-tabs button{min-height:34px;padding:6px 9px;font-size:11px}.tv #follow-map{min-height:30px;padding:5px 10px;font-size:11px}
@media(max-width:650px){.map-location{font-size:11px;padding:8px 10px}.map-tools{gap:6px}.ce #follow-map{font-size:10px;padding:6px 9px;min-height:34px}.local-title>span{display:block}.map-head{align-items:flex-start}.trait-builder.needs-clarification .trait-preview-message{font-size:13px}}

#story-facts{margin-top:12px;border-top:1px solid #52605a}#story-facts summary{font-size:12px;min-height:34px}#story-facts p{font:13px/1.6 Arial,sans-serif;color:#b6c9bf}.tv .story-panel:not(.expanded) #story-facts{display:none}.tv .story-panel.expanded #story-facts p{font:15px/1.6 Arial,sans-serif}
/* Voice choices stay in a small disclosure instead of widening the shared screen header. */
.ce .top-actions{position:relative;padding-right:144px;min-height:44px}.voice-settings{position:absolute;right:0;top:0;width:134px;z-index:40}.ce .voice-settings>summary{list-style:none;min-height:44px;padding:11px 12px;border:1px solid #5c6768;border-radius:3px;font-size:12px;line-height:20px;white-space:nowrap;text-align:center;background:#192529}.voice-settings>summary:after{content:' ▾';color:var(--amber)}.voice-settings[open]{width:min(330px,90vw);background:#1b2a2e;border:1px solid #697b72;box-shadow:0 15px 50px #000a;border-radius:4px;max-height:calc(100dvh - 85px);overflow:auto}.voice-settings[open]>summary{border:0;border-bottom:1px solid #53675c;text-align:right}.voice-settings[open]>summary:after{content:' ▴'}.ce .voice-settings>label{font-size:12px;margin:14px 17px}.ce .voice-settings select{padding:8px 10px;min-height:42px}.voice-settings>p{padding:0 17px;margin-bottom:17px;font-size:11px;line-height:1.6}.tv .voice-settings[open]{max-height:80dvh}.tv .voice-settings>summary{font-size:12px}
@media(max-width:650px){.ce .top-actions{width:100%;margin-left:0;padding-right:113px;min-height:34px;flex-wrap:wrap;justify-content:flex-start}.voice-settings{width:107px}.ce .voice-settings>summary{font-size:10px;min-height:32px;padding:5px 7px}.voice-settings[open]{width:min(320px,calc(100vw - 24px));max-height:calc(100dvh - 125px)}.ce .voice-settings>label{font-size:12px}.ce .voice-settings>p{font-size:11px}}

.residence-walls{fill:none;stroke-linejoin:miter}.wall-plaster{stroke:#b7aa8b;stroke-width:18}.wall-core{stroke:#3f4740;stroke-width:7}.door-frames{stroke:#dbcca6;stroke-width:7}.residence-windows{stroke:#84a5ab;stroke-width:5}.interior-board .tile-label{font-size:18px}
.tv .survivor{padding:4px 8px;gap:10px}.tv .survivor b{font-size:15px;line-height:1.15}.tv .survivor small{line-height:1.3}.tv .callsign{font-size:10px;line-height:1.2}.tv .invite>span:first-child{display:none}.tv .invite strong{font-size:24px;line-height:1.2}.tv .save-status{font-size:8px;line-height:1.25}.tv .local-title{margin:0 0 5px!important;line-height:1.2}.ce.tv #expand-story{display:inline-flex}

.npc-reply{margin:14px 0;padding:13px 15px;border-left:3px solid #c2d6b3;background:#20342e}.npc-reply>p:not(.eyebrow){font:15px/1.6 Georgia,serif;margin:0}.npc-reply>.eyebrow{font-size:9px;line-height:1.5;margin-bottom:7px}.dialogue .npc-reply>p{padding:0}.npc-reply details{margin-top:12px}.npc-reply details p{font:12px/1.6 Arial,sans-serif}

.tv #game.has-story:not(.at-refuge){grid-template-rows:auto auto minmax(0,1fr) 106px}

.scene-cast{display:none}
@media(min-width:1550px) and (min-aspect-ratio:3/2){.tv .scene-cast{display:block;position:absolute;right:6px;top:80px;width:250px;max-height:calc(100% - 105px);overflow:auto}.tv .scene-cast>.eyebrow{font-size:10px;margin:0 0 7px}.tv .scene-cast>h3{font-size:19px;line-height:1.2;margin-bottom:18px}.scene-cast article{padding:15px 13px;margin-bottom:12px;border:1px solid #425c53;background:#1a2b29}.cast-identity{display:flex;gap:12px;align-items:center}.cast-identity h4{font-size:18px;line-height:1.2;margin:0 0 5px;color:#e1e7d5}.cast-identity p{font-size:11px;line-height:1.4;color:#adbbb3;margin:0}.scene-cast .npc-badge{font-size:18px;width:40px;height:40px}.cast-place{font-size:11px;line-height:1.4;margin:13px 0 7px;color:#adbbb3}.cast-status{font-size:12px;font-weight:700;line-height:1.3;color:#d3c8a5;margin:0}}

@media(max-width:1100px){.ce:not(.tv) .maps,.ce:not(.tv) #my-sheet,.ce:not(.tv) #director,.ce:not(.tv) #action-panel{scroll-margin-top:65px}}
@media(max-width:650px){.ce:not(.tv) .maps>.map-head{grid-row:1}.ce:not(.tv) .maps>.local-scene{grid-row:2}.ce:not(.tv) .maps>.world-sidebar{grid-row:3;margin-top:10px;border-top:1px solid var(--line);padding-top:15px}}

/* Scenario cards use their own detailed sector illustrations. */
.scenario-art{background-image:linear-gradient(0deg,#1b2529 0%,transparent 80%),url('crevez-art/port-board.webp');background-size:cover;background-position:center}.scenario-1 .scenario-art{background-image:linear-gradient(0deg,#1b2529 0%,transparent 80%),url('crevez-art/refuge-board.webp');background-position:center}.scenario-2 .scenario-art{background-image:linear-gradient(0deg,#1b2529 0%,transparent 80%),url('crevez-art/village-board.webp');background-position:center}.scenario-3 .scenario-art{background-image:linear-gradient(0deg,#1b2529 0%,transparent 80%),url('crevez-art/centre-board.webp');background-position:center}

/* A public opening, composed from the real cast and the current chapter. */
.opening-status{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:24px 28px;margin:0 0 20px;border:1px solid #7b8e80;background:linear-gradient(115deg,#223731,#18272d);box-shadow:inset 4px 0 #dec28d}
.opening-status h2{font:italic 28px/1.2 Georgia,serif;margin:7px 0 12px;color:#efe4cc}
.opening-status p:not(.eyebrow){max-width:660px;font-size:13px;line-height:1.6;margin:7px 0}
.opening-status-tools{display:flex;flex-direction:column;gap:8px;flex-shrink:0}
.ce .opening-status-tools button{font-size:12px;min-height:42px}
.tv .opening-status{position:fixed;z-index:32;left:50%;bottom:150px;transform:translateX(-50%);width:min(800px,85vw);box-shadow:0 18px 70px #000b}
.tv .opening-status h2{font-size:25px}.tv .opening-status .small{display:none}
.ce .opening-stage{position:fixed;z-index:60;inset:0;width:100%;height:100dvh;isolation:isolate;background:#091116;color:#f1e7ce;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:0;padding:32px 54px 22px;font-family:Arial,sans-serif;outline:none}
.opening-stage[hidden]{display:none!important}
.opening-playing{overflow:hidden}
.opening-art,.opening-shade,.opening-grain{position:absolute;inset:0;z-index:-3;width:100%;height:100%;pointer-events:none}
.opening-art{object-fit:cover;object-position:center;filter:saturate(.7) brightness(.65);transform:scale(1.08);animation:ce-opening-drift 22s ease-out both}
.opening-shade{z-index:-2;background:linear-gradient(90deg,#081217db 0%,#09111677 45%,#07131822 80%),linear-gradient(0deg,#081116 0%,#081116aa 22%,transparent 58%,#071116aa 100%)}
.opening-grain{z-index:-1;opacity:.17;background:repeating-linear-gradient(0deg,transparent 0,transparent 3px,#b8d4c41c 4px);mix-blend-mode:screen}
.opening-stage:after{content:'';position:absolute;inset:14px;border:1px solid #c5d3b826;pointer-events:none;z-index:1}
.opening-masthead{display:flex;justify-content:space-between;align-items:start;gap:30px;padding-bottom:18px;border-bottom:1px solid #dce1c932;min-width:0}
.opening-masthead>div{min-width:0}.opening-masthead span{font:900 26px/1 Impact,'Arial Black',sans-serif;letter-spacing:4px;color:#e2d5ae}
.opening-masthead p{font-size:10px;letter-spacing:2px;line-height:1.6;text-transform:uppercase;margin:9px 0 0;color:#becbc3}
.opening-masthead>p{white-space:nowrap;color:#e2cba0;margin-top:5px}
.opening-shot{min-height:0;display:flex;align-items:center;padding:22px 0;position:relative}
.opening-title-card{max-width:1000px;min-width:0}
.opening-kicker{font:700 10px/1.6 Arial,sans-serif;letter-spacing:3px;text-transform:uppercase;color:#d6c398;margin:0 0 20px}
.opening-title-card h2{font:italic clamp(44px,5.5vw,100px)/1.05 Georgia,serif;letter-spacing:-2px;max-width:1000px;overflow-wrap:anywhere;margin:0;color:#f1ead5;text-shadow:0 3px 30px #0007;text-wrap:balance}
.opening-title-card .opening-location{font-size:15px;letter-spacing:6px;text-transform:uppercase;color:#c7d8cb;margin:28px 0 0}
.opening-dossier{display:grid;grid-template-columns:minmax(220px,38%) minmax(0,1fr);gap:60px;align-items:center;width:min(1100px,90%);min-height:0}
.opening-portrait{width:min(100%,390px);aspect-ratio:1;position:relative;border:1px solid #b8ccaa6b;padding:9px;background:#06101059;box-shadow:15px 20px 70px #0008;transform:rotate(-2deg)}
.opening-portrait:before,.opening-portrait:after{content:'';position:absolute;width:35px;height:5px;background:#cabb93;z-index:1}
.opening-portrait:before{left:0;top:-2px}.opening-portrait:after{right:0;bottom:-2px}
.opening-portrait>svg{display:block;width:100%;height:100%;filter:saturate(.7)}
.opening-cast-copy{min-width:0}.opening-cast-copy h2{font:700 clamp(42px,4.6vw,82px)/1.05 Georgia,serif;margin:0 0 16px;overflow-wrap:anywhere;color:#f3e8cf}
.opening-job{font-size:22px;line-height:1.4;color:#bcd4c6;margin:0 0 18px}
.opening-callsign{font-size:10px;letter-spacing:2px;color:#abc0b6;margin:15px 0}.opening-callsign b{font-size:15px;color:#ead8b2;letter-spacing:1px;margin-left:10px;overflow-wrap:anywhere}
.opening-dossier-line{display:block;width:65px;height:2px;background:#d1b77e;margin:28px 0 16px}
.opening-credit{font:12px/1.5 Arial,sans-serif;letter-spacing:2px;text-transform:uppercase;color:#9fb9ae;margin:0}
.opening-stage[data-kind=cast] .opening-art{filter:saturate(.4) brightness(.3) blur(5px)}
.opening-stage[data-kind=arrival] .opening-art{filter:saturate(.6) brightness(.6);object-position:center}
.opening-stage[data-kind=arrival] .opening-shade{background:linear-gradient(90deg,#061215d9,#09111666),linear-gradient(0deg,#081116 0%,#081116b0 32%,transparent 75%)}
.opening-caption{max-width:1150px;min-width:0;border-left:2px solid #c4a76d;padding:8px 0 9px 22px;margin:0 0 25px}
.opening-caption>.opening-kicker{font-size:9px;margin:0 0 8px;letter-spacing:2px;color:#b5cdbd}
#opening-subtitle{font:clamp(19px,1.55vw,29px)/1.55 Georgia,serif;color:#f0e7d3;margin:0;text-shadow:0 2px 8px #000;max-width:1120px}
.ce .opening-footer{border-top:1px solid #cbd7be3b;padding-top:18px;display:flex;justify-content:space-between;gap:24px;align-items:center}
.opening-timeline{display:grid;grid-template-columns:60px minmax(70px,200px);align-items:center;gap:7px 12px;max-width:480px}
#opening-counter{white-space:nowrap;font:12px/1.4 monospace;letter-spacing:1px;color:#e2d3ac}
#opening-progress{height:3px;width:100%;border:0;border-radius:0;appearance:none;background:#6f837266;color:#e2be7e}#opening-progress::-webkit-progress-bar{background:#6f837266}#opening-progress::-webkit-progress-value{background:#e2be7e}#opening-progress::-moz-progress-bar{background:#e2be7e}
#opening-note{grid-column:1/-1;font-size:10px;line-height:1.5;color:#a6bcae;max-width:430px}
.opening-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:end;max-width:700px}
.ce .opening-tools button{font-size:11px;min-height:38px;padding:8px 12px;border-color:#7d8f82;color:#ddd9c4;background:#10201bd9}
.ce .opening-tools #opening-enable-audio{background:#dbc391;color:#16231e;border-color:#dbc391;font-weight:700}
.opening-stage.shot-enter .opening-shot{animation:ce-opening-reveal 1.2s ease-out both}.opening-stage.shot-enter .opening-caption{animation:ce-opening-reveal 1.3s .12s ease-out both}
.opening-radio-wave{display:flex;align-items:center;gap:7px;height:35px;margin-top:28px}.opening-radio-wave i{display:block;background:#d2bd8b;width:3px;height:12px;animation:ce-opening-signal 1.8s ease-in-out infinite}.opening-radio-wave i:nth-child(3n){height:28px;animation-delay:-.6s}.opening-radio-wave i:nth-child(2n){height:18px;animation-delay:-1.2s}
.opening-stage.still *,.opening-stage.paused *{animation:none!important;transition:none!important}
.opening-stage.paused .opening-shot,.opening-stage.paused .opening-caption{opacity:.65}
.dialogue-audience select{font-size:12px}.dialogue-audience+ .field-help{margin-top:-7px;margin-bottom:18px;line-height:1.6}
.chat-audience{display:block;font-size:9px;letter-spacing:1px;color:#c7d7c2;margin-bottom:7px;text-transform:uppercase}
.trait-builder.has-error #trait-preview-message{padding:12px 14px;border-left:3px solid #e5b77b;background:#352c22;color:#eed9b9}
.trait-builder.has-error #trait-validation-help{color:#dfcba9}
@keyframes ce-opening-drift{from{transform:scale(1.08) translateX(-1%)}to{transform:scale(1.16) translateX(1%)}}
@keyframes ce-opening-reveal{from{transform:translateY(14px)}to{transform:translateY(0)}}
@keyframes ce-opening-signal{50%{transform:scaleY(.35);opacity:.5}}
@media(max-height:800px) and (min-width:900px){.ce .opening-stage{padding:22px 40px 18px}.opening-masthead{padding-bottom:12px}.opening-masthead span{font-size:21px}.opening-shot{padding:16px 0}.opening-dossier{grid-template-columns:260px minmax(0,1fr);gap:40px}.opening-cast-copy h2{font-size:53px}.opening-portrait{max-width:245px}.opening-title-card h2{font-size:63px}.opening-caption{margin-bottom:18px}#opening-subtitle{font-size:21px;line-height:1.45}.ce .opening-footer{padding-top:12px}.opening-kicker{margin-bottom:13px}}
@media(max-width:800px){.opening-status{display:block;padding:20px}.opening-status-tools{margin-top:17px;align-items:start}.opening-status h2{font-size:25px}.ce .opening-stage{padding:24px 22px 18px;grid-template-rows:auto minmax(0,1fr) auto auto}.opening-stage:after{inset:8px}.opening-masthead{gap:15px;padding-bottom:12px}.opening-masthead span{font-size:21px;letter-spacing:3px}.opening-masthead p{font-size:8px;letter-spacing:1px;line-height:1.5}.opening-masthead>p{display:none}.opening-title-card h2{font-size:clamp(35px,8vw,60px);letter-spacing:-1px}.opening-kicker{font-size:8px;letter-spacing:1.7px;margin-bottom:12px}.opening-title-card .opening-location{font-size:10px;letter-spacing:3px;margin-top:19px}.opening-dossier{grid-template-columns:minmax(80px,37%) minmax(0,1fr);gap:22px;width:100%}.opening-portrait{padding:5px}.opening-cast-copy h2{font-size:clamp(25px,6vw,45px);margin-bottom:10px}.opening-job{font-size:14px;margin-bottom:7px}.opening-callsign{font-size:7px;letter-spacing:.8px;margin:8px 0}.opening-callsign b{display:block;font-size:11px;margin:3px 0}.opening-dossier-line{margin:15px 0 10px;width:40px}.opening-credit{font-size:8px;letter-spacing:.7px}.opening-caption{padding-left:12px;margin-bottom:16px}.opening-caption>.opening-kicker{font-size:8px}#opening-subtitle{font-size:16px;line-height:1.5}.ce .opening-footer{display:block;padding-top:12px}.opening-timeline{max-width:none;grid-template-columns:55px 1fr;gap:6px 10px}.opening-tools{justify-content:start;margin-top:12px;gap:6px}.ce .opening-tools button{font-size:10px;min-height:34px;padding:6px 8px}.opening-tools #opening-motion{margin-right:auto}#opening-note{font-size:9px}.opening-radio-wave{margin-top:18px;height:20px}.tv .opening-status{bottom:20px}}
@media(max-width:450px) and (max-height:750px){.ce .opening-stage{padding:18px 18px 14px}.opening-shot{padding:12px 0}.opening-caption{margin-bottom:10px}#opening-subtitle{font-size:14px;line-height:1.45}.opening-masthead p{margin-top:5px}.opening-title-card h2{font-size:33px}.opening-cast-copy h2{font-size:26px}.opening-tools #opening-motion{display:none}.opening-dossier-line,.opening-credit{display:none}}
@media(prefers-reduced-motion:reduce){.opening-stage *{animation:none!important;transition:none!important}}

#story-question{font:12px/1.45 Arial,sans-serif;color:#bac9bb;margin:0 0 5px}.tv .story-copy #story-question{font:13px/1.4 Arial,sans-serif;color:#b4c8ba;-webkit-line-clamp:1;margin:0 0 4px}.tv .story-panel.has-question:not(.expanded) #story-text{-webkit-line-clamp:1}.tv .story-panel.expanded #story-question{font-size:17px;line-height:1.5;margin:10px 0}

.opening-time{font:30px/1.5 monospace;letter-spacing:5px;color:#d8c397;margin:22px 0 0}@media(max-width:800px){.opening-time{font-size:21px;letter-spacing:3px;margin-top:15px}}

/* Illustrated threat markers are static, including reduced-motion mode. */
.enemy-marker{pointer-events:none}.enemy-marker .enemy-ground{fill:#280c0ce0;stroke:#d07864;stroke-width:2}.enemy-marker .zombie-sprite{overflow:hidden}.enemy-marker .enemy-count circle{fill:#641f20;stroke:#ffc6a8;stroke-width:2}.enemy-marker .enemy-count text{font:bold 23px Arial;fill:#fff4e8}.tile.memory .enemy-marker{opacity:.65;filter:grayscale(.6)}.ce .effects-caption{font-size:12px;color:var(--muted);margin:0;max-width:34rem}.ce .effects-caption:empty{display:none}

.tv .effects-caption{position:fixed;bottom:6px;right:24px;z-index:25;max-width:min(620px,80vw);padding:3px 9px;background:#10181cef;border-left:2px solid #e6b778;pointer-events:none;font-size:11px}

/* PC/TV setup and authenticated phone continuation. */
.ce .device-setup{margin:20px 0;border:1px solid #a1b79c;padding:20px}.device-setup summary{cursor:pointer;font-weight:bold;line-height:1.5}.device-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;padding-top:22px}.device-grid section{min-width:0}.device-grid h2{font-size:24px}.device-qr{background:white;color:black;width:220px;max-width:100%;padding:8px;margin:16px 0;box-sizing:border-box}.device-qr svg{display:block;width:100%;height:auto}.device-resume{max-width:650px;margin:30px auto}.device-resume .button,.device-resume button{margin:8px 8px 8px 0}.device-grid p{line-height:1.6}.tv #tv-phone-help{background:#10181c;margin:0;padding:8px;font-size:12px}.tv #tv-phone-help[open]{position:fixed;right:24px;top:90px;z-index:65;width:880px;max-width:calc(100vw - 48px);max-height:80vh;overflow:auto;padding:20px;box-shadow:0 8px 35px #0008}.tv #tv-phone-help .device-grid{font-size:15px}.tv #tv-fullscreen{display:inline-block}.tv #device-setup{display:none!important}@media(max-width:700px){.device-grid{grid-template-columns:1fr;gap:18px}.device-grid h2{font-size:21px}.ce .device-setup{padding:16px}.device-qr{width:200px}}

.ce .device-qr a{display:block;font-size:12px;color:#17292b;text-align:center;line-height:1.4;padding-top:7px}


/* Campaign management stays usable on phones, including long scenario titles. */
.ce #entry-error:empty,.ce #campaign-status:empty{display:none}.ce #entry-error{color:var(--rust);padding:12px;border:1px solid currentColor;overflow-wrap:anywhere}.ce #campaign-status{padding:12px;border:1px solid var(--line)}.ce .campaign-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.ce .campaign-row [data-resume]{flex:1 1 220px;min-width:0;white-space:normal;overflow-wrap:anywhere;text-align:left}.ce .campaign-row [data-delete-campaign]{flex:0 0 auto;min-height:44px}

/* Point 0 playtest: the board owns the available height; reading never covers it. */
.mission-guidance{padding:12px;border-left:3px solid #e5b879;background:#203132;margin:0 0 16px;line-height:1.45}
.mission-guidance p{margin:6px 0}.mission-guidance .eyebrow{font-size:11px}
.mission-guidance details{font-size:13px}.mission-guidance summary{cursor:pointer}
.audio-warning{position:fixed;top:66px;right:12px;z-index:15;max-width:min(420px,90vw);padding:9px 14px;background:#3a2920;border:1px solid #e5b879;color:#fff2dc;font-size:13px;line-height:1.4;pointer-events:none}
.test-notice{position:fixed;bottom:4px;left:12px;z-index:16;margin:0;padding:4px 8px;background:#172124;color:#f4cd8d;font-size:11px;max-width:90vw}
.tv #game:not(.at-refuge){grid-template-columns:minmax(0,1fr);grid-template-rows:58px 66px minmax(0,1fr) 92px;gap:8px}
.tv #game.has-story:not(.at-refuge){grid-template-rows:58px 66px minmax(0,1fr) 92px}
.tv .mission-head{grid-row:1;margin:0;min-height:0}.tv .mission-head h1{font-size:32px;line-height:1.1;margin:3px 0}
.tv .mission-head .eyebrow{margin:0;font-size:11px}.tv #game:not(.at-refuge) .party{min-height:0}
.tv #game:not(.at-refuge) .party .survivor{padding:6px 10px;min-height:0;overflow:hidden}.tv .party-portrait{width:40px}
.tv .game-grid{min-width:0;min-height:0}.tv .maps{grid-template-columns:230px minmax(0,1fr);padding:8px 12px;gap:5px 16px}
.tv .local-scene{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;min-height:0;min-width:0}
.tv .local-maps{height:100%;width:100%;min-height:0;align-items:stretch;justify-items:stretch}
.tv .sector-scene{height:100%;min-height:0;grid-template-rows:auto minmax(0,1fr);gap:2px}
.tv .map-scroll{width:100%;height:100%;min-height:0;min-width:0;overflow:hidden}
.tv .map-scroll>svg{width:100%;height:100%;display:block;max-height:none;max-width:none}
.tv .story-panel{max-height:none;min-height:0;padding:8px 14px;gap:12px}.tv .story-copy h2{font-size:18px;margin:0 0 4px}
.tv #game.reading-story.has-story:not(.at-refuge){grid-template-columns:minmax(0,1fr) minmax(300px,28%);grid-template-rows:58px 66px minmax(0,1fr)}
.tv #game.reading-story>.mission-head,.tv #game.reading-story>.party{grid-column:1/-1}
.tv #game.reading-story .game-grid{grid-column:1;grid-row:3}
.tv #game.reading-story .story-panel.expanded{position:static;grid-column:2;grid-row:3;display:flex;flex-direction:column;align-items:stretch;overflow:auto;max-height:none;min-height:0;box-shadow:none;z-index:auto;gap:12px;padding:18px}
.tv #game.reading-story .story-panel.expanded .story-copy p{font-size:19px;line-height:1.5;display:block;overflow:visible}
.tv #game.reading-story .story-panel.expanded>button{position:static;align-self:flex-start;min-height:42px}
.tv .mission-guidance{padding:9px;font-size:13px;margin-bottom:12px}.tv .mission-guidance strong{font-size:15px}
@media(max-width:1100px){.tv #game.reading-story.has-story:not(.at-refuge){grid-template-columns:minmax(0,1fr) 300px}.tv .maps{grid-template-columns:170px minmax(0,1fr);gap:5px 10px}.tv .world-map{max-width:170px}}

.tv #game.reading-story .scene-cast{display:none}
.tv .scene-cast{position:static;width:auto;max-width:none;max-height:none;margin-top:18px;pointer-events:auto}

.ce:not(.tv) #game:not([data-tab=sheet]) #test-controls{display:none}
