:root{--bg-0: #070c26;--bg-1: #0e1640;--bg-2: #16215a;--panel-bg: linear-gradient(180deg, rgba(27, 39, 98, .96), rgba(12, 19, 58, .98));--card-bg: rgba(255, 255, 255, .04);--gold: #e3c27a;--gold-2: #b8924a;--gold-3: #8a6a35;--gold-glow: rgba(227, 194, 122, .35);--text: #eef1ff;--muted: #a9b4dd;--dim: #6f7ab0;--energy: #f6cf4b;--water: #4db4ff;--food: #86cf6a;--happy: #cdb0f7;--wood: #c98d55;--coin: #f4c34f;--up: #8fe3a8;--down: #ff9a76;--danger: #ff7a5b;--font-display: "Cinzel", Georgia, serif;--font-body: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--font-hand: "Patrick Hand", "Comic Sans MS", "Nunito", sans-serif;--font-script: "Caveat", "Segoe Script", cursive;--ink: #1f2a5a;--ink-soft: #4a4f6e;--parch-1: #fbf2db;--parch-2: #efdfbb;--parch-3: #dcc394;--r: 14px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-0);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.45;overflow:hidden;-webkit-font-smoothing:antialiased}button{font-family:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}h1,h2,h3{margin:0}p{margin:0 0 10px}.game{position:relative;width:100vw;height:100vh;height:100dvh;overflow:hidden;background:var(--bg-0);-webkit-user-select:none;user-select:none}.panel{background:var(--panel-bg);border:1.5px solid var(--gold-2);border-radius:var(--r);box-shadow:0 0 0 1px #00000073,inset 0 0 0 1px #ffe8b412,inset 0 1px #ffffff0f,0 10px 30px #03061980}.orn{position:relative}.orn:before{content:"✦";position:absolute;top:-11px;left:50%;transform:translate(-50%);color:var(--gold);font-size:16px;text-shadow:0 0 8px var(--gold-glow);pointer-events:none}.card{background:var(--card-bg);border:1px solid rgba(227,194,122,.22);border-radius:12px;padding:12px 14px}.bar{height:8px;border-radius:99px;background:#050920bf;border:1px solid rgba(255,255,255,.08);overflow:hidden}.bar.thin{height:6px}.bar-fill{height:100%;border-radius:99px;transition:width .6s cubic-bezier(.2,.8,.2,1)}.muted{color:var(--muted)}.small{font-size:13px}.fine{font-size:12px;color:var(--dim);margin-top:14px}.up{color:var(--up)}.down{color:var(--down)}.warn-text{color:#ffc39b}.kicker{font-family:var(--font-display);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}.btn-gold{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:10px;border:1px solid #f5dea0;background:linear-gradient(180deg,#f3d48a,#c99b45);color:#2a1d06;font-weight:800;font-size:15px;letter-spacing:.02em;box-shadow:0 4px #7d5c22,0 8px 18px #00000059;transition:transform .1s,filter .15s,box-shadow .1s}.btn-gold:hover:not(:disabled){filter:brightness(1.08)}.btn-gold:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #7d5c22}.btn-gold:disabled{filter:grayscale(.7) brightness(.65);box-shadow:none}.btn-gold.full{width:100%;margin-top:10px}.btn-gold .chip{background:#00000026;color:#2a1d06}.btn-ghost{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:10px;border:1px solid rgba(227,194,122,.5);background:#ffffff0a;font-weight:700;font-size:14px}.btn-ghost:hover:not(:disabled){background:#e3c27a1f}.btn-ghost:disabled{opacity:.5}.btn-danger{padding:9px 14px;border-radius:10px;border:1px solid #ff9a76;background:#ff7a5b2e;font-weight:800}.icon-btn{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;border:1px solid rgba(227,194,122,.35);background:#ffffff0a;color:var(--gold);flex:none}.icon-btn:hover{background:#e3c27a1f}.link{background:none;border:none;padding:0;color:var(--gold);font-weight:700;text-decoration:underline;text-underline-offset:3px}.row-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.chips{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 5px;border-radius:99px;background:#00000047;border:1px solid rgba(255,255,255,.08);font-weight:800;font-size:13px;white-space:nowrap}.chip small{font-weight:600;opacity:.7;font-size:11px}.chip.is-short{color:#ffb08f;border-color:#ff7a5b99}.chip-yield{color:#d9f5e1}.art-icon{display:inline-block;flex:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}.badge{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#d8572f;border:2px solid #f3d98f;color:#fff;font-weight:900;font-size:13px;box-shadow:0 2px 6px #0006;z-index:2}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition:none!important}}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}.hud>*,.hud-top>*{pointer-events:auto}.hud-top{position:absolute;top:14px;left:22px;right:22px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;pointer-events:none}.title-block{position:relative;display:flex;flex-direction:column;align-items:center;width:290px;flex:none}.title-cloud{margin-bottom:-6px;filter:drop-shadow(0 0 8px rgba(160,200,255,.5))}.game-title{font-family:var(--font-display);font-weight:700;font-size:27px;letter-spacing:.04em;text-transform:uppercase;line-height:1.1;background:linear-gradient(180deg,#fff,#bfd8ff 55%,#8fb3ea);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 2px 14px rgba(120,170,255,.25);display:flex;align-items:center;gap:8px;white-space:nowrap}.orn-l,.orn-r{font-size:14px;color:var(--gold);-webkit-text-fill-color:var(--gold)}.town-ribbon{margin-top:6px;position:relative;padding:6px 34px;background:linear-gradient(180deg,#f3e2bb,#d9bf86);color:#3a2a10;font-family:var(--font-display);font-weight:700;letter-spacing:.12em;font-size:18px;text-transform:uppercase;clip-path:polygon(0 0,100% 0,94% 50%,100% 100%,0 100%,6% 50%);box-shadow:inset 0 -3px #78501433}.town-stats{display:flex;gap:12px;margin-top:8px;font-weight:800;font-size:14px}.town-stats span{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;background:#080d2db3;border:1px solid rgba(227,194,122,.3)}.town-stats em{font-style:normal;color:var(--muted);font-weight:600}.topbar{display:flex;align-items:stretch;flex:0 1 auto;min-width:0;padding:4px;cursor:pointer;border-radius:18px}.res{display:flex;align-items:center;gap:10px;padding:8px 14px;min-width:0;position:relative}.res+.res:before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:1px;background:linear-gradient(transparent,var(--gold-2),transparent)}.res-icon{flex:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))}.res-body{min-width:0;flex:1}.res-meter .res-body{width:104px}.res-label{font-family:var(--font-display);font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#cfe0ff;display:flex;align-items:center;justify-content:space-between;gap:6px;white-space:nowrap}.res-meter .bar{margin:4px 0 2px}.res-num{font-size:12.5px;font-weight:800;text-align:right;color:#e7ecff}.res-big{font-size:22px;font-weight:800;line-height:1.1}.res.is-low .bar{box-shadow:0 0 0 1px #ff7a5bcc;animation:lowPulse 1.4s ease-in-out infinite}@keyframes lowPulse{50%{box-shadow:0 0 0 1px #ff7a5b33,0 0 10px #ff7a5b99}}.delta{font-family:var(--font-body);font-size:11.5px;font-weight:800;letter-spacing:0}.delta.up{color:var(--up)}.delta.down{color:var(--down)}.delta.zero{color:var(--dim)}.level-badge{display:flex;align-items:center;flex:none}.level-orb{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 40% 35%,#2e4aa8,#101a52 70%);border:3px solid var(--gold);box-shadow:0 0 0 4px #0e1640e6,0 0 0 5px var(--gold-2),0 0 24px #e3c27a4d;z-index:1;position:relative}.level-card{margin-left:-20px;padding:8px 14px 8px 30px;width:170px;border-radius:0 14px 14px 0}.level-row{display:flex;align-items:baseline;gap:6px;font-family:var(--font-display)}.lv{color:var(--gold);font-size:15px}.lv-num{font-size:26px;font-weight:700;line-height:1}.level-title{font-size:12px;color:var(--muted);font-weight:700;margin-bottom:5px}.xp-num{font-size:11px;color:var(--dim);margin-top:3px;font-weight:700}.objective{position:absolute;top:98px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;max-width:min(640px,calc(100vw - 40px));padding:7px 16px;border-radius:99px;border:1px solid rgba(227,194,122,.55);background:#0a1034d1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-size:14px;white-space:nowrap}.objective:hover{border-color:var(--gold)}.obj-kicker{font-family:var(--font-display);color:var(--gold);font-weight:700;font-size:13px;letter-spacing:.04em}.obj-text{overflow:hidden;text-overflow:ellipsis;color:#dfe6ff}.obj-prog{font-weight:800;color:var(--gold);padding-left:8px;border-left:1px solid rgba(227,194,122,.35)}.weather-card{position:absolute;top:150px;right:22px;width:250px;padding:16px 18px 14px}.weather-head{display:flex;align-items:center;gap:12px}.weather-kicker{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.12em;font-weight:800}.weather-name{font-family:var(--font-display);font-weight:700;font-size:20px;color:#bfe1ff;letter-spacing:.05em;text-transform:uppercase;line-height:1.1}.weather-text{margin:10px 0 8px;font-style:italic;color:#dfe6ff;text-align:center;font-size:14px}.weather-forecast{display:flex;align-items:center;justify-content:center;gap:6px;padding-top:8px;border-top:1px solid rgba(227,194,122,.2);font-size:13px}.left-rail{position:absolute;left:22px;top:250px;display:flex;flex-direction:column;align-items:center}.rail-item{display:flex;flex-direction:column;align-items:center}.rail-sep{color:var(--gold);font-size:16px;line-height:1;margin:4px 0;text-shadow:0 0 8px var(--gold-glow)}.rail-btn{position:relative;width:100px;height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;line-height:1.1;text-align:center;transition:transform .15s,border-color .15s}.rail-btn:hover{transform:translateY(-2px);border-color:var(--gold)}.rail-btn.is-active{border-color:#ffe5a3;box-shadow:0 0 0 2px #e3c27a59,0 0 22px #e3c27a4d}.bottom-nav{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;align-items:center}.nav-wrap{display:flex;align-items:center}.nav-sep{color:var(--gold);margin:0 10px;filter:drop-shadow(0 0 4px var(--gold-glow))}.nav-btn{position:relative;display:flex;align-items:center;gap:14px;min-width:190px;height:66px;padding:0 22px;font-family:var(--font-display);font-weight:700;font-size:17px;letter-spacing:.08em;text-transform:uppercase;transition:border-color .15s,background .15s}.nav-btn span{flex:1;text-align:center}.nav-btn:hover{border-color:var(--gold)}.nav-btn.is-active{background:linear-gradient(180deg,#287896f2,#10345cf7);border-color:#ffe5a3;box-shadow:0 0 0 2px #e3c27a4d,0 0 26px #6edce659,inset 0 0 18px #8cf0ff40}.progression-card{position:absolute;bottom:16px;left:22px;display:flex;align-items:center;gap:16px;padding:10px 12px 10px 18px}.progression-label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--dim);font-weight:800}.progression-card{text-align:left;color:var(--text)}.progression-card strong{display:block;margin:3px 0}.gear-btn{position:absolute;right:22px;bottom:16px;width:66px;height:66px;border-radius:50%;display:grid;place-items:center;transition:transform .3s}.gear-btn:hover{transform:rotate(40deg)}.placing-hint{position:absolute;bottom:100px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:10px 12px 10px 18px;white-space:nowrap;animation:rise .25s ease-out}@keyframes rise{0%{opacity:0;transform:translate(-50%,10px)}}@media (max-width: 1500px){.res-meter .res-body{width:84px}.res{padding:8px 10px;gap:8px}.title-block{width:250px}.game-title{font-size:28px}.nav-btn{min-width:150px;font-size:15px;padding:0 16px}}@media (max-width: 1350px){.nav-btn{min-width:0;padding:0 14px}.nav-btn span{display:none}}@media (max-width: 1250px){.title-block .town-stats{display:none}.title-block{width:210px}.game-title{font-size:23px}.town-ribbon{font-size:14px}.level-card{display:none}.level-orb{width:70px;height:70px}.res-label{font-size:10px}.res-meter .res-body{width:70px}.res-icon{width:24px;height:24px}.nav-btn{height:58px}.nav-sep{margin:0 6px}.weather-card{width:210px}.rail-btn{width:84px;height:92px;font-size:11px}.rail-btn .art-icon{width:38px;height:38px}}@media (max-width: 900px){.hud-top{flex-wrap:wrap;left:10px;right:10px;top:8px;gap:8px}.title-block{width:auto;flex-direction:row;gap:10px}.game-title{font-size:20px}.title-cloud,.town-ribbon{display:none}.topbar{order:3;width:100%;display:grid;grid-template-columns:repeat(3,1fr);padding:2px}.res{padding:5px 8px;gap:6px}.res+.res:before{display:none}.res-label{font-size:9px;letter-spacing:.04em}.res-meter .res-body{width:auto}.res-num{font-size:11px}.res-big{font-size:16px}.res-icon{width:20px;height:20px}.level-orb{width:44px;height:44px;border-width:2px}.level-orb svg{width:28px;height:28px}.objective{top:auto;bottom:146px;font-size:12px}.obj-text,.weather-card,.left-rail{display:none}.progression-card{left:10px;right:10px;bottom:10px;padding:8px 10px;gap:10px;justify-content:space-between}.bottom-nav{bottom:82px}.nav-sep{display:none}.nav-wrap+.nav-wrap{margin-left:8px}.nav-btn{height:50px;padding:0 12px}.nav-btn svg,.nav-btn .art-icon{width:28px;height:28px}.gear-btn{right:10px;bottom:82px;width:50px;height:50px}.placing-hint{bottom:200px;white-space:normal;width:calc(100vw - 20px)}}.parchment{--muted: #6d6250;--dim: #8a7c62;--up: #2f7d3a;--down: #b4442a;position:relative;color:var(--ink);background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .42  0 0 0 0 .3  0 0 0 0 .14  0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.32'/></svg>"),radial-gradient(ellipse at 18% 12%,rgba(255,252,238,.9),transparent 45%),radial-gradient(ellipse at 85% 90%,rgba(196,156,92,.35),transparent 50%),radial-gradient(ellipse at 50% 50%,var(--parch-1) 0%,var(--parch-2) 62%,var(--parch-3) 100%);border-radius:8px;box-shadow:inset 0 0 0 1px #966e3259,inset 0 0 0 7px #fff8e459,inset 0 0 0 8px #b0864073,inset 0 0 50px #8c5f286b,0 22px 60px #020519a6}.parchment .muted{color:var(--muted)}.parchment .spark{color:#c9962f;font-size:.7em;margin:0 .5em;vertical-align:middle}.corner{position:absolute;width:46px;height:46px;z-index:3;pointer-events:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}.corner-tl{top:-6px;left:-6px}.corner-tr{top:-6px;right:-6px;transform:scaleX(-1)}.corner-bl{bottom:-6px;left:-6px;transform:scaleY(-1)}.corner-br{bottom:-6px;right:-6px;transform:scale(-1)}.crest{position:absolute;top:-46px;left:50%;transform:translate(-50%);width:104px;height:64px;border-radius:60px 60px 0 0;background:inherit;background:radial-gradient(ellipse at 50% 80%,var(--parch-1),var(--parch-2));box-shadow:inset 0 0 0 2px #b0864099,0 -4px 12px #00000040;display:grid;place-items:center;z-index:2}.crest img{width:56px;height:56px;margin-top:8px}.seal-close{position:absolute;top:-14px;right:-14px;z-index:5;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#f3d98f;background:radial-gradient(circle at 40% 35%,#2c3f8f,#0f1850 70%);border:2.5px solid #d9b25f;box-shadow:0 0 0 3px #0f1850cc,0 4px 12px #00000073;transition:transform .15s}.seal-close:hover{transform:rotate(90deg) scale(1.05)}.seal-close.square{border-radius:10px;color:#3a2a10;background:linear-gradient(#f7ecd0,#dcc394);border-color:#8a6424;box-shadow:0 3px 8px #0000004d;top:14px;right:14px}.p-head{text-align:center;padding:26px 56px 8px}.p-title{font-family:var(--font-display);font-weight:800;font-size:30px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);line-height:1.1}.p-sub,.p-kicker{font-family:var(--font-display);font-weight:600;font-size:13px;letter-spacing:.28em;text-transform:uppercase;color:#3a3f63;margin-top:6px}.p-sub:before,.p-sub:after{content:"";display:inline-block;width:40px;height:1px;background:#8a7c62;vertical-align:middle;margin:0 12px}.p-kicker{margin:0 0 4px;font-size:11px;color:#8a6424}.drawer{position:absolute;z-index:30;top:140px;bottom:104px;width:360px;max-width:calc(100vw - 20px);display:flex;flex-direction:column;animation:drawerInR .22s ease-out}.drawer-right{right:26px}.drawer-left{left:160px;animation-name:drawerIn}@keyframes drawerIn{0%{opacity:0;transform:translate(-14px)}}@keyframes drawerInR{0%{opacity:0;transform:translate(14px)}}.drawer .p-head{padding:22px 50px 4px}.drawer .p-title{font-size:22px;letter-spacing:.08em}.drawer-body{padding:8px 22px 22px;overflow-y:auto;flex:1;-webkit-user-select:text;user-select:text}.drawer-body::-webkit-scrollbar,.modal-body::-webkit-scrollbar,.ws-cards::-webkit-scrollbar,.quest-list::-webkit-scrollbar,.notes-scroll::-webkit-scrollbar{width:8px;height:8px}.drawer-body::-webkit-scrollbar-thumb,.modal-body::-webkit-scrollbar-thumb,.ws-cards::-webkit-scrollbar-thumb,.quest-list::-webkit-scrollbar-thumb{background:#8a642466;border-radius:8px}.island-art{display:block;width:100%;max-height:170px;object-fit:contain;margin:2px 0 8px;filter:drop-shadow(0 6px 10px rgba(60,40,10,.25))}h3.section{font-family:var(--font-display);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#8a6424;margin:18px 0 10px}.parchment p{color:#2e3352}.status-chip{display:inline-block;padding:3px 12px;border-radius:99px;font-size:12px;font-weight:800;margin-bottom:8px}.status-ok{background:#50a05a2e;color:#2f6d3a;border:1px solid rgba(60,130,70,.5)}.status-warn{background:#dc6e4629;color:#a2401f;border:1px solid rgba(190,90,50,.5)}.status-locked{background:#1f2a5a14;color:#4a4f6e;border:1px solid rgba(31,42,90,.25)}.question{margin:0 0 12px;padding:8px 12px;border-left:3px solid #c9962f;background:#c9962f1a;font-family:var(--font-hand);font-size:17px;color:#3a3550}.kv{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0}.kv>span:first-child{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#8a7c62}.building-list{list-style:none;margin:0 0 12px;padding:0}.building-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 0;border-bottom:1px dashed rgba(138,100,36,.35);font-size:14px;font-weight:700}.action-stack{display:flex;flex-direction:column;gap:8px}.btn-action{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 16px;border-radius:14px;border:1.5px solid #d9b25f;background:linear-gradient(180deg,#24367d,#13205a);color:#f6f1e2;text-align:left;box-shadow:0 3px #0b1238,0 6px 14px #14143c40;transition:transform .1s,filter .15s}.btn-action span{font-weight:800;font-size:15px;letter-spacing:.02em}.btn-action small{color:#c9d3f5;font-size:12.5px;display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.btn-action:hover:not(:disabled){filter:brightness(1.15)}.btn-action:active:not(:disabled){transform:translateY(2px)}.btn-action:disabled{opacity:.5}.parchment .chip{background:#ffffff8c;border-color:#8a642459;color:var(--ink)}.parchment .chip-yield{color:#2f6d3a}.parchment .chip.is-short{color:#b4442a;border-color:#b4442a99;background:#ffdcc899}.parchment .bar{background:#3c321e2e;border-color:#3c321e33}.parchment .link{color:#2c4fb0}.parchment .warn-text{color:#a2401f;font-weight:700}.btn-pill{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px 18px;border-radius:99px;border:2px solid #d9b25f;background:linear-gradient(180deg,#24367d,#101c55);color:#fff;font-family:var(--font-body);font-weight:800;font-size:15px;letter-spacing:.12em;text-transform:uppercase;box-shadow:inset 0 0 0 2px #0a123ce6,0 4px 10px #14143c4d;transition:filter .15s,transform .1s}.btn-pill span{font-size:22px;line-height:.8}.btn-pill:hover:not(:disabled){filter:brightness(1.18)}.btn-pill:active:not(:disabled){transform:translateY(2px)}.btn-pill:disabled{filter:grayscale(.8);opacity:.55}.btn-connected{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:99px;border:2px solid #d9b25f;background:linear-gradient(180deg,#eef6d8,#d6e8b4);color:#2b4a24;font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:14px}.btn-connected svg{color:#2f7d3a}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:60px 16px 16px;background:#04071a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade .18s ease-out}@keyframes fade{0%{opacity:0}}.modal{width:100%;max-height:calc(100dvh - 90px);display:flex;flex-direction:column;animation:pop .24s cubic-bezier(.2,1.3,.4,1)}@keyframes pop{0%{opacity:0;transform:scale(.96) translateY(10px)}}.modal-sm{max-width:440px}.modal-md{max-width:580px}.modal-lg{max-width:800px}.modal-xl{max-width:1080px}.modal .p-head{padding-top:30px}.modal-body{padding:12px 34px 20px;overflow-y:auto;-webkit-user-select:text;user-select:text}.modal-foot{padding:10px 34px 26px;display:flex;justify-content:center}.lead{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-family:var(--font-hand);font-size:18px;justify-content:center;text-align:center}.chart-cards{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:22px;overflow-x:auto;padding:30px 6px 10px}.chart-card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:34px 16px 18px;border-radius:14px;background:linear-gradient(180deg,#fffbeebf,#f0e2c099);border:2px solid #8a9a6a;box-shadow:inset 0 0 0 4px #fffaebb3,inset 0 0 0 5px #788c648c,0 4px 12px #503c142e}.chart-card:nth-child(3n+2){border-color:#6a86b8;box-shadow:inset 0 0 0 4px #fffaebb3,inset 0 0 0 5px #5a78b48c,0 4px 12px #503c142e}.chart-card:nth-child(3n){border-color:#9a86c0;box-shadow:inset 0 0 0 4px #fffaebb3,inset 0 0 0 5px #826eb48c,0 4px 12px #503c142e}.chart-card.is-hidden{filter:grayscale(.6) brightness(.92)}.card-badge{position:absolute;top:-28px;width:58px;height:58px;border-radius:50%;box-shadow:0 0 0 3px #f6ecd2,0 0 0 5px #b8924a,0 4px 10px #0000004d}.card-badge.ring{display:grid;place-items:center}.cc-art{width:100%;height:170px;display:grid;place-items:center}.cc-art img{max-width:100%;max-height:170px;object-fit:contain;filter:drop-shadow(0 6px 8px rgba(40,30,10,.25))}.chart-card h3{font-family:var(--font-display);font-weight:800;font-size:21px;letter-spacing:.04em;color:var(--ink);margin-top:4px}.cc-desc{font-family:var(--font-hand);font-size:16.5px;line-height:1.25;color:#3a3550;min-height:62px;margin:0}.cc-label{font-size:10.5px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:#6d6250;border-top:1px solid rgba(138,100,36,.35);padding-top:8px;width:80%}.cc-cost{min-height:30px;display:flex;align-items:center;justify-content:center;margin-bottom:6px}.cc-cost .chip{font-size:17px;padding:3px 12px 3px 6px}.chart-foot{display:flex;align-items:center;gap:14px;font-family:var(--font-display);letter-spacing:.3em;text-transform:uppercase;font-size:13px;color:#3a3f63}.chart-foot .dots{width:140px;border-top:2px dashed #c9962f}.bridge-list{list-style:none;padding:0;margin:0}.bridge-list li{display:grid;grid-template-columns:1fr auto 120px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px dashed rgba(138,100,36,.35)}.bridge-hero{display:grid;place-items:center;margin:0 0 4px}.bridge-hero img{max-height:190px;max-width:70%;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(40,30,10,.3))}.bridge-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:12px}.bridge-option{border-radius:14px;padding:14px 16px;background:#fffcf099;border:1.5px solid rgba(138,100,36,.45)}.bridge-option h3{font-family:var(--font-display);font-size:18px;margin-bottom:4px}.bridge-option.is-locked{opacity:.7}.stat{margin:10px 0}.stat-top{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}.stat-top span{color:#6d6250;font-weight:700}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#8a6424;font-weight:800;padding:6px 8px;border-bottom:1.5px solid rgba(138,100,36,.5)}.table td{padding:8px;border-bottom:1px dashed rgba(138,100,36,.3);font-weight:700}.table td:first-child{display:flex;align-items:center;gap:8px}.table.compact td{padding:6px 8px}.stat-row{display:flex;flex-wrap:wrap;gap:18px;margin:16px 0 10px}.stat-row>div{display:flex;align-items:center;gap:6px}.journal{list-style:none;margin:0;padding:0}.jentry{display:grid;grid-template-columns:74px 1fr;gap:12px;padding:10px 0;border-bottom:1px dashed rgba(138,100,36,.35)}.jentry strong{font-family:var(--font-display);font-size:15px}.jentry p{margin:2px 0 0;font-family:var(--font-hand);font-size:17px;color:#3a3550}.jturn{font-size:11px;font-weight:800;color:#8a6424;text-transform:uppercase;letter-spacing:.1em;padding-top:3px}.jentry-mission strong{color:#8a5a10}.jentry-discovery strong{color:#2f6d3a}.jentry-event strong{color:#a2401f}.report-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:22px}.delta-row{display:flex;align-items:center;gap:8px;margin:6px 0;font-weight:700}.reasons{margin:2px 0 10px 28px;padding:0;font-size:13.5px;color:#4a4f6e}.report-foot{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;justify-content:center}.forecast-pill,.mission-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:99px;font-size:14px}.forecast-pill{background:#3c64c81f;border:1px solid rgba(60,100,200,.35)}.mission-pill{background:#c9962f2e;border:1px solid rgba(201,150,47,.6);color:#6b4a10;font-weight:800}.alert{padding:10px 14px;margin-bottom:14px;border-radius:10px;background:#dc6e4626;border:1px solid rgba(190,90,50,.5);color:#8a3216;font-weight:700}.intro-quote{margin:0 0 16px;padding:12px 18px;border-left:3px solid #c9962f;background:#c9962f1a;font-family:var(--font-hand);font-size:20px;color:#2e3352}.intro-quote cite{display:block;margin-top:8px;font-family:var(--font-display);font-size:12px;letter-spacing:.12em;font-style:normal;color:#8a6424;text-transform:uppercase}.steps{margin:0;padding-left:22px;display:grid;gap:6px;font-size:15px}.confirm p{color:#a2401f}.parchment .btn-ghost{border-color:#8a642499;color:var(--ink);background:#fff6}.parchment .btn-danger{color:#8a3216;border-color:#b4442a;background:#ffd2be80}.parchment .fine{color:#8a7c62}.workshop{position:absolute;z-index:30;right:18px;bottom:96px;width:min(900px,calc(100vw - 190px));padding:16px;border-radius:22px;background:repeating-linear-gradient(92deg,rgba(0,0,0,.08) 0 2px,transparent 2px 9px),linear-gradient(180deg,#8a5a30,#5e3a1c 60%,#4a2c14);box-shadow:inset 0 0 0 2px #b07a44,inset 0 0 0 5px #3a220e,0 22px 50px #0009;animation:rise .25s ease-out}@keyframes rise{0%{opacity:0;transform:translateY(16px)}}.workshop:before,.workshop:after{content:"";position:absolute;width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#f6e0a0,#b8862f 60%,#6b4a18);box-shadow:0 2px 4px #00000080;top:50%}.workshop:before{left:-6px}.workshop:after{right:-6px}.workshop-inner{padding:18px 22px 20px;border-radius:10px}.ws-head{text-align:center}.ws-head h2{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-display);font-weight:800;font-size:30px;letter-spacing:.08em;text-transform:uppercase;color:#3b2a14}.ws-sub{font-family:var(--font-hand);font-size:26px;letter-spacing:.06em;text-transform:uppercase;color:#2a2f55;font-style:italic;margin-top:2px;text-decoration:underline;text-decoration-color:#c9962f;text-underline-offset:6px}.ws-head p{margin:6px 0 4px;font-size:15px}.ws-cards{display:grid;grid-auto-flow:column;grid-auto-columns:210px;gap:16px;overflow-x:auto;padding:12px 4px 8px;scroll-snap-type:x mandatory}.ws-card{position:relative;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;text-align:center;padding:12px 12px 14px;border-radius:10px;background:linear-gradient(180deg,#fffcf0d9,#f4e8ccbf);border:1px solid rgba(138,100,36,.4);box-shadow:0 3px 8px #50320a2e,inset 0 0 18px #c8a05a40}.ws-card.is-locked{filter:grayscale(.7);opacity:.75}.ws-name{font-weight:900;font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:#1f2a5a}.ws-art{width:100%;height:118px;object-fit:contain;margin:6px 0 4px}.ws-desc{font-family:var(--font-hand);font-size:16px;line-height:1.2;color:#3a3550;margin:0 0 6px;min-height:58px}.ws-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;min-height:26px}.ws-fx{font-size:12px;font-weight:700;color:#4a4f6e}.ws-cost{margin:8px 0 10px}.ws-cost .chip{font-size:16px}.locked-note{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:800;color:#8a6424}.gold-plus{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin-top:auto;color:#fff;background:radial-gradient(circle at 40% 30%,#ffe9a8,#e2ad45 50%,#a8742a 85%);border:3px solid #fff0c4;box-shadow:0 0 0 2px #8a6424,0 5px 12px #50320a66,inset 0 -4px 6px #78460a59;transition:transform .12s,filter .15s}.gold-plus svg{filter:drop-shadow(0 1px 1px rgba(100,60,10,.6))}.gold-plus:hover:not(:disabled){transform:scale(1.07);filter:brightness(1.06)}.gold-plus:disabled{filter:grayscale(.7) brightness(.85);cursor:not-allowed}.book{position:relative;display:grid;grid-template-columns:1fr 26px 1.15fr;width:min(1060px,100%);height:min(720px,calc(100dvh - 90px));padding:22px 26px 26px;border-radius:22px;background:linear-gradient(135deg,#7a4a26,#5a321a 50%,#6e4222);box-shadow:inset 0 0 0 3px #a8743f,inset 0 0 0 6px #4a2a12,inset 0 0 0 7px #f0c88c66,0 26px 70px #000000a6;animation:pop .26s cubic-bezier(.2,1.3,.4,1)}.book-page{position:relative;overflow:hidden;color:var(--ink);background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .42  0 0 0 0 .3  0 0 0 0 .14  0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.3'/></svg>"),radial-gradient(ellipse at 50% 40%,var(--parch-1),var(--parch-2) 70%,var(--parch-3));box-shadow:inset 0 0 40px #8c5f2873}.book-left{border-radius:10px 4px 4px 10px;display:flex;flex-direction:column;align-items:center;padding:26px 26px 20px;text-align:center;box-shadow:inset -18px 0 26px -10px #5a3c1473,inset 0 0 40px #8c5f2873}.book-right{border-radius:4px 10px 10px 4px;display:flex;flex-direction:column;padding:22px 22px 16px;box-shadow:inset 18px 0 26px -10px #5a3c1473,inset 0 0 40px #8c5f2873}.book-rings{display:flex;flex-direction:column;justify-content:space-around;align-items:center;padding:40px 0;background:linear-gradient(90deg,#4a2a12,#6e4222,#4a2a12)}.book-rings span{width:22px;height:12px;border-radius:8px;background:linear-gradient(180deg,#ffe7a8,#b8862f 60%,#6b4a18);box-shadow:0 2px 3px #00000080}.book-close{top:-12px;right:-12px}.log-title{font-family:var(--font-display);font-weight:800;font-size:50px;line-height:.95;color:#1f2a5a;margin:12px 0 8px}.log-art{width:88%;max-height:300px;object-fit:contain;margin:4px 0 8px}.book-left .chapter{font-size:11px;letter-spacing:.18em}.book-left .chapter:before,.book-left .chapter:after{display:none}.script{font-family:var(--font-script);font-size:30px;line-height:1.05;color:#2a3270;margin:10px 0 auto}.script.small{font-size:22px;margin:0 0 8px}.script.center{text-align:center}.p-sub.tiny{font-size:10px;letter-spacing:.26em}.p-sub.tiny:before,.p-sub.tiny:after{width:20px}.quests-head{text-align:center;font-family:var(--font-display);font-weight:800;font-size:26px;letter-spacing:.2em;color:#1f2a5a;text-transform:uppercase}.quest-list{list-style:none;margin:0;padding:4px 6px 4px 2px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:10px}.qcard{display:flex;gap:10px;padding:10px 14px 12px 10px;border-radius:10px;background:#fffcf08c;border:1px solid rgba(138,100,36,.35);box-shadow:0 2px 6px #50320a1a}.qcard.is-featured{background:#fffae8d9;border:2px solid #c9a24f;box-shadow:inset 0 0 0 3px #fffaebe6,inset 0 0 0 4px #b0864080,0 4px 12px #50320a33;padding:14px 16px 16px 12px}.qcard.is-locked{opacity:.6}.qcard.is-done{opacity:.85}.qnum{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#1f2a5a;color:#fff;font-family:var(--font-display);font-weight:700;font-size:17px;box-shadow:0 0 0 2px #f6ecd2,0 0 0 3px #1f2a5a}.qbody{flex:1;min-width:0}.qtitle{font-family:var(--font-display);font-weight:800;font-size:17px;letter-spacing:.08em;text-transform:uppercase;color:#1f2a5a;border-bottom:1px solid rgba(31,42,90,.25);padding-bottom:4px;margin-bottom:6px}.qrow{display:flex;align-items:center;gap:12px}.qart{width:96px;height:66px;object-fit:contain;flex:none}.qcard.is-featured .qart{width:150px;height:100px}.qtext{flex:1;min-width:0}.qtext p{margin:0 0 4px;font-family:var(--font-hand);font-size:17px;line-height:1.2;color:#2e3352}.qprog{display:flex;align-items:center;gap:10px;font-weight:800;color:#1f2a5a}.qprog .bar{flex:1;height:10px}.qcheck{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#2f8a4a;box-shadow:0 0 0 2px #f6ecd2,0 0 0 3px #2f8a4a}.qlock{flex:none;color:#8a6424}.reward-line{text-align:center;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#6d6250;margin:8px 0 4px}.reward-line span:before,.reward-line span:after{content:"";display:inline-block;width:50px;height:1px;background:#8a642480;vertical-align:middle;margin:0 10px}.rewards{display:flex;justify-content:center;align-items:center;gap:22px;font-weight:900;font-size:15px;letter-spacing:.04em;text-transform:uppercase;color:#1f2a5a;margin-bottom:8px}.rewards>span{display:inline-flex;align-items:center;gap:6px}.xp-star{color:#e6b23a;font-size:24px;text-shadow:0 1px 0 #8a6424}.qcard .btn-pill{margin-top:10px;background:linear-gradient(180deg,#3a6fd0,#1f4aa8);border-color:#9fc0ff;box-shadow:inset 0 0 0 2px #0a1e5a99,0 4px 10px #1428784d}.bookmark{position:absolute;bottom:-34px;left:37%;width:40px;height:60px;display:grid;place-items:start center;padding-top:18px;background:linear-gradient(#24367d,#1a2a6a);clip-path:polygon(0 0,100% 0,100% 100%,50% 80%,0 100%);box-shadow:inset 0 0 0 2px #d9b25f}.notes{position:absolute;z-index:30;right:22px;top:196px;bottom:100px;width:410px;max-width:calc(100vw - 20px);display:flex;flex-direction:column;padding:116px 18px 14px;border-radius:26px;background:linear-gradient(180deg,#182256f7,#0d143cfa);border:2px solid rgba(160,190,255,.45);box-shadow:0 0 0 1px #00000080,0 0 30px #78aaff33,0 20px 50px #0000008c;animation:drawerInR .22s ease-out}.notes-header{position:absolute;top:-72px;left:50%;transform:translate(-50%);width:330px;pointer-events:none;filter:drop-shadow(0 6px 12px rgba(0,0,0,.35));animation:floaty 5s ease-in-out infinite}@keyframes floaty{50%{transform:translate(-50%,-5px)}}.notes-close{top:-10px;right:-10px}.notes-scroll{overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:12px;padding-right:2px}.notes-scroll::-webkit-scrollbar-thumb{background:#a0beff4d;border-radius:8px}.notes-card{padding:14px 16px 16px;border-radius:16px;background:linear-gradient(180deg,#fbf4e2,#f1e5c9);color:var(--ink);box-shadow:inset 0 0 22px #aa82464d}.notes-label{font-family:var(--font-hand);font-size:18px;letter-spacing:.1em;text-transform:uppercase;color:#3f62b8;margin-bottom:4px}.notes-label.ink{color:#1f2a5a;font-weight:700}.suggestion{display:flex;align-items:center;gap:12px;width:100%;padding:4px 4px 10px;background:none;border:none;text-align:left;color:var(--ink);border-bottom:1px solid rgba(138,100,36,.3);margin-bottom:8px}.suggestion img{width:108px;height:80px;object-fit:contain;border-radius:10px;background:#aad2ff59;flex:none}.suggestion strong{flex:1;font-family:var(--font-hand);font-size:23px;line-height:1.05;text-transform:uppercase;letter-spacing:.02em}.suggestion .chev{font-size:34px;color:#4a3a9a}.suggestion:not(:disabled):hover strong{color:#2c4fb0}.hand{font-family:var(--font-hand);font-size:18px;line-height:1.25;color:#2a2f4e;margin:0 0 8px}.hand.alt{font-size:16px;color:#4a4f6e;margin:8px 0 0}.tradeoff{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:linear-gradient(180deg,#e7def6,#d9cdf0)}.tradeoff p{margin:0;font-size:17px}.confidence{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:4px 14px;align-items:center;padding:12px 16px;border-radius:14px;border:1.5px solid rgba(150,180,255,.45);background:#0a123c8c;color:#e8eeff}.conf-label{font-family:var(--font-hand);letter-spacing:.12em;text-transform:uppercase;font-size:16px;color:#c9d6ff}.conf-num{font-weight:800;font-size:28px;line-height:1;display:flex;align-items:center;gap:6px}.conf-bar{height:14px}.conf-note{grid-column:1 / -1;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#8f9bd0}.notes-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}.btn-cream,.btn-navy{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 10px;border-radius:14px;font-family:var(--font-hand);font-size:19px;letter-spacing:.06em;text-transform:uppercase;transition:filter .15s,transform .1s}.btn-cream{background:linear-gradient(180deg,#fbf0cf,#ecd9a4);color:#1f2a5a;border:1.5px solid #c9a24f;box-shadow:0 3px #a8823a}.btn-navy{background:linear-gradient(180deg,#1d2b6e,#121c50);color:#fff;border:1.5px solid rgba(160,190,255,.6);box-shadow:0 3px #070c30}.btn-cream:hover:not(:disabled),.btn-navy:hover:not(:disabled){filter:brightness(1.1)}.btn-cream:disabled,.btn-navy:disabled{opacity:.5;cursor:not-allowed}.notes-foot{margin:0;font-size:13px;color:#9aa6d6;text-align:center}.notes-foot.script{font-family:var(--font-script);font-size:22px;color:#c9d6ff}.toasts{position:absolute;z-index:60;top:142px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:stretch;gap:8px;pointer-events:none;width:min(380px,calc(100vw - 24px))}.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:9px 16px;border-radius:12px;background:#0c133af2;border:1px solid rgba(227,194,122,.55);box-shadow:0 10px 26px #0006;font-size:14px;animation:toastIn .3s cubic-bezier(.2,1.3,.4,1);cursor:pointer;color:var(--text)}.toast div{display:flex;flex-direction:column}.toast strong{font-family:var(--font-display);letter-spacing:.03em;font-size:15px}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px) scale(.96)}}.toast-warn{border-color:#ff9a7699;color:#ffd6c6}.toast-gain{border-color:#8fe3a880}.toast-mission,.toast-level{padding:12px 18px;color:#3b2a14;background:linear-gradient(180deg,#fbf0cf,#ead39a);border:2px solid #c9962f;box-shadow:0 0 0 3px #e3c27a40,0 0 40px #e3c27a66}.toast-mission strong,.toast-level strong{color:#1f2a5a}.toast-bridge{border-color:#a8e08a}.toast-star{color:#c9962f;flex:none;animation:spin 2.4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 1250px){.workshop{width:calc(100vw - 150px)}}@media (max-width: 900px){.toasts{top:130px;left:12px;right:12px;width:auto}.drawer,.drawer-left,.drawer-right,.notes{left:8px;right:8px;width:auto;top:130px;bottom:150px}.notes{top:200px}.workshop{left:8px;right:8px;width:auto;bottom:140px;padding:8px}.ws-head h2{font-size:20px}.ws-sub{font-size:18px}.bridge-options,.report-grid{grid-template-columns:1fr}.book{grid-template-columns:1fr;height:calc(100dvh - 80px);padding:12px}.book-left,.book-rings,.bookmark{display:none}.p-title{font-size:22px}.modal-body{padding:10px 16px 16px}}.backdrop{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.star{animation:twinkle 4s ease-in-out infinite}@keyframes twinkle{50%{opacity:.25}}.map-scroll{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden}.skymap{display:block;width:100%;height:100%}@media (max-width: 900px) and (orientation: portrait){.map-scroll{top:170px;bottom:150px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}.map-scroll::-webkit-scrollbar{display:none}.skymap{width:auto;height:100%;aspect-ratio:16 / 9}}.isle-bob{animation:bob 8s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-3px)}}.decor{animation:drift 30s ease-in-out infinite}@keyframes drift{50%{transform:translate(-6px)}}.beacon-lit{opacity:0;transition:opacity 1.6s ease}.beacon-lit.on{opacity:1}.isle-hit ellipse{cursor:pointer}.isle-label{cursor:pointer}.isle-label-text{font-family:var(--font-display);font-weight:700;font-size:14px;letter-spacing:.06em;fill:#f3e6c4}.isle-hit-hidden .isle-label-text{fill:#9aa4d6;font-style:italic}.select-ring{animation:dash 1.2s linear infinite}@keyframes dash{to{stroke-dashoffset:-32}}.bridge{cursor:pointer}.bridge-art{animation:bridgeIn 1.4s ease-out}@keyframes bridgeIn{0%{opacity:0}}.bridge:hover .bridge-art{filter:brightness(1.15)}.warn-badge{animation:warn 1.2s ease-in-out infinite}@keyframes warn{50%{opacity:.55}}.ghost-route{cursor:pointer}.ghost-art{animation:ghost 2.6s ease-in-out infinite}@keyframes ghost{50%{opacity:.55}}.route-btn{transition:transform .15s;transform-box:fill-box}.ghost-route:hover .route-btn{transform:scale(1.08)}.route-pulse{transform-box:fill-box;transform-origin:center;animation:pulse 2s ease-out infinite}@keyframes pulse{0%{transform:scale(.85);opacity:1}to{transform:scale(1.4);opacity:0}}.route-cost{font-family:var(--font-body);font-weight:800;font-size:13px;fill:#f3e6c4}.ghost-route.is-locked .route-cost{fill:#a9b4dd}.pop-in{transform-box:fill-box;transform-origin:50% 100%;animation:popIn .6s cubic-bezier(.2,1.6,.4,1)}@keyframes popIn{0%{transform:scale(0);opacity:0}}.building{pointer-events:none}.slot{cursor:pointer;animation:slotGlow 1.2s ease-in-out infinite}.slot:hover polygon{fill:#f3d98fb3}@keyframes slotGlow{50%{opacity:.6}}.skymap.is-placing .isle-hit ellipse{cursor:default}.auth-tabs{display:flex;gap:6px;margin-bottom:14px;padding:4px;border-radius:12px;background:#0000002e}.auth-tabs button{flex:1;padding:8px 10px;border:0;border-radius:9px;background:transparent;font:inherit;font-weight:800;color:var(--muted);cursor:pointer}.auth-tabs button.on{color:var(--text);background:#e3c27a29;box-shadow:inset 0 0 0 1px #e3c27a80}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:var(--muted)}.auth-form input{padding:10px 12px;border-radius:10px;border:1px solid rgba(227,194,122,.35);background:#04081e8c;color:var(--text);font:inherit;font-size:15px}.auth-form input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-glow)}.auth-error{margin:0;padding:8px 10px;border-radius:8px;color:var(--down);background:#ff7a5b1f;font-size:13.5px}.auth-notice{margin:0 0 12px;padding:8px 10px;border-radius:8px;background:#e3c27a1f;font-size:13.5px}.auth-sub{font-size:13px;margin:14px 0 0}.auth-guest{width:100%;justify-content:center;margin-top:10px}.account-box{display:flex;flex-direction:column;gap:8px;padding:12px;margin-bottom:14px;border-radius:12px;background:var(--card-bg);border:1px solid rgba(227,194,122,.18)}.account-box .row-btns{display:flex;gap:8px;flex-wrap:wrap}.sync-line{font-size:13px;color:var(--muted)}.sync-line.error{color:var(--down)}
