:root{--bg: #0a0d10;--panel: #11161b;--panel-2: #161c22;--line: #1f2730;--line-bright: #2a3540;--ink: #d8e0e8;--ink-dim: #7c8a98;--ink-faint: #4a5560;--green: #4ade80;--yellow: #facc15;--red: #ef4444;--blue: #60a5fa;--accent: #a3e635}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}html,body{margin:0;padding:0;height:100%;overflow:hidden;overscroll-behavior:none;touch-action:manipulation;background:radial-gradient(1200px 600px at 50% -200px,rgba(60,80,100,.15),transparent 60%),var(--bg);color:var(--ink);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px}#root{height:100vh;height:100dvh;display:flex;flex-direction:column;position:relative}.header{padding:10px 14px 6px;display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--line);flex-shrink:0}.title{font-family:Georgia,Times New Roman,serif;font-size:18px;font-weight:600;letter-spacing:-.01em;font-style:italic}.clock{font-size:10px;color:var(--ink-dim);letter-spacing:.08em}.meters{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-bottom:1px solid var(--line);flex-shrink:0}.meter{background:var(--panel);padding:7px 12px 8px;display:flex;flex-direction:column;gap:4px}.meter-headline{grid-column:1 / -1}.meter-head{display:flex;justify-content:space-between;align-items:baseline}.meter-label{font-size:9px;letter-spacing:.12em;color:var(--ink-dim);text-transform:uppercase}.meter-value{font-family:Georgia,serif;font-size:15px;font-weight:600;color:var(--ink);transition:color .3s}.meter-value.bad{color:var(--red)}.meter-value.warn{color:var(--yellow)}.meter-value.good{color:var(--green)}.bar{height:3px;background:var(--line-bright);border-radius:2px;overflow:hidden}.bar-fill{height:100%;width:0;background:var(--ink);transition:width .4s cubic-bezier(.3,.7,.3,1),background .3s}.bar-fill.bad{background:var(--red)}.bar-fill.warn{background:var(--yellow)}.bar-fill.good{background:var(--green)}.system{flex:1 1 auto;background:var(--panel);border-bottom:1px solid var(--line);position:relative;min-height:200px;overflow:hidden}.system-canvas{width:100%;height:100%;display:block}.tint{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;z-index:2}.tint.warn{background:#facc151f}.tint.bad{background:#ef444429}.tint.show{opacity:1}.banner{position:absolute;top:12px;left:50%;transform:translate(-50%) translateY(-10px);z-index:3;pointer-events:none;padding:8px 16px;background:#0a0d10eb;border:1px solid var(--line-bright);border-radius:4px;font-size:13px;font-weight:700;letter-spacing:.18em;color:var(--ink);opacity:0;transition:opacity .35s,transform .35s;white-space:nowrap}.banner.show{opacity:1;transform:translate(-50%) translateY(0)}.banner.warn{color:var(--yellow);border-color:#facc1580;box-shadow:0 0 24px #facc1533}.banner.bad{color:var(--red);border-color:#ef444480;box-shadow:0 0 24px #ef444440}.status{background:var(--panel-2);padding:9px 14px;font-size:12px;color:var(--ink);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;min-height:36px;letter-spacing:.02em;flex-shrink:0;transition:background .3s,color .3s}.status.warn{background:#facc1514;color:var(--yellow)}.status.bad{background:#ef444414;color:var(--red)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--green);flex-shrink:0;transition:background .3s}.status-dot.warn{background:var(--yellow);box-shadow:0 0 6px #facc1580}.status-dot.bad{background:var(--red);box-shadow:0 0 8px #ef444499;animation:dot-pulse 1s infinite}@keyframes dot-pulse{0%,to{opacity:1}50%{opacity:.4}}.dials{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:var(--line);padding-bottom:env(safe-area-inset-bottom);flex-shrink:0}.dial{background:var(--panel);padding:10px 6px 14px;display:flex;flex-direction:column;align-items:center;gap:8px}.dial-name{font-size:10px;letter-spacing:.12em;color:var(--ink-dim);text-transform:uppercase;text-align:center}.dial-options{display:flex;flex-direction:column;gap:4px;width:100%;padding:0 4px}.dial-opt{font-size:11px;padding:7px 5px;border-radius:4px;text-align:center;color:var(--ink-faint);background:transparent;border:1px solid transparent;cursor:pointer;transition:all .15s;letter-spacing:.02em;line-height:1.2}.dial-opt.active{color:var(--ink);background:var(--line-bright);border-color:var(--accent)}.dial-opt:active:not(.disabled){transform:scale(.95)}.dial-opt.disabled{color:var(--ink-faint);opacity:.35;cursor:not-allowed}.dial-opt-caption{display:block;font-size:8px;letter-spacing:.05em;color:var(--ink-faint);margin-top:2px;opacity:.7}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.dial-opt.shake{animation:shake .3s}.reveal{position:absolute;inset:0;background:var(--bg);z-index:10;display:flex;flex-direction:column;padding:22px 18px calc(20px + env(safe-area-inset-bottom));opacity:0;pointer-events:none;transition:opacity .6s}.reveal.show{opacity:1;pointer-events:auto}.reveal-title{font-family:Georgia,serif;font-size:22px;font-weight:600;letter-spacing:-.01em;margin-bottom:4px;font-style:italic}.reveal-sub{font-size:10px;color:var(--ink-dim);margin-bottom:4px;letter-spacing:.1em;text-transform:uppercase}.map{flex:1;position:relative;border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,rgba(163,230,53,.02),transparent);min-height:180px;overflow:hidden}.map-axis{position:absolute;font-size:9px;letter-spacing:.1em;color:var(--ink-dim);text-transform:uppercase}.map-axis.x{bottom:8px;right:12px}.map-axis.y{top:12px;left:12px;writing-mode:vertical-rl;transform:rotate(180deg)}.map-dot{position:absolute;width:6px;height:6px;border-radius:50%;transform:translate(-50%,-50%);background:var(--ink-faint)}.map-label{position:absolute;font-size:10px;color:var(--ink-dim);transform:translate(8px,-50%);white-space:nowrap}.map-dot.you{width:14px;height:14px;background:var(--accent);animation:map-ping 2s infinite}.map-label.you{color:var(--accent);font-weight:700}@keyframes map-ping{0%,to{box-shadow:0 0 0 4px #a3e63526}50%{box-shadow:0 0 0 10px #a3e6350d}}.reveal-quote{font-family:Georgia,serif;font-size:15px;font-style:italic;line-height:1.45;margin-top:14px;text-align:center;color:var(--ink)}.reveal-btn{margin-top:14px;padding:12px;background:var(--accent);color:var(--bg);border:none;border-radius:6px;font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;flex-shrink:0}.reveal-btn:active{transform:scale(.98)}.back-btn{background:transparent;border:none;color:var(--ink-dim);font-size:16px;cursor:pointer;padding:0 4px 0 0;line-height:1}.back-btn:active{opacity:.6}.mode-selector{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:28px 18px calc(16px + env(safe-area-inset-bottom))}.mode-selector-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;width:100%}.mode-title{display:flex;flex-direction:column;align-items:center;gap:6px}.mode-title-italic{font-family:Georgia,serif;font-size:24px;font-weight:600;font-style:italic;letter-spacing:-.01em}.mode-title-playground{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-top:-2px}.mode-title-sub{font-size:10px;color:var(--ink-dim);letter-spacing:.12em;text-transform:uppercase}.mode-cards{display:flex;flex-direction:column;gap:12px;width:100%}.mode-card{background:var(--panel);border:1px solid var(--line-bright);border-radius:8px;padding:18px 16px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:6px;font-family:inherit;color:var(--ink);transition:border-color .2s,background .2s}.mode-card:active{background:var(--panel-2);border-color:var(--accent)}.mode-card-title{font-family:Georgia,serif;font-size:18px;font-weight:600;font-style:italic}.mode-card-sub{font-size:9px;color:var(--ink-dim);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}.mode-card-bullets{margin:0;padding:0 0 0 14px;display:flex;flex-direction:column;gap:3px}.mode-card-bullets li{font-size:11px;color:var(--ink-dim);letter-spacing:.02em}.mode-card-cta{margin-top:8px;font-size:11px;font-weight:700;color:var(--accent);letter-spacing:.08em}.mode-footer{font-size:10px;color:var(--ink-faint);letter-spacing:.1em;text-align:center;padding-bottom:env(safe-area-inset-bottom)}
