:root{--bg-deep: #1b2444;--bg-dark: #202a4d;--bg-panel: #27335c;--bg-panel-lit: #2f3d6b;--bg-elevated: #37477c;--bg-card: #2c3a66;--bg-card-hover: #36467a;--bg-dialog: #24305a;--nav-bg: #2a3560;--nav-bg-hover: #364480;--border-dim: #3f5390;--border-med: #5470b5;--border-bright: #7592d6;--text: #ffffff;--text-light: #e6eeff;--text-muted: #a9b8dc;--text-dark: #8fa0c8;--sky: #7fd6ff;--mint: #7ef5c3;--gold: #ffd166;--coral: #ff7b7b;--orange: #ffb86b;--lavender: #c9b6ff;--violet: #8e7cff;--radius: 14px;--radius-sm: 8px;--tab-h: 60px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);--m-font-cjk: ;--font: var(--m-font-cjk) -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;background:var(--bg-deep);color:var(--text-light);font-family:var(--font);font-size:16px;line-height:1.35;overscroll-behavior-y:none;-webkit-font-smoothing:antialiased}body{background:radial-gradient(120% 70% at 50% -10%,#2a355f 0%,var(--bg-deep) 60%,#141c3a 100%) fixed}button{font:inherit;color:inherit}img{display:block}a{color:var(--sky)}h1,h2,h3{margin:0;font-weight:700;letter-spacing:.01em}h2{font-size:18px}h3{font-size:15px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}p{margin:0}#app{min-height:100%}.screen{padding:calc(12px + var(--safe-t)) 16px calc(var(--tab-h) + var(--safe-b) + 24px);max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:14px}.screen--map{padding:0;max-width:none;position:fixed;top:0;right:0;bottom:0;left:0;bottom:calc(var(--tab-h) + var(--safe-b));display:block}.card{background:var(--bg-card);border:1px solid var(--border-dim);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px;box-shadow:0 6px 24px #0a0e2859}.card--lit{background:linear-gradient(160deg,var(--bg-panel-lit),var(--bg-card));border-color:var(--border-med)}.card--hero{padding:16px;gap:12px;border-color:var(--border-bright);background:linear-gradient(165deg,#33427a 0%,var(--bg-card) 70%)}.card__title{display:flex;align-items:center;justify-content:space-between;gap:8px}.row{display:flex;align-items:center;gap:10px}.row--between{justify-content:space-between}.row--wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.muted{color:var(--text-muted)}.dim{color:var(--text-dark)}.small{font-size:13px}.xs{font-size:12px}.bold{font-weight:700}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.center{text-align:center}.btn{min-height:48px;padding:0 18px;border-radius:12px;border:1px solid var(--border-med);background:var(--nav-bg);color:var(--text);font-weight:700;font-size:16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:transform .12s,background .12s,opacity .12s;-webkit-user-select:none;user-select:none}.btn:active{transform:scale(.97);background:var(--nav-bg-hover)}.btn:disabled{opacity:.45;cursor:default}.btn--locked{opacity:.6}.btn--primary{background:linear-gradient(180deg,#8fdcff,#5fb8f0);color:#0f1a3a;border-color:transparent;box-shadow:0 6px 18px #7fd6ff47}.btn--mint{background:linear-gradient(180deg,#9af7d2,#5fd9a6);color:#0f1a3a;border-color:transparent}.btn--gold{background:linear-gradient(180deg,#ffe08a,#f0b73f);color:#2a1f05;border-color:transparent}.btn--danger{background:transparent;border-color:var(--coral);color:var(--coral)}.btn--ghost{background:transparent;border-color:var(--border-dim);color:var(--text-light)}.btn--block{width:100%}.btn--sm{min-height:40px;padding:0 14px;font-size:14px;border-radius:10px}.btn--icon{min-width:48px;padding:0}.btn svg{width:20px;height:20px;flex:none}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:600;background:var(--bg-elevated);color:var(--text-light);border:1px solid var(--border-dim);white-space:nowrap}.chip--mint{color:var(--mint);border-color:#7ef5c366}.chip--sky{color:var(--sky);border-color:#7fd6ff66}.chip--gold{color:var(--gold);border-color:#ffd16666}.chip--coral{color:var(--coral);border-color:#ff7b7b80;animation:pulse 1s infinite}.chip--lav{color:var(--lavender);border-color:#c9b6ff66}.chip--pop{animation:chipPop .32s cubic-bezier(.2,.9,.3,1.2) both}.dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block}.ship-img{width:64px;height:64px;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.45))}.ship-img--lg{width:128px;height:128px}.ship-img--sm{width:44px;height:44px}.ship-tile{width:72px;height:72px;border-radius:16px;background:radial-gradient(circle at 50% 40%,#3a4a85,var(--bg-dark));display:grid;place-items:center;border:1px solid var(--border-dim);flex:none;overflow:hidden}.ship-tile img{width:88%;height:88%}.bar{height:8px;background:var(--bg-dark);border-radius:999px;overflow:hidden;border:1px solid var(--border-dim)}.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--sky),var(--mint));border-radius:999px;transition:width .6s ease}.bar--gold>i{background:linear-gradient(90deg,var(--gold),var(--orange))}.mineral{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;background:var(--bg-dark);border:1px solid var(--border-dim);font-size:13px;font-weight:600}.mineral i{width:10px;height:10px;border-radius:3px;display:inline-block}.mineral--missing{border-color:#ff7b7b80;color:var(--coral)}.mineral--ok{border-color:#7ef5c366}.mineral-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mineral-grid .mineral{flex-direction:column;gap:2px;padding:8px 2px;font-size:12px;text-align:center;word-break:keep-all;overflow-wrap:normal;line-height:1.25}:lang(ja) .mineral-grid .mineral,:lang(zh-CN) .mineral-grid .mineral,:lang(ko) .mineral-grid .mineral{font-size:11px;letter-spacing:-.02em}.tabbar{position:fixed;left:0;right:0;bottom:0;height:calc(var(--tab-h) + var(--safe-b));padding-bottom:var(--safe-b);background:#202a4deb;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border-dim);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;z-index:50}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:0;color:var(--text-dark);font-size:11px;font-weight:600;min-height:48px;position:relative}.tab svg{width:24px;height:24px}.tab span{white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.02em}.tab[aria-current=page]{color:var(--sky)}.tab__badge{position:absolute;top:6px;right:calc(50% - 20px);min-width:8px;height:8px;border-radius:999px;background:var(--gold)}.tab__badge--pulse{animation:badgePulse .9s ease-out 1}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e2899;z-index:80;animation:fadeIn .16s}.sheet{position:fixed;left:0;right:0;bottom:0;max-height:88%;overflow:auto;background:var(--bg-dialog);border-top-left-radius:22px;border-top-right-radius:22px;border-top:1px solid var(--border-med);padding:10px 16px calc(20px + var(--safe-b));z-index:90;display:flex;flex-direction:column;gap:12px;animation:slideUp .35s cubic-bezier(.2,.9,.3,1.2);box-shadow:0 -10px 40px #0006}.sheet__grip{width:44px;height:5px;border-radius:3px;background:var(--border-med);margin:0 auto 4px}.sheet__actions{position:sticky;bottom:0;padding-top:8px;background:linear-gradient(180deg,transparent,var(--bg-dialog) 30%);display:flex;gap:10px}.list{display:flex;flex-direction:column;gap:10px}.item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-card);border:1px solid var(--border-dim);border-radius:var(--radius);min-height:64px;text-align:left;width:100%;cursor:pointer}.item:active{background:var(--bg-card-hover)}.item--selected{border-color:var(--sky);box-shadow:0 0 0 2px #7fd6ff40}.item--static{cursor:default}.item--raids{border-color:#ffd1668c;background:linear-gradient(160deg,rgba(255,209,102,.1),var(--bg-card) 60%)}.contract-row{display:flex;align-items:center;gap:10px;min-height:36px;font-size:14px}.contract-row__mark{width:22px;height:22px;border-radius:50%;border:2px solid var(--border-med);display:grid;place-items:center;font-size:12px;flex:none;color:var(--text-dark)}.contract-row--done .contract-row__mark{background:var(--mint);border-color:var(--mint);color:#0f1a3a}.contract-row--done span{color:var(--text-dark);text-decoration:line-through}.contract-row--current .contract-row__mark{border-color:var(--sky);color:var(--sky);box-shadow:0 0 0 4px #7fd6ff2e}.contract-row--current span{color:var(--text);font-weight:700}.contract-row--tomorrow{color:var(--text-dark)}.journey{position:relative;height:96px;border-radius:var(--radius);background:linear-gradient(90deg,#26345f,#1f2a50 50%,#2a3365);border:1px solid var(--border-dim);overflow:hidden}.journey__stars{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(1px 1px at 12% 30%,#fff8 50%,transparent 60%),radial-gradient(1px 1px at 40% 70%,#fff6 50%,transparent 60%),radial-gradient(1.5px 1.5px at 65% 25%,#fff9 50%,transparent 60%),radial-gradient(1px 1px at 85% 60%,#fff6 50%,transparent 60%),radial-gradient(1px 1px at 25% 85%,#fff5 50%,transparent 60%)}.journey__line{position:absolute;left:56px;right:56px;top:50%;border-top:2px dashed var(--border-med)}.journey__end{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;display:grid;place-items:center}.journey__end img{width:44px;height:44px;object-fit:contain}.journey__ship{position:absolute;top:50%;width:40px;height:40px;margin-top:-20px;margin-left:-20px;will-change:left;transition:left 1s linear}.journey__ship img{width:40px;height:40px;object-fit:contain}.journey__ship--flip img{transform:scaleX(-1)}.journey__trail{position:absolute;top:50%;width:6px;height:6px;border-radius:50%;background:var(--sky);opacity:.6;margin-top:-3px;animation:trail .9s infinite}.journey__label{position:absolute;left:0;right:0;bottom:6px;text-align:center;font-size:12px;color:var(--text-muted)}.journey__eta{position:absolute;top:6px;right:10px;font-size:12px;color:var(--sky);font-weight:700}.journey__phase{position:absolute;top:6px;left:10px;font-size:12px;color:var(--text-muted);font-weight:600}.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;position:relative}.timeline__step{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;color:var(--text-dark);text-align:center}.timeline__step i{width:12px;height:12px;border-radius:50%;border:2px solid var(--border-med);background:var(--bg-dark)}.timeline__step--done i{background:var(--mint);border-color:var(--mint)}.timeline__step--active i{border-color:var(--sky);background:var(--sky);box-shadow:0 0 0 4px #7fd6ff33}.timeline__step--active{color:var(--sky);font-weight:700}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--bg-dark);border-radius:12px;padding:4px;gap:4px;border:1px solid var(--border-dim)}.seg button{min-height:44px;border:0;border-radius:9px;background:transparent;color:var(--text-muted);font-weight:600}.seg button[aria-pressed=true]{background:var(--bg-elevated);color:var(--text);box-shadow:0 2px 8px #0000004d}.toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:0 4px}.switch{width:50px;height:30px;border-radius:999px;background:var(--bg-dark);border:1px solid var(--border-med);position:relative;flex:none;transition:background .16s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--text-muted);transition:transform .16s,background .16s}.switch[aria-checked=true]{background:#7ef5c359;border-color:var(--mint)}.switch[aria-checked=true]:after{transform:translate(20px);background:var(--mint)}.subtabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.subtabs::-webkit-scrollbar{display:none}.subtabs button{flex:none;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--border-dim);background:transparent;color:var(--text-muted);font-weight:600;font-size:14px}.subtabs button[aria-selected=true]{background:var(--bg-elevated);color:var(--text);border-color:var(--border-med)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;color:var(--text-muted);font-weight:600}.input{min-height:48px;padding:0 14px;border-radius:12px;border:1px solid var(--border-med);background:var(--bg-dark);color:var(--text);font-size:16px;width:100%}.input:focus{outline:2px solid var(--sky);outline-offset:0;border-color:transparent}.toasts{position:fixed;left:16px;right:16px;bottom:calc(var(--tab-h) + var(--safe-b) + 12px);z-index:70;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:var(--bg-elevated);border:1px solid var(--border-med);border-radius:12px;padding:12px 14px;font-size:14px;font-weight:600;box-shadow:0 8px 24px #0006;animation:slideUp .28s cubic-bezier(.2,.9,.3,1.2)}.toast--warn{border-color:var(--coral);color:var(--coral)}.toast--error{border-color:var(--coral)}.toast--success{border-color:var(--mint)}.complete{position:fixed;left:12px;right:12px;bottom:calc(var(--tab-h) + var(--safe-b) + 12px);z-index:85;background:linear-gradient(165deg,#35477f,var(--bg-dialog));border:1px solid var(--gold);border-radius:20px;padding:16px;display:flex;flex-direction:column;gap:12px;animation:slideUp .35s cubic-bezier(.2,.9,.3,1.2);box-shadow:0 16px 48px #00000080}.complete canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;border-radius:20px}.complete__big{font-size:32px;font-weight:800;color:var(--gold);letter-spacing:-.02em}.install-steps{display:grid;grid-template-columns:1fr 1fr;gap:10px}.install-steps>div{background:var(--bg-dark);border-radius:12px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13px;text-align:center}.install-steps svg{width:36px;height:36px;color:var(--sky)}.banner{position:sticky;top:0;z-index:60;background:var(--gold);color:#2a1f05;padding:10px 14px;border-radius:12px;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.banner a{color:#2a1f05;text-decoration:underline}.map-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none;background:#151b3a}.map-hud{position:absolute;top:calc(10px + var(--safe-t));left:12px;right:12px;display:flex;justify-content:space-between;gap:8px;pointer-events:none}.map-hud>*{pointer-events:auto}.map-cta{position:absolute;left:12px;right:12px;bottom:12px}.map-popup{position:absolute;left:12px;right:12px;bottom:12px;background:var(--bg-dialog);border:1px solid var(--border-med);border-radius:16px;padding:12px;display:flex;align-items:center;gap:12px;animation:slideUp .26s cubic-bezier(.2,.9,.3,1.2)}.lang{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border-radius:999px;border:1px solid var(--border-dim);background:var(--bg-elevated);color:var(--text-light);font-size:13px;font-weight:600;flex:none}.lang svg{width:16px;height:16px;color:var(--sky)}.lang select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;font-size:16px;cursor:pointer}.splash{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--text-muted);font-size:14px}.fade-in{animation:fadeIn .22s}.depart{animation:depart .7s cubic-bezier(.4,0,.8,.4) forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes chipPop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}@keyframes badgePulse{0%{transform:scale(1);box-shadow:0 0 #ffd166b3}to{transform:scale(1.4);box-shadow:0 0 0 10px #ffd16600}}@keyframes trail{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(.3)}}@keyframes depart{to{transform:translate(120px) scale(.8);opacity:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}.log-sketch{width:112px;height:84px;flex:none;border-radius:12px;background:radial-gradient(circle at 30% 40%,#2c3a6a,var(--bg-dark));border:1px solid var(--border-dim)}.log-card__ore{font-size:24px;font-weight:800;color:var(--gold)}.chip--auto{color:var(--sky);border-color:#7fd6ff8c;background:#7fd6ff1a;letter-spacing:.04em}.enc-home{border-color:#ffd1668c}.enc-home__bust{width:64px;height:64px;border-radius:50%;background:var(--bg-elevated);border:2px solid var(--gold);flex:none;object-fit:cover}.enc-home__line{font-size:15px;font-weight:600;color:var(--text)}.item--story{border-color:#ffd16699;background:linear-gradient(160deg,rgba(255,209,102,.12),var(--bg-card) 60%)}.enc-journal-entry{border-color:#ffd16673}.story{position:fixed;top:0;right:0;bottom:0;left:0;z-index:95;background:var(--bg-dialog);display:flex;flex-direction:column;overflow-y:auto;animation:slideUp .32s cubic-bezier(.2,.9,.3,1.2);padding-bottom:var(--safe-b)}.story__art{position:relative;width:100%;aspect-ratio:16 / 9;flex:none;background:var(--bg-deep);overflow:hidden;cursor:pointer}.story__art img{width:100%;height:100%;object-fit:cover}.story__art:after{content:"";position:absolute;left:0;right:0;bottom:0;height:40%;background:linear-gradient(180deg,transparent,rgba(10,14,40,.7));pointer-events:none}.story__top{position:absolute;top:calc(10px + var(--safe-t));left:12px;right:64px;display:flex;gap:6px;flex-wrap:wrap;z-index:1}.story__close{position:absolute;top:calc(6px + var(--safe-t));right:8px;z-index:2;background:#0f1a3ab3}.story__dots{position:absolute;right:12px;bottom:10px;display:flex;gap:8px;z-index:1;background:#0a0e288c;padding:6px 10px;border-radius:999px}.story__dots i{width:9px;height:9px;border-radius:50%;background:var(--border-med)}.story__dots i.done{background:var(--mint)}.story__dots i.cur{background:var(--gold);box-shadow:0 0 0 2px #fff}.story__body{padding:0 16px 16px;display:flex;flex-direction:column;gap:12px}.story__who{display:flex;align-items:flex-end;gap:8px;margin-top:-44px;position:relative;z-index:2}.story__bust{width:96px;height:96px;border-radius:50%;background:var(--bg-elevated);border:3px solid var(--gold);flex:none;object-fit:cover;box-shadow:0 6px 18px #00000073}.story__bust--coral{border-color:var(--coral)}.story__bust--lav{border-color:var(--lavender)}.story__meta{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.story__meta .chip{max-width:100%;overflow:hidden;text-overflow:ellipsis}.story__ctls{display:flex;gap:6px;align-self:stretch;justify-content:flex-end}.story__ctl{min-height:40px;min-width:48px;padding:0 10px;border-radius:10px;border:1px solid var(--border-dim);background:transparent;color:var(--text-muted);font-size:13px;font-weight:700}.story__ctl.on{color:#0f1a3a;background:var(--mint);border-color:transparent}.story__line{position:relative;min-height:104px;padding:14px 14px 26px;background:var(--bg-dark);border:1px solid var(--border-dim);border-radius:var(--radius);cursor:pointer}.story__line p{font-size:17px;font-weight:600;color:var(--text);line-height:1.45;white-space:pre-wrap}.story__count{position:absolute;top:6px;right:10px;font-size:12px;color:var(--text-dark);font-weight:600}.story__more{position:absolute;bottom:6px;right:10px;font-size:12px;color:var(--sky);font-weight:700;animation:pulse 1.2s infinite}.story__log{max-height:220px;overflow-y:auto;padding:12px;background:var(--bg-dark);border-radius:var(--radius);border:1px solid var(--border-dim);display:flex;flex-direction:column;gap:8px;font-size:14px}.story__log b{color:var(--gold);margin-right:4px}.story__obj{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,209,102,.5);background:#ffd16614;color:var(--gold);font-weight:700;font-size:14px}.story__actions{display:flex;flex-direction:column;gap:10px;margin-top:4px}.enc-arc{display:flex;gap:12px;padding:12px;background:var(--bg-card);border:1px solid rgba(255,209,102,.4);border-radius:var(--radius)}.enc-arc__art{width:112px;height:63px;border-radius:8px;object-fit:cover;flex:none}.enc-records{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.enc-record{display:flex;flex-direction:column;gap:3px;padding:6px;border-radius:12px;border:1px solid var(--border-med);background:var(--bg-card);text-align:left;min-width:0}.enc-record img{width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:8px}.enc-record--locked{border-color:var(--border-dim);background:var(--bg-dark)}.enc-record--locked img{filter:brightness(0) saturate(0);opacity:.35}.enc-detail{position:fixed;top:0;right:0;bottom:0;left:0;z-index:96;background:#0a0e28b3;display:grid;place-items:center;padding:16px}.enc-detail .card{max-width:480px;width:100%}.story .chip--coral{animation:none}
