:root{color-scheme:dark;--bg:#101b2a;--ink:#f3e8d2;--muted:#a8b3bc;--gold:#e8bc6b;--violet:#c0b2e3}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% 10%,#22313c 0,transparent 55%),var(--bg);color:var(--ink);font:16px/1.5 system-ui,sans-serif}main{max-width:1120px;margin:auto;padding:25px 36px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;background:transparent;border:1px solid #52606b;border-radius:12px;padding:10px 16px;transition:background .2s,transform .2s}button:hover:not(:disabled){background:#ffffff12;transform:translateY(-2px)}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:5px}header{display:flex;justify-content:space-between;align-items:center;gap:12px}a{color:inherit}.brand{text-decoration:none;letter-spacing:.2em;font-size:13px;font-weight:700;color:var(--gold)}header button{font-size:13px;border-color:#ffffff25}header button span{border-radius:100%;padding:1px 6px;border:1px solid #ffffff40;margin-left:9px}.intro{padding:48px 0 30px;position:relative}.eyebrow{font-size:10px;letter-spacing:.22em;color:var(--gold);font-weight:700;margin:0 0 8px}h1{font:normal clamp(42px,6vw,66px)/1.03 Georgia,serif;margin:10px 0 18px;letter-spacing:-.04em}h1 em{color:var(--gold);font-weight:normal}.lede{position:absolute;right:0;bottom:32px;color:var(--muted);font-size:17px;line-height:1.75}.lede b{color:var(--ink);font-weight:500}#guide{padding:22px;background:#1e2a39;border:1px solid #ffffff20;border-radius:16px;margin-bottom:24px;font-size:14px}#guide h2{font:24px Georgia,serif}#guide p{max-width:85ch}#guide[hidden]{display:none}.playarea{border-top:1px solid #ffffff25;padding-top:22px}.levelbar{display:flex;justify-content:space-between;align-items:center}h2{font:28px Georgia,serif;margin:0}.budget{text-align:right}.budget>span{font:26px Georgia,serif}.budget small{display:block;font-size:11px;color:var(--muted);letter-spacing:.06em}.keepers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px}.keeper{background:linear-gradient(140deg,#1e2b39,#14202f);border:1px solid #ffffff18;border-radius:120px 120px 20px 20px;overflow:hidden;padding:15px 12px 18px;text-align:center;transition:border-color .4s,box-shadow .4s}.keeper.aligned{border-color:#e8bc6b90;box-shadow:inset 0 0 45px #e8bc6b0c}.dial{position:relative;width:min(100%,230px);aspect-ratio:1;margin:0 auto}.art{position:absolute;inset:17%;border-radius:50%;background-image:url('keepers.webp');background-size:300% 100%;background-position:0% 50%;filter:brightness(.85);transition:filter .5s}.keeper:nth-child(2) .art{background-position:50% 50%}.keeper:nth-child(3) .art{background-position:100% 50%}.aligned .art{filter:brightness(1.2)}.dot{position:absolute;width:22px;height:22px;margin:-11px;display:flex;align-items:center;justify-content:center;border-radius:50%;font:10px system-ui;background:#77748c25;color:#c8c6d8;border:1px solid #8d8ba850;z-index:1}.dot.warm{color:var(--gold);background:#e8bc6b0b;border-color:#e8bc6b70}.dot.active{background:var(--ink);color:#14202f;border-color:var(--ink);box-shadow:0 0 15px #fff4}.dot.target:after{content:'✦';position:absolute;top:-17px;left:5px;color:var(--gold);font-size:14px}.pointer{position:absolute;left:calc(50% - 1px);top:18%;height:32%;width:2px;background:linear-gradient(var(--gold),transparent);transform-origin:50% 100%;pointer-events:none;opacity:.7}.keeper h3{font:22px Georgia,serif;margin:8px 0 2px}.keeper p{margin:0;font-size:11px;color:var(--muted)}.position{display:inline-block;margin:7px 0 0;color:var(--gold);font:18px Georgia,serif}.legend{display:flex;justify-content:center;align-items:center;gap:7px;color:var(--muted);font-size:11px;margin:17px 0 20px}.legend>span:last-child{margin-left:15px}.gold-dot,.violet-dot{width:7px;height:7px;border-radius:50%;background:var(--gold)}.violet-dot{background:var(--violet);margin-left:12px}.actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.actions button{text-align:left;padding:15px 18px;border-radius:12px}.actions button>span{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600}.amber{background:#e8bc6b14;border-color:#e8bc6b66;color:var(--gold)}.violet{background:#b5a3dc14;border-color:#b5a3dc66;color:var(--violet)}.quiet{background:#ffffff06;color:#c5d7d9}.preview{font-size:11px;display:block;letter-spacing:.04em;margin-top:7px;opacity:.85}kbd{font:9px system-ui;border:1px solid #ffffff30;border-radius:4px;padding:2px 5px;color:var(--muted);font-weight:400}.utility{display:flex;justify-content:center;gap:14px;margin:18px 0 10px}.utility button{padding:7px 12px;border:0;font-size:12px;color:var(--muted)}.message{text-align:center;font-size:13px;min-height:28px;color:var(--gold);padding:0 8px}.next{display:block;margin:10px auto;background:var(--gold);color:var(--bg);border:0}.next[hidden]{display:none}.chapters{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:28px 0}.chapter{padding:8px 12px;border-color:#ffffff20;font-size:12px;min-width:55px}.chapter small{display:block;font-size:9px;min-height:14px;color:var(--gold)}.chapter[aria-current=true]{border-color:var(--gold);background:#e8bc6b12}footer{text-align:center;color:#8495a3;font-size:11px;margin:36px 0 10px}footer p{margin:5px}footer a{text-underline-offset:3px}@media(max-width:700px){main{padding:20px 16px}.intro{padding:32px 0 24px}.lede{position:static;font-size:14px;margin-bottom:0}.keepers{gap:7px}.keeper{padding:12px 3px 15px;border-radius:80px 80px 16px 16px}.dial{width:100%;max-width:180px}.dot{width:17px;height:17px;margin:-8.5px;font-size:8px}.dot.target:after{left:2px;font-size:12px;top:-15px}.keeper h3{font-size:19px}.keeper p{font-size:9px}.position{font-size:15px}.actions{gap:7px}.actions button{padding:12px 10px}.actions button>span{font-size:12px}kbd{display:none}.preview{font-size:10px}.legend{font-size:9px;gap:4px}.legend>span:last-child{margin-left:6px}.violet-dot{margin-left:4px}.utility{gap:0}.levelbar h2{font-size:25px}.budget>span{font-size:22px}.chapters{gap:6px}.chapter{min-width:48px;padding:6px 9px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}} 
