:root{color-scheme:dark;--gold:#cba65b;--light:#f8e6b9;--ink:#0b0813;--purple:#8d6cc1}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;color:var(--light);background:radial-gradient(ellipse at 50% 15%,#302038,#100c19 60%,#08070d);font-family:Georgia,serif;line-height:1.5;min-height:100vh}#starfield{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1}header{max-width:1120px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:18px 20px;gap:12px;font:10px Arial;letter-spacing:.12em}header a{color:var(--light);text-decoration:none}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f2cf73;outline-offset:4px}header button{color:#c6b4d9;border:1px solid #695772;background:transparent;padding:9px 12px;font:10px Arial;letter-spacing:.1em}.machine-shell{width:min(1080px,calc(100% - 32px));margin:0 auto 36px;border:1px solid #8b6939;background:linear-gradient(135deg,#241525ee,#100d17f5);padding:14px;box-shadow:0 20px 80px #0008,inset 0 0 0 5px #171016}.marquee{text-align:center;padding:24px 8px 26px;border:1px solid #70502e;position:relative;background:radial-gradient(ellipse at center,#49263855,transparent 75%)}.marquee:before,.marquee:after{content:'✧';position:absolute;top:45%;color:var(--gold);font-size:28px}.marquee:before{left:6%}.marquee:after{right:6%}.marquee small,.marquee p{font:9px Arial;letter-spacing:.25em;color:#cfb891}.marquee h1{font-size:clamp(26px,4.5vw,48px);font-weight:normal;line-height:1.15;letter-spacing:.06em;margin:10px 0;color:#ffe4a0;text-shadow:0 2px 10px #000}.marquee h1 span{display:block;font-size:1.22em}.marquee p{margin:14px 0 0}.machine-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:22px;padding:22px 6px 12px;align-items:start}.seer{border:1px solid #765732;background:#08060b}.portrait{position:relative;overflow:hidden}.portrait img{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:contain}.crystal{position:absolute;left:50%;top:66%;width:23%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,#d8caff44,transparent 68%);box-shadow:0 0 25px #9d75db66;mix-blend-mode:screen;pointer-events:none;animation:glow 4s ease-in-out infinite}.speech{padding:19px 18px;min-height:90px;text-align:center;color:#eed8ab;font-size:17px;background:linear-gradient(#201220,#100c15);border-top:1px solid #715233}.console{min-width:0;padding:14px 18px 18px;border:1px solid #6c5032;background:linear-gradient(145deg,#221623,#100d16);position:relative}.console-head{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #57402e;font:10px monospace;letter-spacing:.12em}.console-head b{color:#beccaf}.sky-instrument{display:flex;align-items:center;gap:16px;padding:22px 0;border-bottom:1px solid #57402e}.sky-instrument small{font:8px Arial;letter-spacing:.13em;color:#bea98f}.sky-instrument time{display:block;font-size:15px;margin-top:5px}.sky-instrument p{margin:3px 0;font-size:12px;color:#c2aed5}.sky-instrument p span{color:#a48f79}.orbit{flex:none;border:1px solid #8e7041;outline:1px solid #614d32;outline-offset:5px;border-radius:50%;height:58px;width:58px;display:grid;place-items:center;background:radial-gradient(circle,#67487c55,transparent);position:relative}.orbit:before,.orbit:after{content:'';position:absolute;border:1px solid #8e704166;inset:8px;border-radius:50%;transform:rotate(45deg) scaleX(.45)}.orbit:after{transform:rotate(-45deg) scaleX(.45)}.orbit span{color:#f4d792;font-size:25px}.instruction{font-size:20px;text-align:center;color:#f3d8a3;margin:25px 0 20px}.coin-area{display:flex;justify-content:center;gap:34px;align-items:center;margin:36px 0}.coin{width:78px;height:78px;border:7px ridge #e8c477;border-radius:50%;background:radial-gradient(circle at 30% 25%,#ffe4a0,#a47429);color:#4e2e16;font:32px Georgia;box-shadow:0 5px 20px #0008;touch-action:none}.coin.held{position:fixed;z-index:30;pointer-events:none;transform:translate(-50%,-50%)}.slot-zone{background:#120d16;color:#e9cf97;border:1px solid #70502e;padding:20px 12px}.slot-zone i{display:block;width:105px;height:13px;margin:0 auto 12px;border:4px inset #9a8258;background:#000}.slot-zone span{font:9px Arial;letter-spacing:.15em}.slot-zone.ready{outline:2px solid #d5b36d;box-shadow:0 0 20px #ae7eb966}.help{font-size:12px;color:#bca896;text-align:center}label{display:block;font:9px Arial;letter-spacing:.12em;color:#d4bd9c;margin:18px 0 7px}input,select{display:block;width:100%;min-height:46px;padding:11px 10px;border:1px solid #735735;border-radius:2px;background:#100d17;color:#f5e3bc;font:15px Georgia}select{font-size:14px;padding-right:22px}.reveal-button{width:100%;margin-top:25px;padding:16px 8px;border:1px solid #c6a15d;background:linear-gradient(135deg,#66412e,#332031);color:#ffe7ae;font:11px Arial;letter-spacing:.14em}.reveal-button span{padding-left:8px}.console-note{font-size:11px;text-align:center;color:#af9d90;border-top:1px solid #57402e;margin:24px 0 0;padding-top:16px}.mechanism{text-align:center;padding:26px 0}.constellation{display:flex;justify-content:center;gap:24px;align-items:center;color:#d1b4ee;font-size:30px;min-height:130px}.constellation span{font-size:70px;animation:glow 2s infinite}.mechanism strong{font:10px Arial;letter-spacing:.15em}.meter{height:3px;background:#4d3b51;margin:24px 0;overflow:hidden}.meter span{display:block;height:100%;width:35%;background:#e4c896;animation:meter 2s ease-in-out infinite}.quiet-button{display:block;margin:18px auto;padding:10px 12px;background:transparent;border:1px solid #715e66;color:#d6c5d3;font:12px Georgia}.ticket{display:block;width:100%;margin:32px 0 12px;padding:32px 14px;background:linear-gradient(135deg,#fff0c3,#d9ba7c);color:#392314;border:1px solid #ffeac4;box-shadow:0 8px 30px #0007;animation:ticketOut .6s both}.ticket span,.ticket b,.ticket small{display:block}.ticket span{font:8px Arial;letter-spacing:.2em}.ticket b{font:20px Georgia;margin:12px 0}.ticket small{font-size:12px}footer{text-align:center;padding:16px;color:#c3ac92;font-size:13px}footer small{display:block;max-width:600px;margin:8px auto 0;font:10px/1.5 Arial;color:#93848f}dialog{width:min(700px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid #b99a62;background:#f5e7c4;color:#382818;box-shadow:0 20px 70px #0009}dialog::backdrop{background:#06030ed9;backdrop-filter:blur(5px)}.fortune-paper{position:relative;padding:38px 40px 28px;background:radial-gradient(ellipse at top,#fff4d9,#eddbb1)}.close-fortune{position:absolute;top:8px;right:10px;width:40px;height:40px;color:#4f3526;font:26px Georgia;background:none;border:0}.paper-kicker,.paper-footnote{text-align:center;font:9px/1.6 Arial;letter-spacing:.14em;color:#786046}.fortune-paper h2{text-align:center;font-size:32px;font-weight:normal;margin:12px 0 4px}.fortune-paper #paper-subtitle{text-align:center;color:#826343;font-size:12px;margin:8px 0 25px}.paper-symbol{text-align:center;padding:18px 8px;border-top:1px solid #b79a6a;border-bottom:1px solid #b79a6a;font:22px Georgia;color:#734834}.paper-scene{font:italic 20px/1.6 Georgia}.fortune-paper h3{font:10px Arial;letter-spacing:.16em;color:#855e3c;margin:26px 0 8px}.fortune-paper #paper-text p{font-size:16px;line-height:1.7}.fortune-paper #paper-text .paper-scene{font-size:20px}.paper-sky{padding:16px;background:#d9c39744}.paper-numbers{text-align:center;font-size:22px;letter-spacing:.15em}.ticket-code{font:10px monospace;letter-spacing:.12em;padding:18px 0;border-top:1px dashed #a28c66}.paper-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:20px}.paper-actions button{background:#432737;color:#ffe8b4;padding:12px;border:0;font:10px Arial;letter-spacing:.08em}.reading .crystal{background:radial-gradient(circle,#c5ddffaa,transparent 70%);box-shadow:0 0 36px #b9a3ff99;animation:glow 1.5s infinite}.reading .orbit span{animation:spin 8s linear infinite}@keyframes glow{50%{opacity:.6}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes meter{50%{transform:translateX(190%)}}@keyframes ticketOut{from{opacity:0;transform:translateY(-12px)}}
@media(max-width:700px){header{padding:12px 14px;font-size:9px}.machine-shell{width:calc(100% - 20px);padding:9px}.marquee{padding:19px 2px}.marquee:before,.marquee:after{display:none}.marquee small,.marquee p{font-size:8px;letter-spacing:.13em}.marquee h1{font-size:28px}.machine-stage{grid-template-columns:1fr;gap:14px;padding:14px 0 0}.seer{max-width:440px;width:100%;margin:auto}.console{padding:12px 16px}.speech{min-height:76px;font-size:16px}.fortune-paper{padding:34px 20px 24px}.sky-instrument time{font-size:14px}.paper-actions button{min-height:44px}.fortune-paper #paper-text .paper-scene{font-size:18px}}
@media(min-width:701px) and (min-height:560px){
 header{height:42px;padding:6px 20px;max-width:1040px}
 header button{padding:7px 11px}
 .machine-shell{width:min(1000px,calc(100% - 32px));height:calc(100dvh - 54px);max-height:850px;margin:0 auto 12px;padding:10px;display:grid;grid-template-rows:76px minmax(0,1fr) 40px}
 .marquee{padding:6px 36px}
 .marquee small{display:block;font-size:8px;line-height:1;letter-spacing:.2em}
 .marquee h1{font-size:clamp(24px,3vw,30px);line-height:1.1;margin:3px 0;letter-spacing:.04em}
 .marquee h1 span{display:inline;font-size:1em}
 .marquee p{font-size:8px;margin:3px 0;letter-spacing:.16em}
 .marquee:before,.marquee:after{top:22%;font-size:24px}
 .machine-stage{grid-template-columns:minmax(0,.85fr) minmax(330px,1fr);gap:16px;padding:12px 2px 8px;min-height:0;align-items:stretch}
 .seer{min-height:0;display:grid;grid-template-rows:minmax(0,1fr) 54px;overflow:hidden}
 .portrait{height:100%;aspect-ratio:2/3;max-width:100%;justify-self:center}
 .portrait img{width:100%;height:100%;object-fit:contain}
 .speech{min-height:0;padding:8px 12px;font-size:14px;display:grid;place-items:center;line-height:1.35}
 .console{min-height:0;padding:9px 14px;display:flex;flex-direction:column}
 .console-head{padding:6px 0;font-size:9px}
 .sky-instrument{padding:11px 0;gap:14px}
 .orbit{height:40px;width:40px;outline-offset:3px}
 .orbit span{font-size:22px}
 .sky-instrument time{font-size:13px;margin-top:3px}
 .sky-instrument p{font-size:11px;margin:2px 0}
 .instruction{font-size:17px;margin:12px 0 10px}
 .coin-step{margin:auto 0}
 .coin-area{margin:25px 0}
 .console form{margin:auto 0}
 .console label{font-size:10px;line-height:1.1;margin:9px 0 4px}
 .console input,.console select{min-height:36px;padding:7px 9px;font-size:13px}
 .reveal-button{margin-top:13px;padding:12px 8px;font-size:10px}
 .console-note{margin:12px 0 0;padding-top:9px;font-size:10px;line-height:1.35}
 .mechanism{margin:auto 0;padding:16px 0}
 .ticket{margin:auto 0;padding:25px 12px}
 .quiet-button{margin:12px auto;padding:8px 12px}
 footer{padding:5px 4px;font-size:11px;line-height:1.3}
 footer br{display:none}
 footer small{font-size:8px;margin:3px auto 0;line-height:1.3;max-width:none}
}
@media(min-width:701px) and (min-height:560px) and (max-height:699px){
 .machine-shell{grid-template-rows:64px minmax(0,1fr) 34px;padding:8px}
 .marquee{padding:5px 32px}.marquee h1{font-size:24px;margin:2px 0}
 .machine-stage{padding-top:8px;gap:12px}
 .sky-instrument{padding:7px 0}.sky-instrument small{font-size:7px}
 .console label{margin:6px 0 3px}.console input,.console select{min-height:32px;padding:5px 8px}
 .console .instruction{margin:8px 0;font-size:15px}.reveal-button{margin-top:10px;padding:10px 8px}
 .console-note{margin-top:8px;padding-top:7px;font-size:9px}
}
@media(min-width:701px) and (min-height:560px) and (max-height:619px){
 .machine-shell{grid-template-rows:54px minmax(0,1fr) 28px}
 .marquee{padding:3px 28px}.marquee h1{font-size:22px;margin:2px 0}
 .sky-instrument{padding:4px 0}.sky-instrument small{display:none}
 .orbit{height:32px;width:32px}.sky-instrument time{font-size:12px}
 .console-note{display:none}
 footer{font-size:10px;padding:2px 4px}footer small{font-size:7px;margin-top:2px}
}
body:has(dialog[open]){overflow:hidden}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}
@media print{html,body{background:#fff!important;color:#000}body>*{display:none!important}dialog[open]{display:block!important;position:static;margin:0;width:100%;max-height:none;overflow:visible;border:0;box-shadow:none}.fortune-paper{padding:15px;background:#fff}.close-fortune,.paper-actions{display:none!important}.fortune-paper h3{break-after:avoid}.paper-symbol,.paper-sky,.ticket-code{break-inside:avoid}dialog::backdrop{display:none}}
