:root{color-scheme:light;font-family:system-ui,-apple-system,sans-serif;color:#4b493c;background:#f6f0e3;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 5% 5%,#fffefa 0,transparent 65%),repeating-linear-gradient(2deg,#e8c79b18 0 1px,transparent 1px 8px),linear-gradient(115deg,#f5ead5,#ead6b4);min-height:100vh}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:1px solid #d5c4a6;background:linear-gradient(#fffdf5,#f3e7d1);border-radius:16px;min-height:46px;padding:10px 18px;box-shadow:0 3px 4px #71532f15;touch-action:manipulation}button:hover{border-color:#a4834e}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible{outline:3px solid #307b7c;outline-offset:3px}button:disabled{opacity:.45;cursor:default}header{max-width:1280px;margin:auto;padding:28px 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #b3996825}.brand{font:32px Georgia,serif;color:#294d4b;text-decoration:none;letter-spacing:-1.4px}.brand span{color:#8f6a35}.brand small{display:block;font:9px system-ui;letter-spacing:3.5px;margin-top:6px;color:#75664e}nav{display:flex;gap:10px}main{max-width:1150px;margin:40px auto;display:grid;grid-template-columns:minmax(0,1.8fr) minmax(250px,1fr);gap:50px;align-items:center;padding:0 30px}.chapter{text-align:center;margin-bottom:23px}.chapter>span,.eyebrow{font-size:10px;letter-spacing:3px;font-weight:600;color:#806b49}h1{font:36px Georgia,serif;margin:10px 0;color:#344e48}p{font-size:13px;line-height:1.6;color:#796f5e}.chapter p{margin:8px 0}.tray{padding:24px;border:6px solid #fff8e8;border-radius:36px;background:linear-gradient(130deg,#e0ccac,#f4ead3 65%,#e3d0ae);box-shadow:inset 3px 5px 12px #795d3d48,inset -2px -3px 6px white,0 5px 0 #c0a580,0 13px 22px #65452325}#board{position:relative;margin:auto}.marble,.socket{position:absolute;width:var(--d);height:var(--d);border-radius:50%;padding:0;border:0;background:transparent;box-shadow:none}.marble{filter:drop-shadow(0 4px 2px #553e3b40);transition:filter .2s;z-index:2}.marble svg{display:block;width:100%;height:100%}.marble.covered{filter:brightness(.94) drop-shadow(0 1px 1px #553e3b30)}.marble:hover:not(.covered){filter:brightness(1.08) drop-shadow(0 5px 4px #553e3b55)}.socket{background:radial-gradient(circle at 65% 80%,#fff7e4,#dbc7a6 75%,#aa8d68);border:2px solid #f6e8cc;transform:scale(.92);opacity:.5}.marble.cue{outline:3px solid #c79e45;outline-offset:1px}.rack-area{margin:24px auto 0;max-width:490px}#rack{display:flex;padding:8px;gap:4px;border-radius:35px;border:4px solid #fff5de;background:#f3e2c7;box-shadow:inset 0 3px 5px #93734855,0 4px 0 #b99b73,0 7px 14px #624a2520}.slot{flex:1;aspect-ratio:1;background:radial-gradient(circle at 65% 80%,#fffbeb,#e0c7a1 80%,#a58a69);border:1.5px solid #fffae9;border-radius:50%;min-width:0}.slot svg{width:100%;height:100%;display:block}.slot.filled{animation:settle .22s ease-out}#status{height:22px;text-align:center;margin:12px 0 5px;color:#63553e}.controls{display:flex;gap:14px;justify-content:center}.controls button{font-size:24px;min-width:100px;display:flex;align-items:center;gap:10px;justify-content:center}.controls span{font-size:13px}.keepsake{text-align:center;position:relative;padding:35px 23px;border:1px solid #fcf8ee;border-radius:120px 120px 24px 24px;background:linear-gradient(140deg,#fffbedb0,#ebd7b47a);box-shadow:0 10px 24px #86674513}#ornament{max-width:280px;margin:16px auto 0}#ornament>svg{width:100%}h2{font:24px Georgia,serif;color:#3e5145;margin:14px 0}.keepsake p{margin:5px 0}.primary{background:linear-gradient(#4f7c70,#315b53);color:#fff8e9;border-color:#315b53;margin:16px 0;min-width:180px}#completion{border-top:1px solid #bba37955;margin-top:22px;padding-top:8px}#completion button{display:block;margin:12px auto}footer{max-width:1180px;margin:35px auto 0;padding:24px 35px;display:flex;justify-content:space-between;font:italic 16px Georgia;color:#84765e}footer span{font:9px system-ui;letter-spacing:1.5px}footer a{color:inherit}dialog{width:min(700px,92vw);max-height:85vh;border:1px solid #fff8e6;border-radius:25px;background:#f8f0df;padding:30px;color:inherit;box-shadow:0 20px 100px #3e311e55}dialog::backdrop{background:#352f2560;backdrop-filter:blur(5px)}#close{float:right;font-size:24px;min-width:46px;padding:2px 10px}.level-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.level-card{padding:12px;font:16px Georgia;display:flex;flex-direction:column;align-items:center}.level-card svg{width:110px;height:95px}.level-card small{font:11px system-ui;margin-top:7px}.setting{display:flex;justify-content:space-between;align-items:center;min-height:65px;border-bottom:1px solid #d9c9aa}.setting input{width:24px;height:24px;accent-color:#37665d}.recover{outline:3px solid #bd8d31}.reduced *{animation:none!important;transition:none!important}@keyframes settle{from{transform:scale(.8)}to{transform:scale(1)}}
@media(max-width:760px){header{padding:16px 20px}.brand{font-size:25px}nav button{padding:8px 12px}nav span{font-size:12px}main{display:flex;flex-direction:column;gap:18px;padding:0 16px;margin:20px auto;max-width:550px}.play{width:100%;display:contents}.chapter{order:0;margin:0}h1{font-size:27px;margin:7px 0}.chapter p{font-size:12px}.keepsake{order:1;width:100%;padding:7px 15px;border-radius:20px;display:grid;grid-template-columns:90px 1fr;align-items:center;text-align:left;min-height:92px}.eyebrow{display:none}#ornament{width:88px;margin:0;grid-row:1/3}#ornament>svg{display:block;max-height:90px}.keepsake-copy h2{font-size:20px;margin:3px 0}.keepsake-copy p{font-size:11px}#completion{grid-column:1/-1;margin-top:5px;text-align:center}#completion h2{font-size:23px}#completion p{display:none}#completion button{display:inline-block;margin:8px}.tray{order:2;width:100%;padding:12px;border-width:5px;border-radius:29px}.rack-area{order:3;width:100%;margin:0}.controls{order:4;gap:9px;width:100%}.controls button{min-width:0;flex:1;padding:7px 10px}.controls span{font-size:12px}footer{margin:20px auto 0;padding:18px;display:block;text-align:center;font-size:14px}footer span{display:block;margin-top:15px}#rack{padding:6px;gap:3px}#status{font-size:12px;margin:10px 0 0}.chapter>span{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

@media(max-width:760px) and (max-height:740px){header{padding:10px 16px}main{margin:12px auto;gap:12px}.chapter p{margin:4px 0}.keepsake{min-height:72px;grid-template-columns:72px 1fr}#ornament{width:68px}#ornament>svg{max-height:70px}.chapter h1{font-size:24px}.controls button{min-height:44px}}
