:root{color-scheme:dark;--bg:#201b2c;--ink:#f7ebdc;--muted:#bcb1bd;--gold:#e4c48f;--line:#5f5367;--mint:#a7ded0}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 72% 20%,#3c2e46 0,transparent 55%),var(--bg);color:var(--ink);font-family:ui-sans-serif,system-ui,sans-serif;font-size:14px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;border:1px solid #79667966;background:#ffffff05;color:var(--ink);padding:11px 16px;border-radius:30px;cursor:pointer;transition:background .2s,transform .2s}button:hover{background:#ffffff12}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button:disabled{opacity:.35;cursor:default}header{max-width:1400px;margin:auto;padding:30px 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff10}.wordmark{font-family:Georgia,serif;font-size:34px;text-decoration:none;color:var(--ink);letter-spacing:-1.5px}.wordmark span{display:block;font:9px system-ui;letter-spacing:3px;margin-top:5px}nav{display:flex;gap:8px}nav button{font-size:12px;border-color:transparent}main{max-width:1380px;margin:auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:6%;padding:48px 5% 30px;align-items:center}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold);font-weight:600}h1{font-family:Georgia,serif;font-weight:normal;font-size:clamp(36px,4.2vw,66px);line-height:1.12;letter-spacing:-2px;margin:27px 0}h1 em{color:#d7b6d0;font-weight:normal}.lede{font-size:15px;line-height:1.9;color:var(--muted);margin-bottom:36px}.intro{padding-bottom:60px}#chapters{display:grid;grid-template-columns:repeat(4,46px);gap:11px}#chapters button{padding:0;height:46px;width:46px;border-radius:50%;color:var(--muted);font-family:Georgia,serif;font-size:18px}#chapters button.active{background:var(--gold);border-color:var(--gold);color:#302334}#chapters button.done::after{content:'·';position:absolute;margin:15px 0 0 3px;color:var(--mint)}.journal{font-size:11px;color:var(--muted);margin-top:18px}.cabinet{border:1px solid #b09aaf30;border-radius:24px;background:linear-gradient(130deg,#ffffff04,#ffffff01);padding:25px 25px 20px;box-shadow:0 25px 100px #100c1930}.study-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.study-head .eyebrow{margin:0 0 9px;font-size:9px;letter-spacing:2px}h2{font-family:Georgia,serif;font-size:25px;font-weight:normal;margin:0}.moves{text-align:center;min-width:55px}.moves b{font:28px Georgia;display:block}.moves span{font-size:8px;color:var(--muted);letter-spacing:1px}.note{font-size:11px;line-height:1.5;color:var(--muted);min-height:32px;margin:13px 0 0}.board{position:relative;width:100%;aspect-ratio:600/560;isolation:isolate;background:radial-gradient(circle at 50% 50%,#43324a66 0,#2c24373a 55%,transparent 67%);border-radius:50%;margin:0 auto}.board::before{content:'';position:absolute;inset:9% 5%;border:1px solid #e4c48f22;border-radius:50%;box-shadow:0 0 0 12px #00000007,0 0 0 13px #e4c48f0a}.wires{position:absolute;width:100%;height:100%;inset:0;z-index:-1}.wires polyline{stroke:#c5b3c044;stroke-width:1;stroke-dasharray:3 5}.bubble{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:50%;transition:width .45s,height .45s;pointer-events:none}.bubble img{width:100%;height:100%;position:absolute;border-radius:50%;object-fit:cover;filter:hue-rotate(var(--hue));opacity:.95;box-shadow:0 0 24px #e4c5ed12}.bubble b{z-index:1;font:clamp(21px,2.5vw,33px) Georgia;text-shadow:0 2px 8px #120e1e,0 0 12px #120e1e;background:#201b2c88;border-radius:50%;width:1.4em;text-align:center}.bubble .letter{position:absolute;top:-20px;left:50%;transform:translateX(-50%);font:10px system-ui;letter-spacing:2px;color:#dfcad8}.bubble .goal{position:absolute;bottom:-24px;white-space:nowrap;font:10px system-ui;color:var(--muted);border-radius:20px;padding:3px 7px;background:#281f34}.bubble.matched .goal{color:var(--mint)}.bubble.matched .goal::after{content:' ✓'}.contact{position:absolute;transform:translate(-50%,-50%);padding:5px 8px;font-size:10px;background:#2c2438;border:1px solid #88768799;color:var(--gold);min-height:32px;min-width:48px;box-shadow:0 2px 10px #201628;z-index:3}.contact:disabled{opacity:.42}.contact.hinted{outline:2px solid var(--mint);box-shadow:0 0 23px #a7ded044}.contact:hover{background:#594054;transform:translate(-50%,-50%) scale(1.09)}.dish-label{position:absolute;top:47%;left:50%;transform:translate(-50%,-50%);font-size:8px;letter-spacing:2px;color:#b9a6b077;white-space:nowrap;pointer-events:none}.message{font-size:12px;min-height:38px;text-align:center;line-height:1.6;color:var(--gold);margin-top:4px}.tools{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.tools button{font-size:11px;padding:9px 13px}.tools #next{background:var(--gold);color:#302334;border-color:var(--gold)}[hidden]{display:none!important}.controls{font-size:10px;line-height:1.8;text-align:center;color:#e3d0da;margin:16px 0 0}.controls span{color:var(--muted)}footer{max-width:1260px;margin:0 auto 25px;padding:20px 2%;border-top:1px solid #ffffff0c;color:#a79bab;font-size:10px;display:flex;justify-content:space-between;gap:15px}dialog{background:#302638;color:var(--ink);border:1px solid #ac8da5;border-radius:20px;max-width:500px;width:90%;padding:32px;line-height:1.8;box-shadow:0 20px 90px #0008}dialog::backdrop{background:#130d20bb;backdrop-filter:blur(5px)}dialog h2{font-size:28px;margin:4px 0 18px}dialog p,dialog li{color:#d2c3cf;font-size:13px}dialog a{color:var(--gold)}.close{float:right;padding:3px 11px;font-size:22px}.seal{color:var(--mint)}@media(max-width:850px){header{padding:20px 5%}.wordmark{font-size:28px}main{grid-template-columns:1fr;padding-top:26px;gap:22px;max-width:660px}.intro{padding-bottom:0}h1{font-size:39px;margin:14px 0}h1 br{display:none}.lede{margin:15px 0 20px;font-size:13px}.lede br{display:none}#chapters{grid-template-columns:repeat(8,1fr);gap:6px}#chapters button{width:100%;height:auto;aspect-ratio:1;font-size:16px}.journal{margin:12px 0 0}.cabinet{padding:20px 14px}.bubble b{font-size:25px}footer{padding:20px 5%;flex-direction:column}.note{min-height:25px}.board{margin-top:5px}nav{gap:0}nav button{padding:9px;font-size:10px}.wordmark span{font-size:7px;letter-spacing:2px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
