:root{color-scheme:dark;--bg:#10282e;--panel:#15333a;--deep:#0b2026;--line:#ffffff17;--text:#edf0e7;--muted:#a0b5b5;--gold:#e2bd79;--mint:#a1d4c3;--danger:#ffb398;font-family:'Noto Sans KR',sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,select{font:inherit}button{cursor:pointer;border:1px solid #ffffff25;color:var(--text);background:#ffffff06;border-radius:5px;padding:11px 16px;transition:background .15s,border-color .15s,transform .15s}button:hover:not(:disabled){background:#ffffff12;border-color:var(--gold)}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button:disabled{opacity:.47;cursor:not-allowed}button.primary{background:var(--gold);color:#183136;border-color:var(--gold);font-weight:700}button.primary:hover:not(:disabled){background:#f3d292}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{font-family:'Noto Serif KR',serif}h3{font-size:1.45rem;line-height:1.55;margin-bottom:12px}h4{font-size:1.06rem;margin-bottom:12px}p{line-height:1.8}small,.small{font-size:.81rem;color:var(--muted);line-height:1.7}.muted{color:var(--muted)}.eyebrow{font-size:.72rem;letter-spacing:.2em;color:var(--gold);font-weight:600}.danger,.missing{color:var(--danger)!important}.gold{color:var(--gold)}.start-screen{min-height:100vh;background:url('assets/menu/island.png') center/cover;position:relative;display:flex;align-items:center;padding:8vw}.start-shade{position:absolute;inset:0;background:linear-gradient(90deg,#08252deb,#092d3470 53%,#092d3400),linear-gradient(0deg,#08252dc9,transparent 28%)}.start-copy{position:relative;max-width:600px}.start-copy h1{font-size:clamp(3rem,7vw,6.5rem);letter-spacing:.08em;margin:24px 0 22px}.start-sub{font-family:'Noto Serif KR',serif;font-size:1.3rem;line-height:2}.start-actions{display:flex;flex-direction:column;gap:10px;width:300px;margin:38px 0 24px}.start-actions button{padding:16px 20px;text-align:left;display:flex;justify-content:space-between;background:#0b2b3799;backdrop-filter:blur(10px)}.start-actions .primary{background:var(--gold)}.start-hint{font-size:.88rem;color:#ced9d6}.start-bottom{position:absolute;bottom:26px;left:4vw;right:4vw;display:flex;justify-content:space-between;font-size:.76rem;color:#d8e4dd}.start-bottom i{font-style:normal;font-size:.65rem;letter-spacing:.15em;margin-left:16px}.game-shell{max-width:1800px;margin:auto}.topbar{height:90px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid var(--line);gap:20px;background:#0d252c}.brand{font-family:'Noto Serif KR',serif;font-size:1.8rem;color:var(--text);text-decoration:none;white-space:nowrap;letter-spacing:.08em}.brand small{display:block;font-family:'Noto Sans KR',sans-serif;font-size:.57rem;letter-spacing:.25em;color:var(--gold);margin-top:5px}.time-strip{display:flex;gap:24px;align-items:center;font-size:.85rem;color:var(--muted)}.day{letter-spacing:.15em}.day b{font-size:2rem;letter-spacing:0;color:var(--text);font-weight:500;margin-left:6px}.ap{display:flex;align-items:center;gap:5px}.ap i{display:inline-block;width:9px;height:17px;background:#ffffff16;transform:skew(-14deg)}.ap i.on{background:var(--gold)}.ap b{margin-left:8px;font-size:.77rem;font-weight:400}.save-tools{display:flex;gap:8px}.save-tools button{font-size:.8rem;padding:7px 12px}.supply-bar{padding:13px 30px;display:flex;align-items:center;gap:27px;background:#17343b;border-bottom:1px solid var(--line);font-size:.83rem}.supply-bar>span{font-size:.74rem;color:var(--muted);margin-right:8px}.supply-bar>div{display:flex;align-items:center;gap:9px}.supply-bar>div>span{color:var(--gold);font-size:1.2rem}.supply-bar strong{font-size:1rem}.supply-bar small{margin-left:auto;font-size:.73rem}.game-layout{display:grid;grid-template-columns:154px minmax(0,1fr) 268px;gap:0}.sidebar{padding:22px 12px;border-right:1px solid var(--line);position:relative;background:#102a30}.nav-item{display:flex;align-items:center;width:100%;gap:13px;text-align:left;padding:15px 14px;border:0;color:var(--muted);margin-bottom:6px;font-size:.9rem}.nav-item>span{font-size:1.3rem;width:22px;text-align:center}.nav-item.active{background:#e2bd7918;color:var(--gold)}.nav-item i{margin-left:auto;font-style:normal}.nav-footer{padding:35px 15px;font-size:.62rem;line-height:1.6;letter-spacing:.17em;color:#7c9899}.nav-footer b{font-size:2rem;font-weight:400;display:block}.workspace{min-width:0;padding:24px;background:linear-gradient(180deg,#17343a,#10282e)}.scene{height:252px;position:relative;overflow:hidden;border-radius:7px;background:#315860}.scene-art{width:100%;height:100%;object-fit:cover}.scene-overlay{position:absolute;inset:0;background:linear-gradient(0deg,#09272df2,transparent 95%)}.scene-text{position:absolute;bottom:22px;left:27px;right:20px}.scene-text h2{font-size:2rem;margin:8px 0}.scene-text p{font-size:.88rem;color:#d3dfda;margin:0}.scene-tag{position:absolute;right:16px;top:16px;font-size:.76rem;padding:6px 11px;background:#08252aa6;border:1px solid #ffffff33;border-radius:3px}.workspace-body{padding:24px 0}.locations{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:26px}.location-chip{font-size:.79rem;padding:9px 11px;color:var(--muted)}.location-chip span{margin-right:7px;font-size:.65rem}.location-chip.active{color:var(--gold);border-color:var(--gold);background:#e2bd7910}.explore-details{display:grid;grid-template-columns:minmax(0,1fr) 225px;gap:28px}.explore-details h3{font-size:1.4rem}.explore-details .muted{font-size:.91rem}.resource-tags{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.resource-tags>span{font-size:.76rem;padding:6px 9px;background:#ffffff07;border:1px solid var(--line);border-radius:4px}.resource-tags b{font-weight:500;color:var(--mint);margin-left:4px}.action-box{background:#0a232969;border:1px solid var(--line);padding:20px;border-radius:5px;display:flex;flex-direction:column;align-self:start;gap:10px}.action-box>span{color:var(--muted);font-size:.78rem}.action-box strong{font-size:1.2rem}.action-box button{margin-top:6px;font-size:.86rem;padding:12px}.party{padding:25px 20px;border-left:1px solid var(--line);background:#102b32}.section-label{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;margin-bottom:17px;color:var(--muted)}.section-label b{font-size:.75rem;color:var(--gold)}.person{display:flex;gap:12px;width:100%;text-align:left;padding:11px 8px;border:1px solid transparent;margin-bottom:5px}.person.selected{background:#e2bd790d;border-color:#e2bd7966}.portrait{width:46px;height:55px;object-fit:cover;border-radius:4px}.person-body{flex:1;min-width:0}.person strong{font-size:.86rem;font-weight:500}.person strong small{font-size:.61rem;font-weight:400;margin-left:5px;display:inline-block}.mini-health{height:4px;background:#ffffff12;margin:8px 0 5px;border-radius:3px;overflow:hidden}.mini-health span{display:block;height:100%;background:var(--mint)}.person-meta{display:flex;justify-content:space-between;font-size:.66rem;color:var(--muted)}.day-card{border:1px solid #ffffff20;border-radius:6px;padding:17px;margin-top:22px;background:#ffffff03}.day-card p{font-size:.85rem;font-weight:600}.day-card>div{display:flex;justify-content:space-between;font-size:.78rem;margin-bottom:8px;color:var(--muted)}.day-card b{color:var(--text)}.day-card>small{display:block;font-size:.7rem;margin-top:14px}.night{width:100%;font-size:.79rem;margin-top:17px;background:#e2bd7912;color:var(--gold);border-color:#e2bd7955}.night span{float:right}.goal-note{margin-top:23px;border-left:2px solid var(--gold);padding-left:13px}.goal-note span{font-size:.77rem;color:var(--gold)}.goal-note p{font-size:.77rem;color:var(--muted);margin:7px 0}.journal{border-top:1px solid var(--line);padding-top:18px}.journal-entries{max-height:150px;overflow:auto}.journal p{font-size:.76rem;line-height:1.8;color:var(--muted);margin-bottom:9px}.journal p>span{font-size:.65rem;color:var(--gold);margin-right:12px;white-space:nowrap}.panel-heading{display:flex;justify-content:space-between;align-items:start;gap:16px;margin-bottom:15px}.panel-heading h3{margin-bottom:5px}.filter{font-size:.75rem;white-space:nowrap;color:var(--muted)}select{background:var(--deep);color:var(--text);border:1px solid #ffffff25;border-radius:4px;padding:8px;font-size:.83rem;margin-left:5px}.recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.recipe{border:1px solid var(--line);padding:16px;border-radius:5px;display:flex;flex-direction:column;background:#ffffff025}.recipe-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.item-mark{color:var(--gold);font-size:1.3rem}.recipe h4{font-size:.96rem}.recipe p{font-size:.78rem;color:var(--muted);line-height:1.7;min-height:40px;margin-bottom:15px}.costs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px}.costs>span{font-size:.67rem;color:var(--mint);background:#ffffff06;padding:3px 5px;border-radius:2px}.recipe>small{font-size:.68rem;margin-top:auto;margin-bottom:12px}.recipe button{font-size:.76rem;padding:10px 8px}.recipe.owned{border-color:#a1d4c340}.action-grid,.route-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.action-tile,.route{border:1px solid var(--line);padding:23px;border-radius:6px;display:flex;flex-direction:column;gap:10px}.action-tile p,.route p{font-size:.87rem;color:var(--muted);margin-bottom:8px}.action-tile h4{margin:0}.action-tile small{margin-bottom:12px}.action-tile button{margin-top:auto}.target-select{display:block;margin-bottom:20px;font-size:.85rem}.stat{display:flex;align-items:center;gap:8px;font-size:.78rem;padding:6px 0}.stat>span{width:60px;color:var(--muted)}.stat b{width:30px;text-align:right;font-weight:400}.stat meter{flex:1;width:60px;height:8px;appearance:none;border:none;border-radius:6px;overflow:hidden;background:#ffffff12}.stat meter::-webkit-meter-bar{background:#ffffff12;border:0}.stat meter::-webkit-meter-optimum-value{background:var(--mint)}.character-detail{display:grid;grid-template-columns:160px 1fr;gap:25px}.character-art{width:100%;height:245px;object-fit:cover;border-radius:5px}.character-detail p{font-size:.9rem}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px 20px}.skills{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:24px 0}.skills>div{background:#ffffff06;border:1px solid var(--line);padding:11px 8px;text-align:center}.skills span{display:block;color:var(--muted);font-size:.72rem;margin-bottom:5px}.skills strong{font-size:1.4rem;font-weight:500}.skills small{font-size:.66rem;margin-left:2px}.relations{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.relations>div{display:grid;grid-template-columns:1fr auto;border:1px solid var(--line);padding:12px;font-size:.86rem}.relations b{color:var(--gold)}.relations span{font-size:.71rem;color:var(--muted);grid-column:1/-1;margin-top:5px}.inventory-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:30px}.inventory-grid>div{display:flex;gap:13px;align-items:center;padding:14px;border:1px solid var(--line);font-size:.82rem}.inventory-grid>div>span{font-size:1.5rem;color:var(--gold)}.inventory-grid small{display:block;font-size:.65rem;margin-top:4px}.inventory-grid strong{margin-left:auto;font-size:1.2rem}.map-legend{display:flex;flex-wrap:wrap;gap:18px;font-size:.77rem;color:var(--muted);margin-bottom:15px}.island-map{height:460px;position:relative;background:linear-gradient(#092f3bbd,#092f3bdd),url('assets/menu/island.png') center/cover;border:1px solid #ffffff20;border-radius:6px;margin-bottom:15px}.island-map svg{position:absolute;width:100%;height:100%}.island-map line{stroke:#d3c49277;stroke-width:.4;stroke-dasharray:1 1}.map-node{position:absolute;transform:translate(-50%,-50%);background:#16343aea;font-size:.8rem;padding:9px 12px;min-width:100px;box-shadow:0 4px 20px #0005}.map-node>span{display:block;color:var(--mint);font-size:1.1rem}.map-node b{display:block;font-weight:500;white-space:nowrap}.map-node small{display:block;font-size:.6rem;max-width:130px}.map-node.locked{background:#142b30;color:#91a5a5}.map-node.selected{border-color:var(--gold);box-shadow:0 0 0 3px #e2bd7930}.map-node.discovered>span{color:var(--gold)}.route h3{font-size:1.5rem}.route ol{list-style:none;padding:0;margin:5px 0 18px}.route li{display:flex;gap:11px;font-size:.8rem;color:var(--muted);padding:11px 0;border-bottom:1px solid var(--line);line-height:1.7}.route li span{color:#829a9c}.route li.done{color:var(--mint)}.route li.done span{color:var(--mint)}.route>button:last-child{margin-top:auto}.extra-action{margin-top:20px}.modal-backdrop{position:fixed;inset:0;z-index:20;background:#061b22d9;backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:24px}.modal{width:660px;max-width:100%;max-height:94vh;overflow:auto;background:#15363e;border:1px solid #e2bd7955;border-radius:9px;box-shadow:0 25px 100px #0008}.event-art{width:100%;height:240px;object-fit:cover;display:block}.modal-body{padding:28px 32px}.modal h2{font-size:1.8rem;margin:13px 0 20px}.modal p{font-size:.96rem;color:#cedbd6}.choices{display:flex;flex-direction:column;gap:12px;margin-top:24px}.choices button{text-align:left;padding:16px;background:#ffffff04}.choices strong{display:block;font-weight:500}.choices small{display:block;margin-top:8px;font-size:.74rem}.small-modal{max-width:470px}.small-modal button{margin-right:8px}.ending-stats{display:flex;gap:14px;flex-wrap:wrap;color:var(--gold);font-size:.83rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin:20px 0}.ending-variant{font-size:.85rem!important}.ending button{margin-right:10px;margin-top:8px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);max-width:620px;width:max-content;max-width:90vw;padding:15px 22px;border:1px solid #e2bd7966;background:#0c252ef5;color:var(--text);border-radius:7px;font-size:.85rem;z-index:40;box-shadow:0 6px 30px #0006;opacity:0;pointer-events:none;transition:.2s}#toast.visible{opacity:1;transform:translate(-50%,0)}.empty{padding:20px;color:var(--muted);grid-column:1/-1}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:#536d72;border-radius:6px}
@media(min-width:1550px){.scene{height:310px}.workspace{padding:28px}.recipe-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1180px){.game-layout{grid-template-columns:112px minmax(0,1fr) 220px}.workspace{padding:18px}.sidebar{padding:18px 5px}.nav-item{gap:8px;padding:13px 9px}.party{padding:22px 10px}.supply-bar{gap:16px;padding:12px 20px}.supply-bar small{display:none}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.explore-details{grid-template-columns:1fr}.action-box{display:grid;grid-template-columns:1fr 1fr;align-items:center}.action-box button{grid-row:1/4;grid-column:2}.topbar{padding:0 20px}.time-strip{gap:13px}.brand{font-size:1.5rem}.route-grid{grid-template-columns:1fr}.character-detail{grid-template-columns:115px 1fr;gap:16px}.status-grid{grid-template-columns:1fr}}
@media(max-width:900px){.game-layout{grid-template-columns:80px minmax(0,1fr)}.party{grid-column:2;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-left:0;border-top:1px solid var(--line);padding:18px}.party>.section-label{grid-column:1/-1}.party .day-card{grid-column:1/-1;margin-top:8px}.party .goal-note{grid-column:1/-1;margin-top:8px}.sidebar{grid-row:1/3}.nav-item{flex-direction:column;gap:2px;font-size:.75rem;padding:10px 3px}.nav-item i{display:none}.nav-footer{padding:25px 8px;font-size:.53rem}.topbar{flex-wrap:wrap;height:auto;min-height:94px;padding:15px;gap:12px}.time-strip{margin-left:auto}.save-tools{margin-left:auto}.supply-bar{flex-wrap:wrap;gap:12px;font-size:.75rem;padding:10px 15px}.supply-bar>span{display:none}.scene{height:235px}.person{padding:7px 3px;gap:8px}.portrait{width:38px;height:48px}.person-meta{font-size:.6rem}.person strong small{display:block;margin-left:0}.party .day-card{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.day-card>p{width:100%;margin:0}.day-card>small{margin:0}.day-card>div{gap:12px;margin:0}.day-card .night{width:auto;margin:0 0 0 auto}.character-detail{grid-template-columns:135px 1fr}.status-grid{grid-template-columns:1fr 1fr}.start-bottom span:last-child{display:none}}
@media(max-width:580px){.topbar .brand{font-size:1.3rem}.time-strip{gap:9px}.day b{font-size:1.5rem}.ap i{width:6px;height:12px}.ap b{font-size:.65rem}.time-strip>span:nth-child(2){display:none}.save-tools{width:100%;justify-content:flex-end}.save-tools button{font-size:.73rem}.game-layout{display:flex;flex-direction:column}.sidebar{display:flex;overflow-x:auto;padding:8px 6px;position:sticky;top:0;z-index:5;gap:4px}.nav-item{min-width:58px;margin:0;padding:6px}.nav-footer{display:none}.workspace{padding:12px}.scene{height:205px}.scene-text{left:18px;bottom:18px}.scene-text h2{font-size:1.6rem}.scene-text p{font-size:.76rem}.scene-tag{font-size:.65rem}.eyebrow{font-size:.63rem}.party{grid-template-columns:1fr 1fr;padding:12px}.action-grid{grid-template-columns:1fr}.recipe-grid{gap:8px}.recipe{padding:11px}.recipe h4{font-size:.89rem}.recipe p{font-size:.72rem}.recipe-top .small{font-size:.61rem}.panel-heading{display:block}.filter{display:block;margin-bottom:16px}.inventory-grid{grid-template-columns:1fr}.character-detail{grid-template-columns:85px 1fr;gap:13px}.character-art{height:155px}.status-grid{grid-template-columns:1fr}.skills{grid-template-columns:repeat(4,1fr)}.island-map{height:420px}.map-node{min-width:65px;padding:7px 5px;font-size:.65rem}.map-node small{font-size:.5rem;max-width:82px}.map-node b{white-space:normal}.map-legend{gap:10px;font-size:.65rem}.modal-backdrop{padding:10px}.event-art{height:180px}.modal-body{padding:22px}.modal h2{font-size:1.5rem}.start-screen{padding:8vw}.start-copy h1{font-size:3.4rem}.start-actions{width:min(300px,84vw)}.start-sub{font-size:1.08rem}.supply-bar>div{gap:6px}.supply-bar{gap:9px}.supply-bar strong{font-size:.87rem}.workspace-body{padding:20px 0}.action-box{grid-template-columns:1fr}.action-box button{grid-row:auto;grid-column:auto}.modal .ending-stats{gap:9px;font-size:.75rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

@media(min-width:901px){.topbar{position:sticky;top:0;z-index:12}.supply-bar{position:sticky;top:90px;z-index:11}.sidebar,.party{position:sticky;top:144px;align-self:start;max-height:calc(100vh - 144px);overflow-y:auto}.sidebar{min-height:calc(100vh - 144px)}}

/* Finished character illustrations */
.portrait{width:54px;height:64px;object-position:center top}.character-detail{grid-template-columns:minmax(180px,240px) minmax(0,1fr)}.character-art{height:auto;aspect-ratio:2/3;object-position:center top;border:1px solid var(--line)}
@media(max-width:1180px) and (min-width:581px){.character-detail{grid-template-columns:180px minmax(0,1fr)}}
@media(max-width:580px){.character-detail{grid-template-columns:1fr}.character-art{max-width:300px;width:100%;margin:auto}.portrait{width:46px;height:56px}}

.profile-badges{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 16px}.profile-badges span{color:var(--gold);background:#e2bd7912;border:1px solid #e2bd7933;padding:5px 10px;border-radius:4px;font-size:.8rem}.profile-panel{margin-top:26px;padding:22px;border:1px solid var(--line);border-radius:6px;background:#ffffff03}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}.profile-grid dt{color:var(--gold);font-size:.85rem;margin-bottom:7px}.profile-grid dd{margin:0;color:var(--muted);font-size:.92rem;line-height:1.8}.profile-grid>div:last-child{grid-column:1/-1}.profile-panel blockquote{margin:24px 0 0;border-left:2px solid var(--gold);padding:10px 16px;line-height:1.8;color:var(--text)}@media(max-width:580px){.profile-grid{grid-template-columns:1fr}.profile-panel{padding:16px}.profile-panel h3{font-size:1.15rem}}

.dispatch-board{padding:24px;background:#163c43;border-bottom:1px solid #466066;color:#eef3e9}
.dispatch-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}
.dispatch-heading h3{margin:4px 0}.dispatch-heading p{margin:4px 0;color:#c1cfc8}
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.team-card{padding:15px;border:1px solid #627878;background:#21474b;border-radius:10px;min-width:0}
.team-card.active{border-color:#e8c77f;box-shadow:0 0 0 1px #e8c77f}
.team-card h4{font-size:14px}.team-card p{font-size:12px;line-height:1.6}.team-card small{display:block;font-size:11px}
.team-faces{display:flex;gap:8px;margin-top:12px}.team-faces button{display:flex;flex:1;align-items:center;flex-direction:column;background:transparent;color:inherit;padding:5px;font-size:12px;gap:5px}
.team-faces .portrait{width:48px;height:60px;object-fit:cover;border-radius:5px}.team-faces .chosen{outline:1px solid #e8c77f}
.team-edit{display:flex;gap:7px}.team-edit label{font-size:11px;min-width:0;flex:1}.team-edit select{width:100%;margin-top:6px;padding:5px;font-size:12px}
.team-card progress{width:100%;accent-color:#e8c77f}.team-card>button{margin-top:10px;font-size:11px}
@media(max-width:1100px){.team-grid{grid-template-columns:1fr}.team-faces{max-width:230px}.dispatch-heading{align-items:flex-start}.team-edit{max-width:330px}}

/* Map-first dispatch surface */
.map-layout{grid-template-columns:minmax(0,1fr) 250px!important}.map-layout .workspace{padding:22px;min-width:0}.world-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.world-heading h2{font-size:1.8rem;margin:7px 0}.world-heading p{color:var(--muted);font-size:.85rem;margin:0}.world-heading button{white-space:nowrap}
.map-scroll{overflow-x:auto;border-radius:10px;border:1px solid #afccac55}.world-map.island-map{height:auto;aspect-ratio:10/7;min-width:700px;position:relative;margin:0;border:0;border-radius:0;background:#174e5c}
.world-map .world-art{width:100%;height:100%;position:absolute;inset:0}.world-map .world-paths line{stroke:#f3e3ab;stroke-width:2;stroke-dasharray:5 7;opacity:.55}
.world-map .map-node{min-width:115px;max-width:155px;padding:7px 10px;transform:translate(-50%,0);background:#163e3fee;border:1px solid #d6d6aa88;border-radius:6px;font-size:.8rem}
.world-map .map-node.locked{background:#243d41e8;color:#bbc7bb;border-style:dashed}.world-map .map-node.discovered{border-color:#dfc886}.world-map .map-node.camp-node{background:#795f37;border-color:#f0d29a}.world-map .map-node.selected{box-shadow:0 0 0 4px #f4d27a55}
.world-map .map-node small{max-width:none;font-size:.62rem}.world-map .map-node em{display:block;font-size:.64rem;font-style:normal;color:#f6d88c;margin-top:5px}.world-section .map-legend{margin:12px 0 20px}.world-section .map-legend small{margin-left:auto}.map-layout .dispatch-board{border-radius:8px;margin:20px 0}.map-layout .team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.site-modal{width:1020px;max-height:92vh;position:relative}.site-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;background:#112e35;position:sticky;top:0;z-index:3;border-bottom:1px solid var(--line)}.site-header h2{font-size:1.55rem;margin:6px 0 0}.site-header button{white-space:nowrap}.site-header .eyebrow{margin:0}
.site-banner{position:relative;height:150px;overflow:hidden}.site-art{width:100%;height:100%;object-fit:cover}.site-banner p{position:absolute;bottom:0;left:0;margin:0;padding:25px 24px 12px;width:100%;background:linear-gradient(transparent,#0c2a31);font-size:.85rem}
.popup-teams{padding:18px 24px;background:#102f36}.popup-teams h3{font-size:.95rem;margin:0 0 10px}.popup-teams>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.popup-teams article{padding:10px;border:1px solid var(--line);border-radius:5px}.popup-teams article.active{border-color:var(--gold);background:#ddbf7910}.popup-teams article>strong{font-size:.75rem;color:var(--gold)}.popup-teams article>div{display:flex;gap:4px;margin-top:8px}.popup-teams button{display:flex;align-items:center;gap:6px;padding:5px;flex:1;min-width:0;text-align:left;font-size:.75rem}.popup-teams .portrait{width:32px;height:42px}.popup-teams small{display:block;font-size:.62rem}.popup-teams>small{margin-top:10px;color:var(--muted)}.popup-teams .chosen{border-color:var(--gold)}
.camp-tabs{display:flex;gap:7px;padding:15px 24px 0;flex-wrap:wrap}.camp-tabs button{font-size:.8rem}.camp-tabs .active{background:var(--gold);color:#173038}
.site-body{padding:24px}.site-body .locations{display:none}.site-body .explore-details{grid-template-columns:minmax(0,1fr) 260px}.site-body .action-box{display:flex}.site-body .recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.site-escape{margin-top:20px;border-top:1px solid var(--line);padding-top:18px}.site-escape summary{cursor:pointer;color:var(--gold);margin-bottom:16px}.site-beach .route:first-child,.site-ruins .route:last-child{display:none}.site-escape .route-grid{grid-template-columns:1fr}.site-backdrop{z-index:22}
@media(max-width:1100px){.map-layout{grid-template-columns:minmax(0,1fr)!important}.map-layout .party{grid-column:1;position:static;display:grid;grid-template-columns:repeat(3,1fr);max-height:none}.map-layout .party>.section-label,.map-layout .day-card,.map-layout .goal-note{grid-column:1/-1}.popup-teams article>div{flex-direction:column}}
@media(max-width:650px){.map-layout .workspace{padding:12px}.world-heading{align-items:flex-start}.world-heading h2{font-size:1.2rem}.world-heading p{font-size:.72rem}.world-heading button{font-size:.75rem}.world-map.island-map{min-width:700px}.world-section .map-legend small{display:none}.map-layout .team-grid{grid-template-columns:1fr}.map-layout .party{grid-template-columns:1fr 1fr}.site-header{padding:12px 15px}.site-header h2{font-size:1.2rem}.site-body{padding:15px}.popup-teams{padding:12px}.popup-teams>div{gap:5px}.popup-teams article{padding:5px}.popup-teams button{flex-direction:column;text-align:center;width:100%}.popup-teams .portrait{width:35px;height:43px}.site-body .explore-details{grid-template-columns:1fr}.site-body .recipe-grid{grid-template-columns:1fr 1fr}.camp-tabs{padding:12px;gap:5px}.camp-tabs button{padding:7px;font-size:.73rem}.site-banner{height:110px}.site-banner p{font-size:.72rem}.site-header{position:static}}
.world-map .map-node::before{content:"";position:absolute;left:0;right:0;top:-75px;height:75px}.world-map .map-node:focus-visible{outline:3px solid #fff2bd;outline-offset:5px}
/* Unique location artwork in destination popups. */
.site-banner{height:280px}.site-art{object-position:center 48%}.site-camp .site-art{object-position:center 62%}.site-ruins .site-art{object-position:center 35%}.site-banner p{padding-top:40px;text-shadow:0 1px 3px #000}
@media(max-width:650px){.site-banner{height:190px}.site-art{object-position:center}.site-camp .site-art{object-position:center 58%}}

/* Compact, directly clickable landmark drawings. */
.map-controls{display:flex;align-items:center;gap:9px;padding:10px 0 13px}.map-controls button{padding:6px 12px}.map-controls>span{font-size:.8rem;min-width:42px;text-align:center}.map-controls small{margin-left:auto;font-size:.72rem}
.map-scroll{max-height:70vh;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;position:relative}
.world-map.island-map{min-width:1000px;max-width:none}
.world-map .landmark-button{width:7.5%;height:10%;min-width:44px;max-width:none;min-height:44px;transform:translate(-50%,-50%);padding:0;background:transparent!important;border:0!important;border-radius:50%;box-shadow:none!important;overflow:visible}
.world-map .landmark-button::before{display:none}
.world-map .landmark-button .landmark-art{position:static;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 4px 3px #163a4366);transition:filter .15s}
.world-map .landmark-button:hover .landmark-art,.world-map .landmark-button:focus-visible .landmark-art{filter:drop-shadow(0 0 5px #ffe4a4)}
.world-map .landmark-button.selected{outline:2px solid var(--gold)}
.landmark-tooltip{display:none;position:absolute;z-index:7;top:95%;left:50%;transform:translateX(-50%);width:max-content;max-width:190px;background:#102d36f5;border:1px solid #d8c88e66;border-radius:5px;padding:7px 10px;pointer-events:none;text-align:center;box-shadow:0 5px 14px #0005}
.world-map .landmark-tooltip b{font-size:11px;letter-spacing:.02em}.world-map .landmark-tooltip small,.world-map .landmark-tooltip em{font-size:10px}
.landmark-button:hover,.landmark-button:focus-visible{z-index:8}.landmark-button:hover .landmark-tooltip,.landmark-button:focus-visible .landmark-tooltip{display:block}
.landmark-badge{position:absolute;right:-2px;top:0;background:#dfc17d;color:#17343c;border-radius:10px;font-size:10px;padding:2px 5px}
@media(max-width:650px){.map-controls{flex-wrap:wrap}.map-controls small{width:100%;margin:0}.map-scroll{max-height:65vh}.world-map.island-map{min-width:1000px}}

.world-map .landmark-button .landmark-tooltip{display:none}.world-map .landmark-button:hover .landmark-tooltip,.world-map .landmark-button:focus-visible .landmark-tooltip{display:block}

.fog-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.world-map .landmark-button{z-index:3}.area-input{position:absolute;inset:0;z-index:12;cursor:crosshair;touch-action:none;background:transparent}
.drag-box{display:none;position:absolute;background:#e6cb6a33;border:2px solid #ffdf8f;pointer-events:none}
.gather-marker{position:absolute;transform:translate(-50%,-50%);z-index:4;padding:0;border:1px solid #b7d9a9;background:#20473ae8;color:#e2efc4;border-radius:50%;width:27px;height:27px;font-size:15px;min-width:0}
.gather-marker.one-shot{border-radius:5px;border-color:#e6bd6e;color:#f6d99f}.gather-marker.depleted{opacity:.5}
.gather-marker small{display:none;position:absolute;top:110%;left:50%;transform:translateX(-50%);padding:5px 7px;background:#112e35;color:#fff;white-space:nowrap;font-size:11px;pointer-events:none}
.gather-marker:hover,.gather-marker:focus-visible{z-index:9}.gather-marker:hover small,.gather-marker:focus-visible small{display:block}
.map-controls{flex-wrap:wrap}.area-controls{width:100%;padding:10px 0}.area-controls>span{font-size:12px;margin-left:14px}.area-controls p{font-size:12px;color:var(--muted);margin:8px 0}
.area-controls details{margin-top:10px}.area-controls summary{cursor:pointer;font-size:12px}.area-controls label{display:inline-flex;gap:5px;align-items:center;font-size:12px;margin-right:8px}.area-controls input{width:55px;background:#173c43;border:1px solid #5c7e83;color:white;padding:7px}

.debug-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border:1px dashed #bd9046;border-radius:8px;background:#fff3d8;color:#62441c}.debug-tools b{font-size:11px;letter-spacing:1px}.debug-tools small{font-size:12px}

.world-map .landmark-button.unexplored{opacity:.32;pointer-events:none;z-index:0;cursor:default}.world-map .landmark-button.unexplored .landmark-art{filter:grayscale(.7) blur(1px);box-shadow:none}.world-map .landmark-button.unexplored .landmark-tooltip{display:none!important}

/* A field chart spread across the camp table. */
.world-section{padding:22px;background:radial-gradient(ellipse at 50% 30%,#35403355,transparent 70%),repeating-linear-gradient(3deg,#191f1b 0px,#191f1b 3px,#1d231e 4px,#1d231e 8px);border:1px solid #857b4b44;border-radius:9px;box-shadow:inset 0 0 70px #0005,0 12px 35px #0003}
.world-heading h2{color:#e3dbc1;letter-spacing:.035em}.world-heading p,.world-section .map-controls small,.world-section .area-controls p{color:#aaa990}
.world-section .eyebrow{color:#b9af83}.world-section .map-controls button{background:#b7ac7910;border-color:#b7ac7938;color:#d6ceb1}.world-section .map-controls button.active,.world-section .map-controls button.primary{background:#b7ab79;color:#242c24}
.world-section .map-scroll{border:1px solid #b8aa7155;padding:0;background:#292f27;box-shadow:0 8px 22px #0008;scrollbar-color:#6b7156 #262e26}
.world-map.island-map{border-radius:2px;border:0;background:#343e38;isolation:isolate}
.world-map::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;background:linear-gradient(90deg,transparent 32.7%,#090f0b20 33.1%,#e8dcab15 33.3%,transparent 33.8%,transparent 66.1%,#090f0b22 66.5%,#e8dcab15 66.7%,transparent 67.1%),linear-gradient(0deg,transparent 49.4%,#10190e25 49.9%,#efdeb01c 50.1%,transparent 50.7%);box-shadow:inset 0 0 36px #131a1680,inset 0 0 3px #c8b98d70}
.world-map .world-paths line{stroke:#d4c28a;opacity:.38;stroke-width:1.3}
.world-map .landmark-button .landmark-art{filter:sepia(.4) saturate(.65) drop-shadow(0 3px 2px #14251a80)}
.world-map .landmark-button.unexplored .landmark-art{filter:sepia(.6) saturate(.3) blur(1px)}
.world-map .gather-marker{background:#303d2eeb;border-color:#aeac7c;color:#e2d5a1;box-shadow:0 2px 5px #111a1466}
.world-section .map-legend{background:#10191280;padding:13px 16px;border:1px solid #9f93612e;color:#c9c1a0;margin-top:12px;border-radius:4px}
@media(max-width:650px){.world-section{padding:12px}}

/* The raster chart supplies the paper folds and ocean engraving. */
.world-map::after{background:none;box-shadow:inset 0 0 14px #131a1630}.world-section .map-scroll{border-color:#80714e66;box-shadow:0 9px 30px #0009}.world-map.island-map{background:#292c22}

/* Ink printed into the weathered chart, rather than raised map stickers. */
.world-map .landmark-button .landmark-art{filter:sepia(.8) saturate(.4) contrast(.8);opacity:.82}.world-map .landmark-button.unexplored{opacity:.28}.world-map .landmark-button.unexplored .landmark-art{filter:sepia(.9) saturate(.2) blur(.5px)}.world-map .gather-marker{box-shadow:none;border-width:1px;background:#30392ad9}

.world-map .island-terrain-raster{filter:saturate(.7) brightness(.85)}

.world-map .landmark-button .landmark-art{color:#f1d596;filter:none;opacity:.42}.world-map .landmark-button:hover .landmark-art,.world-map .landmark-button:focus-visible .landmark-art{opacity:1;filter:drop-shadow(0 0 3px #251a09)}.world-map .landmark-button.unexplored .landmark-art{opacity:0}.world-map .island-terrain-raster{filter:saturate(.65) brightness(.88)}

.world-map .natural-coast{filter:saturate(.72) brightness(.93)}

[data-team-select]{cursor:pointer;transition:border-color .15s,background .15s}[data-team-select]:hover{border-color:#cbb778!important}[data-team-select]:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.area-input>svg{width:100%;height:100%;overflow:hidden}.area-input text{fill:#f4e4b6;font-size:13px;paint-order:stroke;stroke:#26352c;stroke-width:3px}.area-input [data-handle]{cursor:grab}.shape-tools{display:flex;flex-wrap:wrap;gap:7px;padding:10px 0}.shape-tools p{width:100%;margin:2px 0}

.popup-teams [aria-disabled="true"]{opacity:.48;cursor:not-allowed}

.progress-modal{max-width:960px}.progress-art{position:relative}.progress-art .event-art{width:100%;height:clamp(220px,35vh,390px);object-fit:cover}.scene-stamp{position:absolute;left:24px;bottom:18px;background:#10252be8;padding:9px 14px;color:#ead292;border:1px solid #8d927a;border-radius:6px}.scene-members{display:flex;gap:18px;margin:18px 0}.scene-members>div{display:flex;align-items:center;gap:10px}.scene-members .portrait{width:48px;height:64px;object-fit:cover;border-radius:5px}.scene-narration{font-size:1.1rem;line-height:1.9}.scene-results{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.scene-results span{padding:7px 10px;background:#abcbb91a;border:1px solid #abcbb955;border-radius:5px}.scene-footer{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:20px}.progress-modal progress{width:100%;accent-color:#dbc182}

.progress-modal .choices button.primary{background:#dbc182;color:#173039;border-color:#dbc182}.progress-modal .choices button.primary:hover{background:#eed49b}

.area-duration-label{position:absolute;transform:translate(-50%,-50%);pointer-events:none;z-index:3;min-width:130px;padding:9px 14px;border:1px solid #d9cb94aa;border-radius:9px;background:#132e32ed;color:#f3dfab;text-align:center;box-shadow:0 3px 14px #0008;white-space:nowrap}.area-duration-label b{display:block;font-size:16px}.area-duration-label small{display:block;color:#d0dbd5;font-size:11px;margin-top:3px}

.area-duration-label.over{border-color:#f17474;color:#ffc0b7}.area-duration-label.short{border-color:#e7ad64;color:#ffe0ab}.area-duration-label small{white-space:normal;max-width:260px}

.worker-picker{padding:20px;border-bottom:1px solid #64777655}.worker-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.worker-heading h3{margin-right:auto}.worker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.worker-grid button{display:flex;align-items:center;text-align:left;gap:10px;padding:12px;min-width:0}.worker-grid .portrait{width:48px;height:64px;object-fit:cover;border-radius:5px}.worker-grid small{display:block;font-size:12px}.worker-grid .chosen{border-color:#dfc37d;background:#d7c18b20}.scene-members{flex-wrap:wrap}@media(max-width:650px){.worker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.worker-grid button{padding:6px;gap:6px}.worker-grid .portrait{width:35px;height:48px}}

.area-input .drag-box{pointer-events:auto}

.name-field{display:flex;flex-direction:column;gap:6px;max-width:320px;margin:20px 0;color:#e7d6a0}.name-field input{padding:12px;border:1px solid #bea76b;background:#102b32;color:#fff;border-radius:6px;font-size:18px}.name-field small{font-size:12px}.story-modal{max-width:850px}.story-modal .event-art{height:260px;object-fit:cover;width:100%}.story-dialogue{display:flex;gap:18px;line-height:1.8}.story-dialogue b{min-width:65px;color:#e5ca8e}.story-objective{border:1px solid #b7a66a66;padding:14px}.story-modal .choices .primary{background:#dfc389;color:#123039}

.camp-summary{padding:20px 24px;margin:0 0 24px;background:#233d40;border:1px solid #7f8064;border-radius:8px}.camp-summary progress{width:100%;height:10px}.camp-summary h3{margin-top:0}

/* Atmospheric game layers stay separate from original illustrations. */
.weather-frame{display:block;position:relative;overflow:hidden;isolation:isolate}
.weather-frame>.weather-base{display:block;width:100%;height:100%;object-fit:cover;object-position:inherit}
.weather-effects,.weather-effects>i{position:absolute;inset:0;display:block;pointer-events:none}
.weather-effects{overflow:hidden;z-index:1}
.weather-cloud .weather-base{filter:saturate(.73) brightness(.87)}
.weather-rain .weather-base{filter:saturate(.66) brightness(.77)}
.weather-storm .weather-base{filter:saturate(.55) brightness(.63)}
.weather-frame[data-time=night] .weather-base{filter:saturate(.85)}
.weather-frame[data-time=night].weather-storm .weather-base{filter:saturate(.7) brightness(.82)}
.art-weather-exact .weather-base{filter:none!important}
.weather-cloud .weather-shade{background:linear-gradient(#52656e42,#71807912)}
.weather-rain .weather-shade{background:linear-gradient(#334d5e65,#78919c18)}
.weather-storm .weather-shade{background:linear-gradient(#172e437a,#6f869635)}
.weather-clouds{opacity:0;background:radial-gradient(ellipse at 12% 0%,#aab6b36b,transparent 55%),radial-gradient(ellipse at 85% 15%,#2439477a,transparent 65%);animation:cloud-drift 24s ease-in-out infinite alternate}
.weather-cloud .weather-clouds{opacity:.5}
.weather-rain .weather-clouds{opacity:.6}
.weather-storm .weather-clouds{opacity:.85}
/* Fixed masks + exact tile-height travel keep rain continuous at every loop. */
.weather-drops{--rain-angle:-12deg;--rain-far:9.9s;--rain-near:6.65s;opacity:1;overflow:hidden;mask-image:linear-gradient(transparent,#000 9%,#000 94%,transparent)}
.weather-drops::before,.weather-drops::after{content:"";position:absolute;inset:-160px -35%;background-repeat:repeat;background-size:2048px 1536px;--rain-travel:1536px;transform:skewX(var(--rain-angle));pointer-events:none;animation:rain-stream var(--rain-far) linear infinite;will-change:background-position}
.weather-drops::before{background-image:url("assets/weather/rain-far.svg");opacity:.55;animation-delay:-.73s}
.weather-drops::after{background-size:2304px 1792px;--rain-travel:1792px;background-image:url("assets/weather/rain-near.svg");opacity:.7;animation-duration:var(--rain-near);animation-delay:-.41s}
.weather-storm .weather-drops{--rain-angle:-22deg;--rain-far:6.3s;--rain-near:4.34s}
.weather-storm .weather-drops::before{opacity:.8;background-size:1365.333px 1536px}
.weather-storm .weather-drops::after{opacity:.95;background-size:1536px 1792px}
.art-weather-exact .weather-shade,.art-weather-exact .weather-clouds{opacity:0}
.map-weather{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;mask-image:radial-gradient(ellipse at 50% 49%,#000 46%,transparent 83%)}
.map-weather.weather-clear{display:none}
@keyframes rain-stream{from{background-position:0 0}to{background-position:0 var(--rain-travel)}}
@keyframes cloud-drift{to{transform:translate(3%,-2%);opacity:.32}}
@media(prefers-reduced-motion:reduce){.weather-drops::before,.weather-drops::after,.weather-clouds{animation:none}}
.art-weather-exact .weather-drops{display:none}

.tutorial-tip{position:fixed;right:22px;bottom:20px;width:min(340px,calc(100vw - 32px));z-index:150;padding:20px;background:#19343a;border:1px solid #d6bb7a;border-radius:12px;box-shadow:0 10px 35px #0009;color:#f4eddb}.tutorial-tip small{color:#d6bb7a}.tutorial-tip h3{margin:8px 0}.tutorial-tip p{font-size:14px;line-height:1.7}.tutorial-tip button{width:100%}.tutorial-focus{outline:2px solid #e6c986;outline-offset:4px}.site-modal{padding-bottom:80px}@media(max-width:700px){.tutorial-tip{right:12px;bottom:12px;padding:12px;max-height:38vh;overflow:auto}.tutorial-tip p{margin:6px 0;font-size:12px}}

.drag-box.invalid{border-color:#f17474;background:#f1747444}
.weather-frame.art-pending{background:#182e32;min-height:140px}
.weather-frame.art-pending>.weather-base{opacity:0}
.art-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px;padding:24px;color:#e6d8b3;background:radial-gradient(ellipse at center,#2a4547,#152a2e);font-size:14px;text-align:center;z-index:2}
.art-loading button{padding:8px 12px}
