:root{color-scheme:dark;--ink:#f7ecd0;--muted:#b1c3bd;--gold:#f5bd70;--deep:#102b2d}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 40%,#234644,transparent 65%),#0d2225;color:var(--ink);font:15px/1.55 system-ui,sans-serif}main{max-width:1320px;margin:auto;padding:28px 44px}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #769b8033;padding-bottom:20px}.brand{font:24px Georgia,serif;letter-spacing:5px;color:var(--ink);text-decoration:none}.brand span{display:block;font:9px system-ui;letter-spacing:3.5px;color:var(--gold);margin-top:5px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--gold)}button{font:inherit;cursor:pointer;border:1px solid #769b8055;border-radius:8px;color:var(--ink);background:#183438;padding:10px 16px;transition:background .15s,transform .15s}button:hover{background-color:#315455}button:focus-visible,summary:focus-visible{outline:3px solid #f4d394;outline-offset:3px}button:disabled{cursor:default;opacity:.4}h1,h2,h3{font-family:Georgia,serif;font-weight:normal}h1{font-size:clamp(40px,5vw,64px);line-height:1;margin:14px 0}h2{font-size:32px;line-height:1.15;margin:10px 0 18px}h3{font-size:24px}p{color:var(--muted)}.intro{text-align:center;padding:14px 0 8px}.intro>p:last-child{font-size:15px}#levels{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:8px 0 24px}#levels button{width:40px;height:40px;padding:0;border-radius:50%;position:relative;font-size:13px}#levels button.active{color:#182f2f;background:var(--gold);border-color:var(--gold)}#levels button.done:after{content:'•';position:absolute;bottom:-11px;left:17px;color:#b9e3be}.workspace{display:grid;grid-template-columns:230px minmax(300px,450px) 210px;justify-content:space-between;gap:32px}.brief>p{font-size:14px}.rules{margin:24px 0}.rules>div{display:flex;gap:11px;align-items:center;margin:16px 0}.rules i{display:block;width:44px;height:44px;flex-shrink:0;border-radius:8px}.rules p{margin:0;font-size:11px}.rules b{display:block;font-size:13px;color:var(--ink)}.rules span{display:block}.tile{background-image:url('tiles.webp');background-size:200% 200%;background-position:100% 100%}.tile.spirit{background-position:0 0}.tile.moon{background-position:100% 0}.tile.coal{background-position:0 100%}.ceramic{background:repeating-linear-gradient(45deg,#6c766e 0px,#6c766e 2px,#4c5b57 2px,#4c5b57 8px);box-shadow:inset 0 0 8px #14201d;border:2px solid #8e9c8a88}.tray-top{display:flex;justify-content:space-between;font-size:12px;color:var(--gold);margin:0 4px 12px}#board{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;padding:13px;border:1px solid #b49b6d77;border-radius:16px;background:#0b2022;box-shadow:0 20px 50px #0005,inset 0 0 0 5px #23413e}.cell{aspect-ratio:1;position:relative;border:1px solid #7ca88a33;border-radius:7px;padding:0;min-width:0;overflow:hidden;isolation:isolate;transition:filter .2s}.cell:before{content:'';position:absolute;inset:0;background:rgba(255,111,17,var(--heat,0));mix-blend-mode:screen;z-index:1;pointer-events:none}.cell.socket:not(.coal):after{content:'+';position:absolute;inset:21%;border:1px dashed #e7c183b0;border-radius:50%;color:#f6ddb4;background:#152c2b99;display:grid;place-items:center;font-size:24px}.cell.socket:hover{filter:brightness(1.4);transform:none}.cell .temp{position:absolute;right:4px;bottom:3px;background:#0b2429e8;color:#fff;padding:0 5px;border-radius:4px;font-size:11px;z-index:3}.cell.good{box-shadow:inset 0 0 0 3px #a4efbd}.cell.bad{box-shadow:inset 0 0 0 3px #ff9c79}.cell.hinted{outline:3px solid #fff2ac;outline-offset:-4px}.cell .check{position:absolute;left:4px;top:1px;color:#fff;font-size:15px;text-shadow:0 1px 4px #000;z-index:3}.legend{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px;margin:13px auto 22px;width:70%}.legend div{flex:1;height:3px;background:linear-gradient(90deg,#557c9b,#f2b64f);border-radius:4px}.actions{display:flex;gap:7px}.actions button{font-size:12px;padding:11px 12px}.primary{background:var(--gold);color:#24302b;border-color:var(--gold);font-weight:650}.primary:hover{background:#ffda9b}.actions .primary{flex:1;display:flex;justify-content:space-between}.table #status{font-size:13px;min-height:44px;margin:14px 2px 10px}.journal{text-align:center;border-left:1px solid #769b8033;padding-left:24px}.hero-seal{width:160px;aspect-ratio:1;border-radius:50%;margin:24px auto;box-shadow:0 0 40px #e2a34b18}.journal h3{margin:20px 0 10px}.journal p{font-size:13px}.note{font-family:Georgia;font-style:italic;margin-top:30px!important}#readings{font-size:12px;text-align:left}#readings div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #769b8022}.pass{color:#b8e4b9}.fail{color:#ffb497}summary{cursor:pointer;color:var(--gold);font-size:12px}details p{font-size:12px}footer{margin-top:44px;border-top:1px solid #769b8033;padding:20px 0;display:flex;justify-content:space-between;gap:30px;font-size:10px;color:var(--muted)}footer details{max-width:440px}a{color:var(--gold)}[hidden]{display:none!important}@media(max-width:1050px){main{padding:24px}.workspace{grid-template-columns:200px minmax(300px,510px);justify-content:center;gap:24px}.journal{display:none}}@media(max-width:650px){main{padding:20px 14px}.intro{padding:16px 0 0}h1{font-size:42px}.intro>p:last-child{font-size:13px}#levels{margin:16px 0 22px;gap:6px}#levels button{width:33px;height:33px}#levels button.done:after{left:13px}.workspace{display:flex;flex-direction:column;gap:12px}.brief h2{font-size:28px;margin:3px 0 8px}.brief .eyebrow{margin:0}.brief>p{margin:8px 0}.rules{display:grid;grid-template-columns:1fr 1fr;margin:10px 0;gap:6px}.rules>div{margin:0;gap:7px}.rules i{width:33px;height:33px}.rules b{font-size:11px}.rules span{font-size:10px}.brief details{margin-bottom:5px}.table{max-width:510px;width:100%;margin:auto}.cell .temp{font-size:10px}.actions button{padding:11px 9px}footer{display:block;margin-top:24px}footer details{margin-top:12px}.brand{font-size:20px}#sound{font-size:11px}#board{padding:9px;gap:4px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
