:root{--bg:#0b0d14;--panel:#141826;--panel-2:#1b2031;--line:#2a3048;--text:#ece6d8;--muted:#9a9fb4;--good:#8fd694;--danger:#e57b6f;--chapter:#d8ac70;--radius:10px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;margin:0;overflow-x:hidden}html{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation}textarea,input{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;font-size:max(16px,1em)}button{font:inherit;color:inherit}h1,h2,h3{margin:0;line-height:1.2}p{margin:0}.muted{color:var(--muted)}button{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:.45em .8em}button:hover:not(:disabled){border-color:var(--chapter)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--chapter);outline-offset:2px}button.primary{background:color-mix(in srgb, var(--chapter) 28%, var(--panel-2));border-color:var(--chapter);font-weight:600}button.danger{border-color:var(--danger);color:var(--danger)}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line);background:linear-gradient(90deg, color-mix(in srgb, var(--chapter) 16%, var(--bg)), var(--bg));align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.topbar h1{letter-spacing:.04em;font-size:1.05rem}.era-label{color:var(--chapter);font-size:.9rem}.music-toggle{margin-left:auto;padding:.3em .7em;font-size:.85rem}.warning{border:1px solid var(--danger);color:var(--danger);border-radius:8px;margin:.6rem 1rem 0;padding:.6rem .8rem}.layout{flex:1;grid-template-columns:minmax(320px,1.15fr) minmax(300px,1fr) minmax(300px,400px);grid-template-areas:"ruins journal store";gap:1rem;min-height:0;padding:1rem;display:grid}.ruins{flex-direction:column;grid-area:ruins;gap:.6rem;min-width:0;display:flex}.journal{grid-area:journal;min-width:0}.store{grid-area:store;min-width:0}.mobile-nav{display:none}.counter{text-align:center}.salvage{color:var(--muted);font-size:1.1rem}.salvage span{color:var(--text);font-variant-numeric:tabular-nums;font-size:clamp(2rem,4vw,2.8rem);font-weight:700;display:block}.rate{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.95rem}.ruins-stage{aspect-ratio:14/10;border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--chapter) 45%, var(--line));width:100%;max-height:62vh;box-shadow:0 0 40px color-mix(in srgb, var(--chapter) 18%, transparent);touch-action:manipulation;position:relative;overflow:hidden}.ruins-stage canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.dig-target{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:0;width:100%;height:100%;transition:transform 80ms ease-out;position:absolute;inset:0}.dig-target:hover{background:radial-gradient(circle at center, color-mix(in srgb, var(--chapter) 10%, transparent), transparent 70%)}.dig-target.pressed{background:radial-gradient(circle at center, color-mix(in srgb, var(--chapter) 18%, transparent), transparent 70%);transform:scale(.985)}.dig-target:focus-visible{outline-offset:-4px}.dig-hint{color:var(--chapter);letter-spacing:.12em;text-transform:uppercase;pointer-events:none;background:#0000008c;border-radius:999px;padding:.2em .9em;font-size:.85rem;position:absolute;bottom:.8rem;left:50%;transform:translate(-50%)}.floater{pointer-events:none;color:#fff3d6;text-shadow:0 1px 3px #000;font-variant-numeric:tabular-nums;font-weight:700;animation:.9s ease-out forwards float-up;position:absolute;transform:translate(-50%,-50%)}@keyframes float-up{0%{opacity:1;transform:translate(-50%,-50%)}to{opacity:0;transform:translate(-50%,-260%)}}.echo-orb{z-index:2;background:radial-gradient(circle at 40% 35%,#fffbe6,#f4c95d 45%,#b06ab3 100%);border:2px solid #fff6c9;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;padding:0;animation:1.2s ease-in-out infinite echo-pulse;position:absolute;box-shadow:0 0 24px 8px #ffdc78b3}@keyframes echo-pulse{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(1.15)rotate(12deg)}}.low-power .echo-orb{animation:none}.buffs{flex-wrap:wrap;justify-content:center;gap:.4rem;display:flex}.buff{color:#ffe7a6;font-variant-numeric:tabular-nums;background:#f4c95d29;border:1px solid #f4c95d;border-radius:999px;padding:.25em .7em;font-size:.85rem}.ticker{color:var(--muted);text-align:center;min-height:2.9em;font-size:.9rem;font-style:italic}.store{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.6rem;padding:.8rem;display:flex}.store h2{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:.8rem}.store-heading{justify-content:space-between;align-items:center;gap:.5rem;margin-top:.4rem;display:flex}.store-empty{color:var(--muted);font-size:.9rem}.buy-mode{gap:.25rem;display:flex}.buy-mode button{padding:.2em .55em;font-size:.8rem}.buy-mode button.active{border-color:var(--chapter);background:color-mix(in srgb, var(--chapter) 22%, var(--panel-2))}.upgrade-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:.35rem;display:grid}.upgrade-tile,.upgrade-more{aspect-ratio:1;opacity:.55;--tile:var(--line);border-color:var(--tile);place-items:center;min-height:44px;padding:0;font-size:1.2rem;display:grid}.upgrade-more{opacity:1;font-size:.8rem}.upgrade-tile.affordable{opacity:1;background:color-mix(in srgb, var(--tile) 22%, var(--panel-2))}.upgrade-tile.selected{outline:2px solid var(--text);outline-offset:1px}.upgrade-detail{flex-direction:column;gap:.1rem;min-height:4.2em;margin-top:.4rem;font-size:.85rem;display:flex}.detail-buy{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.detail-buy button{padding:.25em 1em}.upgrade-detail .cost{color:var(--danger);font-variant-numeric:tabular-nums}.upgrade-detail .cost.ok{color:var(--good)}.buildings{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.building{text-align:left;border-left:4px solid var(--tile,var(--line));opacity:.6;--tile:var(--line);grid-template:"name owned""cost owned"/1fr auto;align-items:center;column-gap:.6rem;width:100%;padding:.5rem .7rem;display:grid}.building.affordable{opacity:1}.building.locked{opacity:.4;background:var(--panel-2);border:1px dashed var(--line);cursor:default;border-radius:8px}.building-name{flex-direction:column;grid-area:name;font-weight:600;display:flex}.building-name small{color:var(--muted);font-size:.75rem;font-weight:400}.building-cost{color:var(--danger);font-variant-numeric:tabular-nums;grid-area:cost;font-size:.85rem}.building.affordable .building-cost{color:var(--good)}.building-owned{color:var(--muted);font-variant-numeric:tabular-nums;grid-area:owned;font-size:1.6rem;font-weight:700}.era-1{--tile:#d8ac70}.era-2{--tile:#e89a72}.era-3{--tile:#7acabc}.era-4{--tile:#8bbce4}.era-5{--tile:#9bd29a}.era-6{--tile:#a4a2ea}.era-7{--tile:#edca76}.era-8{--tile:#dfadd8}.era-9{--tile:#b0acee}.era-10{--tile:#e9c88e}.journal{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;min-height:0;display:flex}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:.25rem;padding:.5rem;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;padding:.35em .7em}.tabs button.active{color:var(--text);background:var(--panel-2)}.badge{background:var(--chapter);color:#111;border-radius:999px;margin-left:.35em;padding:0 .45em;font-size:.75rem;font-weight:700}.tab-body{flex-direction:column;gap:.8rem;padding:.9rem;display:flex;overflow-y:auto}.tab-body h3{margin-top:.4rem;font-size:.95rem}.chapter{background:color-mix(in srgb, var(--chapter) 10%, var(--panel-2));border:1px solid color-mix(in srgb, var(--chapter) 45%, var(--line));border-radius:8px;flex-direction:column;gap:.4rem;padding:.8rem;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--chapter);font-size:.75rem}.chapter h3{margin:0;font-size:1.2rem}.era-progress{flex-direction:column;gap:.3rem;margin-top:.3rem;display:flex}.era-progress small,.chapter small{color:var(--muted)}.bar{background:var(--bg);border-radius:999px;height:8px;overflow:hidden}.bar span{background:var(--chapter);height:100%;transition:width .3s;display:block}.log-heading{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:.8rem}.log{flex-direction:column;gap:.25rem;margin:0;padding-left:1.2rem;font-size:.9rem;display:flex}.stat-list{grid-template-columns:auto 1fr;gap:.3rem 1rem;margin:0;font-size:.9rem;display:grid}.stat-row{display:contents}.stat-list dt{color:var(--muted)}.stat-list dd{font-variant-numeric:tabular-nums;text-align:right;margin:0}.cycle{flex-direction:column;gap:.8rem;display:flex}.confirm{border:1px solid var(--chapter);border-radius:8px;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.7rem;display:flex}.confirm p{flex-basis:100%}.lessons{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.lessons li{background:var(--panel-2);border-radius:8px;justify-content:space-between;align-items:center;gap:.6rem;padding:.5rem .6rem;display:flex}.lessons li div{flex-direction:column;font-size:.9rem;display:flex}.lessons li div span{color:var(--muted);font-size:.8rem}.lessons li button{white-space:nowrap;font-size:.85rem}.lessons li.owned{opacity:.7}.tag{color:var(--good);font-size:.8rem}.achievement-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.achievement-grid li{background:var(--panel-2);opacity:.45;border-radius:8px;flex-direction:column;padding:.45rem .55rem;font-size:.78rem;display:flex}.achievement-grid li.earned{opacity:1;border:1px solid color-mix(in srgb, var(--chapter) 50%, var(--line))}.achievement-grid li span{color:var(--muted)}.options{flex-direction:column;gap:.5rem;display:flex}.options .row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.options textarea{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:.5rem;font-family:ui-monospace,monospace;font-size:.8rem}.toasts{pointer-events:none;z-index:20;flex-direction:column;gap:.4rem;max-width:min(360px,100vw - 2rem);display:flex;position:fixed;bottom:1rem;right:1rem}.toast{opacity:.96;background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;padding:.5em .8em;animation:.2s ease-out toast-in;display:flex;box-shadow:0 6px 20px #0006}.toast strong{color:var(--chapter)}.toast-echo{border-color:#f4c95d}.toast-era,.toast-discovery{border-color:var(--chapter)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal-backdrop{z-index:30;background:#0009;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--chapter);border-radius:var(--radius);flex-direction:column;gap:.8rem;width:100%;max-width:440px;max-height:calc(100dvh - 2rem);padding:1.2rem;display:flex;overflow-y:auto}.modal>button{align-self:flex-end}.modal.story{max-width:560px}.modal.story>p{line-height:1.6}.message-choices{flex-direction:column;gap:.5rem;display:flex}.message-choices button{text-align:left;flex-direction:column;gap:.2rem;padding:.7rem .8rem;display:flex}.message-choices button span{font-style:italic}.message-choices button small{color:var(--muted)}.message-choices button.chosen{border-color:var(--chapter);background:color-mix(in srgb, var(--chapter) 22%, var(--panel-2))}.message-card{border:1px dashed color-mix(in srgb, var(--chapter) 60%, var(--line));border-radius:8px;flex-direction:column;align-items:flex-start;gap:.4rem;padding:.8rem;display:flex}.message-card p:not(.eyebrow){font-style:italic}.message-choices button small.message-effect{color:var(--text)}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.epilogue-message{border-left:3px solid var(--chapter);margin:0;padding:.6rem .9rem;font-size:1.1rem;font-style:italic}.epilogue-stats{margin:0}@media (width<=1100px){.layout{grid-template:"ruins nav""ruins panel"1fr/minmax(0,1fr) minmax(300px,400px)}.mobile-nav{grid-area:nav;gap:.3rem;display:flex}.mobile-nav button{flex:1}.mobile-nav button.active{border-color:var(--chapter);background:color-mix(in srgb, var(--chapter) 22%, var(--panel-2))}.store,.journal{grid-area:panel}.show-store .journal,.show-journal .store{display:none}}@media (width<=700px){.topbar{flex-wrap:wrap;gap:.6rem;padding:.5rem .75rem}.topbar h1{font-size:.95rem}.era-label{font-size:.8rem}.layout{grid-template:"ruins""nav""panel"1fr/minmax(0,1fr);gap:.6rem;padding:.6rem}.ruins-stage{aspect-ratio:16/10;max-height:42vh}.ticker{min-height:0;font-size:.8rem}.toasts{max-width:none;font-size:.85rem;bottom:.5rem;left:.5rem;right:.5rem}}@media (prefers-reduced-motion:reduce){.floater,.echo-orb,.toast{animation:none}.dig-target{transition:none}}
