*{margin:0;padding:0;box-sizing:border-box}body{background:var(--phw-bg, #06060f);--terminal-font: "Fira Code", monospace;--node-font: "Fira Code", monospace;font-family:var(--terminal-font);color:var(--phw-body-text, #2a4a3a);overflow:hidden;user-select:none;-webkit-user-select:none}#app{--ts: 1}#app.text-sm{--ts: .85}#app.text-md{--ts: 1}#app.text-lg{--ts: 1.2}#app.text-xl{--ts: 1.4}#app{display:grid;grid-template-columns:330px 2fr 1fr;grid-template-rows:100vh;grid-template-areas:"nav grid terminal"}#app.layout-ngt{grid-template-areas:"nav grid terminal"}#app.layout-tgn{grid-template-areas:"terminal grid nav"}#app.layout-ntg{grid-template-areas:"nav terminal grid"}.grid-wrapper{grid-area:grid;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}#game-container{width:100%;height:100%}#game-container canvas{cursor:pointer;-webkit-tap-highlight-color:color-mix(in srgb,var(--phw-accent-bright, #00ff88) 5%,transparent);touch-action:manipulation}.nav-panel{grid-area:nav;display:flex;flex-direction:column;padding:1.5rem 1.25rem;gap:1rem;background:var(--phw-bg, #06060f);border-right:1px solid var(--phw-border, #0f1f18);overflow-y:auto}.nav-logo-row{display:flex;align-items:center;gap:.5rem}.nav-logo-icon{width:calc(2.4rem * var(--ts));height:calc(2.4rem * var(--ts));color:var(--phw-accent-bright, #00ff88);flex-shrink:0;margin-left:-.5rem}.nav-logo{font-size:calc(1rem * var(--ts));font-weight:400;letter-spacing:.24em;margin-left:-1px;color:var(--phw-accent, #4a8a6a);text-transform:uppercase}.nav-logo-text{display:flex;flex-direction:column;flex:1;min-width:0}.nav-logo-sub{display:flex;justify-content:space-between;align-items:baseline}.nav-version{font-size:calc(.55rem * var(--ts));color:var(--phw-accent, #4a8a6a);opacity:.65;letter-spacing:.08em}.nav-byline{font-size:calc(.55rem * var(--ts));color:var(--phw-accent, #4a8a6a);text-decoration:none;opacity:.6;transition:opacity .3s;letter-spacing:.05em}.nav-byline:hover{opacity:.8}.nav-spacer{flex:1}.nav-tips{display:flex;flex-direction:column;gap:.3rem}.nav-tips-row{font-size:calc(.6rem * var(--ts));color:var(--phw-accent-dim, #2e6e4e);letter-spacing:.06em;line-height:1.4}.nav-tips-hook{color:var(--phw-accent, #4a8a6a)}.nav-tips-divider{border-top:1px solid var(--phw-border, #0f1f18);margin:.15rem 0}.nav-bmac{display:block;margin-top:.5rem;flex-shrink:0}.nav-bmac-sticky{margin-top:auto;padding-top:.5rem}.nav-bmac img{width:100%;height:auto;border-radius:3px;opacity:.6;transition:opacity .3s}.nav-bmac-sticky img{width:100%;height:auto}.nav-bmac img:hover{opacity:1}.nav-lang-toggles{display:flex;align-items:center;gap:.5rem}.nav-lang-label{font-size:calc(.65rem * var(--ts));color:var(--phw-accent-dim, #2e6e4e);letter-spacing:.1em;flex-shrink:0}.nav-lang-options{display:flex;gap:2px}.lang-toggle{background:none;border:1px solid var(--phw-control-border, #1a3a2a);color:var(--phw-term-info, #3a6a5a);font-family:inherit;font-size:.6rem;cursor:pointer;padding:.2rem .45rem;transition:all .2s;line-height:1;text-transform:uppercase;letter-spacing:.05em}.lang-toggle:first-child{border-radius:3px 0 0 3px}.lang-toggle:last-child{border-radius:0 3px 3px 0}.lang-toggle:only-child{border-radius:3px}.lang-toggle:hover{border-color:var(--phw-accent, #4a8a6a);color:var(--phw-accent, #4a8a6a)}.lang-toggle.active{background:var(--phw-control-border, #1a3a2a);border-color:var(--phw-accent, #4a8a6a);color:var(--phw-accent-bright, #00ff88)}.terminal-panel{grid-area:terminal;display:flex;flex-direction:column;background:var(--phw-bg, #06060f);border-left:1px solid var(--phw-border, #0f1f18);overflow:hidden}.terminal-header{display:flex;flex-direction:column;gap:.4rem;padding:.75rem 1rem;border-bottom:1px solid var(--phw-border, #0f1f18);flex-shrink:0}.terminal-header-text{font-size:calc(.75rem * var(--ts));letter-spacing:.2em;color:var(--phw-accent-dim, #2e6e4e);text-transform:uppercase}.terminal-progress-bar{height:4px;background:var(--phw-control-bg, #0d1a14);border-radius:2px;overflow:hidden}.terminal-progress-fill{height:100%;background:var(--phw-accent, #4a8a6a);border-radius:2px;transition:width .4s ease}.word-tracker{padding:.5rem 1rem;border-bottom:1px solid var(--phw-border, #0f1f18);flex-shrink:0}.word-tracker-row{font-size:calc(.85rem * var(--ts));line-height:1.6;letter-spacing:.08em;font-variant-numeric:tabular-nums}.word-tracker-row.word-complete{opacity:.5}.word-tracker-prefix{margin-right:.5rem}.word-tracker-frag{color:var(--phw-frag-unpowered, #2e6e4e);opacity:.4;margin-right:.2em;transition:color .3s,opacity .3s}.word-tracker-frag.powered{opacity:1;text-shadow:0 0 8px currentColor}.word-tracker-frag.uncolored{opacity:.65;text-shadow:none}.word-tracker-req{font-size:calc(.7rem * var(--ts));margin-left:.5em;font-variant-numeric:tabular-nums;white-space:nowrap}.word-tracker-req.req-met .req-diamond{text-shadow:0 0 6px currentColor}.word-tracker-req.req-unmet .req-diamond{opacity:.5}.req-diamond{margin-right:1px}.req-mult{font-size:calc(.6rem * var(--ts));color:var(--phw-accent-dim, #2e6e4e);margin-left:.2em;opacity:.7}.word-tracker-req.req-met .req-mult{color:var(--phw-accent-bright, #00ff88);opacity:1}.terminal-scroll{flex:1;overflow-y:auto;padding:.75rem 1rem;scrollbar-width:thin;scrollbar-color:var(--phw-control-border, #1a3a2a) var(--phw-bg, #06060f)}.terminal-scroll::-webkit-scrollbar{width:4px}.terminal-scroll::-webkit-scrollbar-track{background:var(--phw-bg, #06060f)}.terminal-scroll::-webkit-scrollbar-thumb{background:var(--phw-control-border, #1a3a2a);border-radius:2px}.terminal-line{font-size:calc(.8rem * var(--ts));line-height:1.7;letter-spacing:.03em;white-space:pre-wrap;word-break:break-word}.terminal-flag{height:1.1em;vertical-align:middle;margin-right:.2em;border-radius:2px;box-shadow:0 0 0 1px #8080804d}.terminal-system{color:var(--phw-accent-dim, #2e6e4e);opacity:.45}.terminal-hack{color:var(--phw-accent-dim, #2e6e4e);opacity:.5}.terminal-decrypt{font-weight:600;text-shadow:0 0 6px currentColor}.terminal-info{color:var(--phw-accent, #4a8a6a);opacity:.9}.terminal-success{color:var(--phw-accent-bright, #00ff88);text-shadow:0 0 8px currentColor}.terminal-exiting{max-height:0;opacity:0;overflow:hidden;margin:0;padding:0;transition:max-height .4s ease,opacity .3s ease}.terminal-group{cursor:pointer}.terminal-group-header{opacity:.6;transition:opacity .2s}.terminal-group:hover .terminal-group-header{opacity:.85}.terminal-group-children{overflow:hidden;max-height:0;opacity:0;transition:max-height .3s ease,opacity .2s ease}.terminal-group.expanded .terminal-group-children{max-height:200px;opacity:1}.hud-toast{position:absolute;top:15%;left:50%;transform:translate(-50%);font-size:2.5rem;font-weight:700;letter-spacing:.15em;pointer-events:none;z-index:100;animation:toast-fade 2.5s ease-out forwards}@keyframes toast-fade{0%{opacity:0;transform:translate(-50%) translateY(10px) scale(.9)}10%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}70%{opacity:1}to{opacity:0;transform:translate(-50%) translateY(-10px)}}body:after{content:"";position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent 0px,transparent 3px,rgba(0,0,0,.04) 3px,rgba(0,0,0,.04) 6px);pointer-events:none;z-index:9999}@keyframes glitch-skew{0%{transform:none;clip-path:none}20%{transform:translate(-3px) skew(-.5deg);clip-path:inset(20% 0 60% 0)}40%{transform:translate(2px) skew(.3deg);clip-path:inset(50% 0 20% 0)}60%{transform:translate(-1px);clip-path:inset(10% 0 70% 0)}80%{transform:translate(1px) skew(-.2deg);clip-path:none}to{transform:none;clip-path:none}}@keyframes glitch-color{0%,to{text-shadow:none}25%{text-shadow:-2px 0 #ff3c50,2px 0 #3278ff}50%{text-shadow:1px 0 #00ff88,-1px 0 #b450ff}75%{text-shadow:-1px 0 #3278ff,1px 0 #ff3c50}}.glitch-active .terminal-scroll{animation:glitch-skew .15s linear}.glitch-active .terminal-header{animation:glitch-color .15s steps(2)}.glitch-active .nav-logo{animation:glitch-color .2s steps(3)}.glitch-active .nav-logo-icon{animation:glitch-skew .15s linear}.nav-text-size{display:flex;align-items:center;gap:.5rem}.nav-text-size-label{font-size:calc(.65rem * var(--ts));color:var(--phw-accent-dim, #2e6e4e);letter-spacing:.1em}.nav-text-size-options{display:flex;gap:2px}.text-size-option{background:none;border:1px solid var(--phw-control-border, #1a3a2a);color:var(--phw-term-info, #3a6a5a);font-family:inherit;font-size:.6rem;cursor:pointer;padding:.2rem .45rem;transition:all .2s;line-height:1}.text-size-option:first-child{border-radius:3px 0 0 3px}.text-size-option:last-child{border-radius:0 3px 3px 0}.text-size-option:hover{border-color:var(--phw-accent, #4a8a6a);color:var(--phw-accent, #4a8a6a)}.text-size-option.active{background:var(--phw-control-border, #1a3a2a);border-color:var(--phw-accent, #4a8a6a);color:var(--phw-accent-bright, #00ff88)}.nav-font-setting{display:flex;align-items:center;gap:.5rem}.nav-font-label{font-size:calc(.65rem * var(--ts));color:var(--phw-accent-dim, #2e6e4e);letter-spacing:.1em;flex-shrink:0;min-width:4em}.nav-font-select{flex:1;background:var(--phw-control-bg, #0d1a14);border:1px solid var(--phw-control-border, #1a3a2a);color:var(--phw-accent, #4a8a6a);font-size:.6rem;padding:.25rem 1.2rem .25rem .4rem;border-radius:3px;cursor:pointer;outline:none;transition:border-color .2s;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%234a8a6a'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .4rem center}.nav-font-select:hover{border-color:var(--phw-accent, #4a8a6a)}.nav-font-select:focus{border-color:var(--phw-accent-bright, #00ff88)}.nav-font-select option{background:var(--phw-control-bg, #0d1a14);color:var(--phw-accent, #4a8a6a)}.constellation-close{background:none;border:1px solid var(--phw-control-border, #1a3a2a);color:var(--phw-accent, #4a8a6a);font-size:1.2rem;cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:3px;opacity:.6;transition:opacity .2s;line-height:1}.constellation-close:hover{opacity:1}.shop-balance{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.5rem;padding-bottom:.4rem;border-bottom:1px solid var(--phw-border, #0f1f18)}.shop-balance-label{font-size:calc(.65rem * var(--ts, 1));color:var(--phw-accent-dim, #2e6e4e);letter-spacing:.15em;text-transform:uppercase}.shop-items{display:flex;flex-direction:column;gap:.5rem}.shop-item{background:var(--phw-control-bg, #0d1a14);border:1px solid var(--phw-control-border, #1a3a2a);color:var(--phw-accent, #4a8a6a);font-family:inherit;cursor:pointer;padding:.6rem .75rem;border-radius:3px;text-align:left;transition:border-color .2s,opacity .2s}.shop-item:hover:not(:disabled){border-color:var(--phw-accent, #4a8a6a)}.shop-item:active:not(:disabled){border-color:var(--phw-accent-bright, #00ff88)}.shop-item-disabled{opacity:.3;cursor:not-allowed}.shop-item-top{display:flex;justify-content:space-between;align-items:baseline}.shop-item-name{font-size:calc(.8rem * var(--ts, 1));letter-spacing:.1em}.shop-item-cost{font-size:calc(.75rem * var(--ts, 1));color:var(--phw-accent-bright, #00ff88);font-variant-numeric:tabular-nums}.shop-item-desc{display:block;font-size:calc(.6rem * var(--ts, 1));color:var(--phw-accent-dim, #2e6e4e);letter-spacing:.05em;margin-top:.25rem}.shop-section-label{font-size:calc(.6rem * var(--ts, 1));color:var(--phw-accent-dim, #2e6e4e);letter-spacing:.15em;text-transform:uppercase;margin-top:.75rem;margin-bottom:.4rem;padding-top:.5rem;border-top:1px solid var(--phw-border, #0f1f18)}.shop-feature{background:var(--phw-control-bg, #0d1a14);border:1px solid var(--phw-control-border, #1a3a2a);padding:.5rem .6rem;border-radius:3px;transition:border-color .2s}.shop-feature-on{border-color:var(--phw-accent, #4a8a6a);cursor:pointer}.shop-feature-off{cursor:pointer}.shop-feature-off:hover{border-color:var(--phw-control-border, #1a3a2a)}.shop-feature-on:hover{border-color:var(--phw-accent-bright, #00ff88)}.shop-feature-top{display:flex;justify-content:space-between;align-items:center}.shop-passive-level{font-size:calc(.6rem * var(--ts, 1));color:var(--phw-accent-bright, #00ff88);font-variant-numeric:tabular-nums;letter-spacing:.05em}.shop-toggle{position:relative;width:30px;height:16px;background:var(--phw-control-border, #1a3a2a);border:none;border-radius:8px;cursor:pointer;padding:0;transition:background .2s}.shop-toggle-on{background:var(--phw-accent, #4a8a6a)}.shop-toggle-knob{position:absolute;top:2px;left:2px;width:12px;height:12px;background:var(--phw-accent-dim, #2e6e4e);border-radius:50%;transition:transform .2s,background .2s}.shop-toggle-on .shop-toggle-knob{transform:translate(14px);background:var(--phw-accent-bright, #00ff88)}.shop-feature-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:.3rem}.shop-feature-effect{font-size:calc(.55rem * var(--ts, 1));color:var(--phw-accent, #4a8a6a);letter-spacing:.08em;font-variant-numeric:tabular-nums}.shop-level-btn{background:none;border:1px solid var(--phw-control-border, #1a3a2a);color:var(--phw-accent, #4a8a6a);font-family:inherit;font-size:calc(.55rem * var(--ts, 1));cursor:pointer;padding:.15rem .4rem;border-radius:3px;white-space:nowrap;transition:border-color .2s,opacity .2s;font-variant-numeric:tabular-nums}.shop-level-btn:hover:not(:disabled){border-color:var(--phw-accent, #4a8a6a)}.shop-level-btn:active:not(:disabled){border-color:var(--phw-accent-bright, #00ff88)}.constellation-backdrop{display:none}.constellation-panel{position:absolute;inset:0;z-index:50;background:var(--phw-bg, #06060f);display:flex;flex-direction:column}.constellation-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border-bottom:1px solid var(--phw-border, #0f1f18);flex-shrink:0}.constellation-title{font-size:calc(.8rem * var(--ts, 1));color:var(--phw-accent, #4a8a6a);letter-spacing:.2em;text-transform:uppercase}.constellation-body{position:relative;flex:1;overflow:hidden}.constellation-canvas{width:100%;height:100%;cursor:grab}.constellation-canvas:active{cursor:grabbing}.constellation-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--phw-accent-dim, #2e6e4e);font-family:var(--terminal-font);font-size:.85rem;letter-spacing:.08em;line-height:2;text-align:center;opacity:.6;pointer-events:none}.nav-accordion{flex-wrap:nowrap}.nav-accordion-headers{display:flex;gap:2px;align-items:stretch}.nav-accordion-icon{background:none;border:1px solid var(--phw-control-border, #1a3a2a);color:var(--phw-term-info, #3a6a5a);cursor:pointer;padding:.4rem;transition:all .2s;display:flex;align-items:center;justify-content:center;width:42px;flex-shrink:0}.nav-accordion-icon:first-child{border-radius:3px 0 0 3px}.nav-accordion-icon svg{width:22px;height:22px}.nav-accordion-icon:hover{border-color:var(--phw-accent, #4a8a6a);color:var(--phw-accent, #4a8a6a)}.nav-accordion-icon.active{background:var(--phw-control-border, #1a3a2a);border-color:var(--phw-accent, #4a8a6a);color:var(--phw-accent-bright, #00ff88)}.nav-accordion-tab{background:none;border:1px solid var(--phw-control-border, #1a3a2a);color:var(--phw-term-info, #3a6a5a);font-family:inherit;font-size:calc(.65rem * var(--ts));cursor:pointer;padding:.3rem .5rem;transition:all .2s;line-height:1;letter-spacing:.08em;font-variant-numeric:tabular-nums}.nav-accordion-tab-cycles{flex:1;border-radius:0 3px 3px 0;text-align:center}.nav-accordion-tab:hover{border-color:var(--phw-accent, #4a8a6a);color:var(--phw-accent, #4a8a6a)}.nav-accordion-tab.active{background:var(--phw-control-border, #1a3a2a);border-color:var(--phw-accent, #4a8a6a);color:var(--phw-accent-bright, #00ff88)}.nav-accordion-body{display:flex;flex-direction:column;gap:.75rem;flex:1;min-height:0;overflow-y:auto;padding-top:.5rem;border-top:1px solid var(--phw-border, #0f1f18);margin-top:.5rem;scrollbar-width:thin;scrollbar-color:var(--phw-control-border, #1a3a2a) var(--phw-bg, #06060f)}.nav-accordion-backdrop{display:none}.hackbook-panel{display:flex;flex-direction:column;gap:.75rem}.nav-accordion-section-label,.hackbook-section-label{font-size:calc(.65rem * var(--ts, 1));color:var(--phw-accent-dim, #2e6e4e);letter-spacing:.15em;text-transform:uppercase}.hackbook-empty{font-size:calc(.75rem * var(--ts, 1));color:var(--phw-accent-dim, #2e6e4e);opacity:.6;letter-spacing:.08em;line-height:1.8}.nav-reset-panel{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem 0}.nav-reset-message{font-size:calc(.8rem * var(--ts, 1));color:var(--phw-accent, #4a8a6a);letter-spacing:.08em;text-align:center}.nav-reset-actions{display:flex;gap:.5rem}.nav-reset-confirm,.nav-reset-cancel{background:none;border:1px solid var(--phw-control-border, #1a3a2a);color:var(--phw-accent-bright, #6affb2);font-family:inherit;font-size:calc(.75rem * var(--ts, 1));letter-spacing:.1em;cursor:pointer;padding:.4rem 1.25rem;border-radius:3px;transition:all .2s;text-transform:uppercase}.nav-reset-confirm:hover{border-color:var(--phw-accent-bright, #00ff88);background:#00ff8814}.nav-reset-cancel{color:var(--phw-term-info, #3a6a5a)}.nav-reset-cancel:hover{border-color:var(--phw-accent, #4a8a6a)}@media(max-width:900px){body{overflow:hidden}#app{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}#app.layout-ngt,#app.layout-tgn,#app.layout-ntg{grid-template-areas:none}.nav-panel{position:sticky;top:0;z-index:20;background:var(--phw-bg, #06060f);border-right:none;border-bottom:1px solid var(--phw-border, #0f1f18);flex-direction:column;flex-wrap:wrap;align-content:flex-start;max-height:22vh;overflow-x:auto;overflow-y:hidden;padding:.5rem .75rem;gap:.4rem;flex-shrink:0;scrollbar-width:none}.nav-panel::-webkit-scrollbar{display:none}.nav-panel>*{flex-shrink:0}.nav-logo{font-size:calc(.8rem * var(--ts));letter-spacing:.2em}.nav-logo-icon{width:calc(1.8rem * var(--ts));height:calc(1.8rem * var(--ts))}.nav-text-size,.nav-font-setting{gap:.3rem}.nav-font-select{max-width:120px}.nav-spacer,.nav-tips,.nav-bmac{display:none}.terminal-panel{order:2;border-left:none;border-top:1px solid var(--phw-border, #0f1f18);border-bottom:1px solid var(--phw-border, #0f1f18);flex:1;min-height:60px}.grid-wrapper{order:3;width:100%;height:min(100vw,50dvh);flex-shrink:0}.hud-toast{font-size:1.5rem}.nav-accordion-backdrop{display:block;position:fixed;inset:0;z-index:149;background:#0006}.nav-accordion-body{position:fixed;bottom:0;left:0;right:0;z-index:150;background:var(--phw-bg, #06060f);border-top:1px solid var(--phw-control-border, #1a3a2a);padding:1rem;max-height:50vh;overflow-y:auto;margin-top:0;border-radius:8px 8px 0 0;box-shadow:0 -4px 20px #00000080}}.seed-control{width:100%;border-top:1px solid var(--phw-border, #0f1f18);padding-top:.75rem}.seed-label{font-size:calc(.65rem * var(--ts, 1));color:var(--phw-accent-dim, #2e6e4e);display:block;margin-bottom:.25rem;letter-spacing:.15em;text-transform:uppercase}.seed-row{display:flex;gap:.25rem;align-items:center}.seed-input{flex:1;min-width:0;background:var(--phw-control-bg, #0d1a14);border:1px solid var(--phw-control-border, #1a3a2a);color:var(--phw-accent, #4a8a6a);font-family:var(--terminal-font, "Fira Code", monospace);font-size:.7rem;padding:.25rem .4rem;border-radius:3px}.seed-input:focus{outline:none;border-color:var(--phw-accent-bright, #00ff88)}.seed-btn{background:var(--phw-control-bg, #0d1a14);border:1px solid var(--phw-control-border, #1a3a2a);color:var(--phw-accent, #4a8a6a);font-size:.75rem;cursor:pointer;padding:.2rem .45rem;border-radius:3px;line-height:1}.seed-btn:hover{border-color:var(--phw-accent, #4a8a6a);color:var(--phw-accent-bright, #00ff88)}.nav-audio-row{display:flex;align-items:center;gap:.4rem}.nav-audio-btn{background:none;border:1px solid var(--phw-control-border, #1a3a2a);color:var(--phw-accent, #4a8a6a);cursor:pointer;padding:.2rem;border-radius:3px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.nav-audio-btn svg{width:14px;height:14px}.nav-audio-btn:hover{border-color:var(--phw-accent, #4a8a6a);color:var(--phw-accent-bright, #00ff88)}.nav-audio-muted{color:var(--phw-accent-dim, #2e6e4e);opacity:.5}.nav-volume-slider{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:var(--phw-control-border, #1a3a2a);border-radius:2px;outline:none;cursor:pointer;min-width:50px}.nav-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:var(--phw-accent, #4a8a6a);cursor:pointer;transition:background .2s}.nav-volume-slider::-webkit-slider-thumb:hover{background:var(--phw-accent-bright, #00ff88)}.nav-volume-slider::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:var(--phw-accent, #4a8a6a);border:none;cursor:pointer}.nav-volume-slider::-moz-range-track{background:var(--phw-control-border, #1a3a2a);height:4px;border-radius:2px}.changelog{margin-top:.75rem;border-top:1px solid var(--phw-control-border, #1a3a2a);padding-top:.5rem}.changelog-header{font-size:calc(.65rem * var(--ts, 1));color:var(--phw-accent-dim, #2e6e4e);margin-bottom:.25rem;letter-spacing:.15em;text-transform:uppercase}.changelog-entry{margin-bottom:.25rem}.changelog-version{background:none;border:none;color:var(--phw-accent, #4a8a6a);font-family:var(--terminal-font, "Fira Code", monospace);font-size:.75rem;cursor:pointer;padding:.15rem 0;display:block;width:100%;text-align:left}.changelog-version:hover{color:var(--phw-accent-bright, #00ff88)}.changelog-caret{display:inline-block;width:1em;font-size:.65rem}.changelog-list{list-style:none;padding:0 0 0 1.2em;margin:.15rem 0 .35rem;font-size:.65rem;color:var(--phw-accent-dim, #2e6e4e);line-height:1.5}.changelog-list>li{padding-left:1.2em;text-indent:-1.2em}.changelog-list>li:before{content:"- "}.changelog-sublist{list-style:none;padding:0 0 0 .6em;margin:0}.changelog-sublist>li{padding-left:1.2em;text-indent:-1.2em}.changelog-sublist>li:before{content:"- "}.changelog-code{background:var(--phw-control-bg, #0d1a14);padding:.05em .3em;border-radius:2px;font-size:.95em}.achieve-toast{position:absolute;bottom:12%;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--phw-bg, #06060f);border:1px solid var(--phw-accent, #4a8a6a);border-radius:4px;pointer-events:none;z-index:100;animation:achieve-fade 3.5s ease-out forwards;white-space:nowrap;box-shadow:0 0 20px color-mix(in srgb,var(--phw-accent-bright, #00ff88) 30%,transparent)}.achieve-toast-icon{color:var(--phw-accent-bright, #00ff88);font-size:1rem;text-shadow:0 0 8px currentColor}.achieve-toast-text{display:flex;flex-direction:column}.achieve-toast-name{color:var(--phw-accent-bright, #00ff88);font-size:calc(.8rem * var(--ts, 1));letter-spacing:.1em;text-shadow:0 0 8px currentColor}.achieve-toast-desc{color:var(--phw-accent, #4a8a6a);font-size:calc(.6rem * var(--ts, 1));letter-spacing:.05em;opacity:.7}@keyframes achieve-fade{0%{opacity:0;transform:translate(-50%) translateY(10px)}10%{opacity:1;transform:translate(-50%) translateY(0)}75%{opacity:1}to{opacity:0;transform:translate(-50%) translateY(-6px)}}.achieve-list{display:flex;flex-direction:column;gap:.5rem}.achieve-summary{font-size:calc(.7rem * var(--ts, 1));color:var(--phw-accent-bright, #00ff88);letter-spacing:.1em;text-shadow:0 0 6px currentColor;font-variant-numeric:tabular-nums}.achieve-category{display:flex;flex-direction:column;gap:.2rem}.achieve-category-label{font-size:calc(.55rem * var(--ts, 1));color:var(--phw-accent-dim, #2e6e4e);letter-spacing:.15em;text-transform:uppercase;margin-top:.25rem}.achieve-item{display:flex;align-items:flex-start;gap:.4rem;padding:.15rem 0}.achieve-icon{font-size:calc(.6rem * var(--ts, 1));flex-shrink:0;line-height:1.3}.achieve-text{display:flex;flex-direction:column;min-width:0}.achieve-name{font-size:calc(.7rem * var(--ts, 1));letter-spacing:.06em;line-height:1.3}.achieve-desc{font-size:calc(.55rem * var(--ts, 1));letter-spacing:.04em;line-height:1.3;opacity:.6}.achieve-unlocked .achieve-icon{color:var(--phw-accent-bright, #00ff88);text-shadow:0 0 6px currentColor}.achieve-unlocked .achieve-name{color:var(--phw-accent-bright, #00ff88)}.achieve-unlocked .achieve-desc{color:var(--phw-accent, #4a8a6a)}.achieve-locked .achieve-icon{color:var(--phw-accent-dim, #2e6e4e);opacity:.4}.achieve-locked .achieve-name{color:var(--phw-accent-dim, #2e6e4e);opacity:.5}.achieve-locked .achieve-desc{color:var(--phw-accent-dim, #2e6e4e);opacity:.35}.reset-all-section{margin-top:1.5rem;padding-top:.75rem;border-top:1px solid var(--phw-border, #0f1f18)}.reset-all-btn{background:none;border:1px solid #3a1a1a;color:#c44;font-family:inherit;font-size:calc(.6rem * var(--ts, 1));letter-spacing:.08em;cursor:pointer;padding:.35rem .6rem;border-radius:3px;transition:all .2s;opacity:.5;width:100%}.reset-all-btn:hover{opacity:.8;border-color:#5a2a2a}.reset-all-btn.reset-all-confirm{opacity:1;border-color:#833;color:#f44;background:#ff323214}
