.story-roulette{padding:48px 7%;border-bottom:1px solid var(--line);background:#fae5cb;scroll-margin-top:20px}.roulette-intro{max-width:550px}.roulette-intro h2{font-size:38px}.roulette-intro .eyebrow{margin-bottom:15px}.roulette-intro>p:not(.eyebrow){font-size:16px;line-height:1.7;color:#705246}.roulette-layout{display:grid;grid-template-columns:1fr 280px 1.1fr;gap:30px;align-items:center;max-width:1250px;margin:auto}.roulette-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.roulette-controls .button{margin-top:8px;min-width:185px;justify-content:center}.roulette-controls .text-link{font-size:14px;background:none;border:0;border-bottom:1px solid #8d4035;color:#713f32;margin-top:8px;cursor:pointer}.roulette-controls button:disabled{opacity:.55;cursor:wait}.roulette-controls .button:disabled:hover{background:var(--green)}.wheel-surround{width:238px;height:238px;margin:15px auto;position:relative;padding:9px;border:1px solid #b5794a;border-radius:50%;background:#f7dba8;box-shadow:0 12px 30px #8d40351a}.roulette-wheel{height:100%;width:100%;border-radius:50%;position:relative;background:#efcea0;border:2px solid #fff6e8}.wheel-number{position:absolute;inset:0;display:grid;place-items:center;transform:rotate(var(--angle)) translateY(-79px) rotate(calc(-1*var(--angle)));font:16px Georgia,serif;color:#48291f}.wheel-hub{position:absolute;left:calc(50% - 24px);top:calc(50% - 24px);display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#fff5e8;border:1px solid #b5794a;color:#8d4035;font-size:25px;pointer-events:none}.wheel-pointer{position:absolute;top:-3px;left:calc(50% - 11px);width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-top:23px solid #713f32;z-index:1}.roulette-wheel-details{font-size:12px;line-height:1.6;text-align:center}.roulette-wheel-details summary{cursor:pointer;min-height:44px;padding:12px}.roulette-wheel-details ol{list-style:none;text-align:left;padding:0;margin:8px 0;display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;font-size:11px}.roulette-wheel-details li span{color:#8d4035;font-weight:bold}.roulette-result{display:grid;grid-template-columns:110px 1fr;gap:22px;align-items:center;padding:24px;background:#fff5e8;border:1px solid #dfbca0;border-radius:6px}.roulette-result h3{font-size:27px;line-height:1.1;margin:0 0 10px}.roulette-result .eyebrow{font-size:9px;letter-spacing:1px;line-height:1.7;margin:0 0 12px}.roulette-author{font-size:12px;color:#705246;line-height:1.5}.roulette-result .three-words{font-size:11px;padding:6px 9px}.roulette-result .button{font-size:13px;padding:13px 16px;margin-top:6px;gap:10px}.roulette-result-cover .book{width:100%;padding:6px}.roulette-result-cover .book-border{padding:8px 3px}.roulette-result-cover .cover-title{font-size:15px;margin-top:12px}.roulette-result-cover .cover-series,.roulette-result-cover .cover-author{font-size:5px;letter-spacing:.6px}.roulette-result-cover .story-symbol{font-size:35px}.roulette-cover-note{display:block;font-size:10px;margin-top:14px;color:#705246;text-align:center}.roulette-cover-image{width:100%;height:auto;display:block;box-shadow:4px 7px 12px #472d2725}.roulette-status{font-size:12px;line-height:1.7;min-height:41px;margin:18px 0 0;color:#705246}.roulette-empty{padding:25px;border:1px dashed #c69c78;border-radius:6px;font:italic 25px/1.5 Georgia,serif;color:#9b614a;text-align:center}.story-roulette:has(.roulette-result:not([hidden])) .roulette-empty{display:none}#rouletteOdds{font-size:11px;line-height:1.6;margin:8px 0;color:#705246}
@media(max-width:1100px){.roulette-layout{grid-template-columns:1fr 260px}.roulette-result,.roulette-empty{grid-column:1/-1;max-width:550px;width:100%;margin:5px auto}.roulette-empty{display:none}}
@media(max-width:650px){.story-roulette{padding:36px 6%}.roulette-layout{display:flex;flex-direction:column;gap:15px;align-items:stretch}.roulette-intro h2{font-size:34px}.roulette-intro>p:not(.eyebrow){font-size:15px}.roulette-controls .button{min-width:0}.wheel-surround{margin:8px auto}.roulette-wheel-details{max-width:330px;margin:auto}.roulette-result{padding:20px;grid-template-columns:90px minmax(0,1fr);gap:18px}.roulette-result h3{font-size:25px}.roulette-result .button{padding:12px;font-size:12px}.roulette-status{margin-bottom:0}.roulette-result .three-words{overflow-wrap:break-word}.roulette-empty{display:none}}
@media(prefers-reduced-motion:reduce){.roulette-wheel{transition:none!important}}
/* A printed Victorian parlor game: parchment, bookcloth inks and aged brass. */
.story-roulette{background-color:#f1e4cd;background-image:repeating-linear-gradient(0deg,#71553703 0px,#71553703 1px,transparent 1px,transparent 4px),linear-gradient(100deg,#ead9bc44,transparent 48%,#ead9bc44);border-top:3px double #b49b70;border-bottom:3px double #b49b70}.roulette-intro .eyebrow{color:#705445;font-size:10px;letter-spacing:2px}.roulette-intro h2{font-family:Georgia,'Times New Roman',serif;font-variant:small-caps;letter-spacing:.6px;color:#653d3e;text-shadow:0 1px #fff8e6}.roulette-intro h2:after{content:'❧';display:block;font-size:25px;color:#8c7145;line-height:1;margin-top:13px}.roulette-controls .button{background:#536758;border:3px double #d5c49d;box-shadow:0 0 0 1px #536758;color:#fff5df;font-family:Georgia,serif;font-size:17px;letter-spacing:.3px;border-radius:2px}.roulette-controls .button:hover{background:#405245}.roulette-controls .button:disabled:hover{background:#536758}.roulette-controls .text-link{color:#653d3e;border-color:#9a7c5c}.wheel-surround{--number-radius:-88px;width:264px;height:264px;padding:13px;border:3px double #826b43;background:linear-gradient(135deg,#e5cf97,#b89b60 28%,#f1dfae 52%,#a98b54 78%,#ddc48c);box-shadow:0 0 0 3px #f6ead2,0 0 0 4px #9a8258,0 10px 20px #61463020}.wheel-surround:after{content:'';position:absolute;inset:5px;border-radius:50%;border:1px solid #826b43;pointer-events:none;background:repeating-conic-gradient(from 0deg,#6e573c 0deg .6deg,transparent .6deg 6deg);mask:radial-gradient(transparent 67%,#000 68%);-webkit-mask:radial-gradient(transparent 67%,#000 68%)}.roulette-wheel{border:1px solid #806d4d;box-shadow:inset 0 0 0 3px #f4e5c580,inset 0 0 18px #49351e15}.roulette-wheel:before{content:'';position:absolute;inset:8px;border:1px solid #f9edce9c;border-radius:50%;pointer-events:none}.roulette-wheel:after{content:'';position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from 0deg,#624d2b80 0deg .5deg,transparent .5deg 36deg);pointer-events:none}.wheel-number{transform:rotate(var(--angle)) translateY(var(--number-radius)) rotate(calc(-1*var(--angle)));font:18px Georgia,'Times New Roman',serif;color:#493528;z-index:1}.wheel-number b{display:grid;place-items:center;width:29px;height:29px;border:1px solid #a28759;border-radius:50%;background:#f6e8ca;box-shadow:inset 0 0 0 2px #fff8e55c;font-weight:400;text-shadow:0 1px #fff8e6}.wheel-hub{left:calc(50% - 28px);top:calc(50% - 28px);width:56px;height:56px;border:5px double #9a7c49;outline:1px solid #f6e8c8;outline-offset:2px;background:radial-gradient(circle,#f6e8c9 30%,#d9c28b);color:#794c4c;font-size:29px;box-shadow:0 2px 5px #49351e30;z-index:2}.wheel-pointer{top:-12px;left:calc(50% - 12px);width:24px;height:40px;border:0;clip-path:polygon(25% 0,75% 0,75% 35%,100% 35%,50% 100%,0 35%,25% 35%);background:linear-gradient(90deg,#765b31,#dbc08a 48%,#9a773f 52%,#b89558);filter:drop-shadow(0 2px 1px #49351e66);z-index:3}.roulette-wheel-details summary{font:italic 14px Georgia,serif;color:#653d3e;text-decoration:underline;text-underline-offset:4px}.roulette-wheel-details ol{border-top:1px solid #c4ae85;padding-top:12px;font-size:12px}.roulette-wheel-details li span{color:#653d3e}.roulette-result{background:#fcf2df;border:3px double #b49b70;border-radius:2px;box-shadow:3px 4px 0 #dfceae55}.roulette-result .eyebrow{color:#705445}.roulette-empty{border:3px double #b49b70;border-radius:2px;color:#765343;background:#f9edd83d}.roulette-status,#rouletteOdds{color:#66503e}.roulette-layout{grid-template-columns:1fr 280px 1.1fr}
@media(max-width:1100px){.roulette-layout{grid-template-columns:1fr 280px}}
@media(max-width:650px){.wheel-surround{--number-radius:-80px;width:248px;height:248px;margin:15px auto}.roulette-intro h2{font-size:34px}.roulette-controls .button{font-size:16px}.roulette-layout{display:flex}.roulette-result{padding:18px}}
/* An embossed bronze call plaque: the whole plate operates the brass plunger. */
#spinStory{position:relative;display:block;isolation:isolate;width:156px;max-width:calc(100% - 16px);min-width:0;min-height:0;aspect-ratio:180/224;margin:0;padding:0;border:0;border-radius:3px;background:transparent;color:var(--cream);box-shadow:0 3px 0 #1d281e,0 7px 11px #263d3230;cursor:pointer;touch-action:manipulation}
#spinStory .brass-plaque{display:block;width:100%;height:auto;pointer-events:none}
#spinStory .spin-label,#spinStory .spin-prompt{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#spinStory .spin-plunger{transform-box:fill-box;transform-origin:center;transition:transform .12s ease,filter .12s ease}
#spinStory:hover{background:transparent}
@media(hover:hover){#spinStory:hover:not(:disabled) .spin-plunger{filter:brightness(1.12);transform:scale(1.035)}}
#spinStory:active:not(:disabled) .spin-plunger{transform:translateY(2px) scale(.94);filter:brightness(.9);transition-duration:.05s}
#spinStory:focus-visible{outline:3px solid var(--green);outline-offset:6px}
#spinStory:disabled,#spinStory:disabled:hover{background:transparent;color:var(--cream);opacity:.6;cursor:wait}
@media(prefers-reduced-motion:reduce){#spinStory .spin-plunger{transition:none}#spinStory:hover:not(:disabled) .spin-plunger,#spinStory:active:not(:disabled) .spin-plunger{transform:none}}
@media(forced-colors:active){#spinStory{forced-color-adjust:auto;background:ButtonFace;color:ButtonText;border:2px solid ButtonText;box-shadow:none}#spinStory .brass-plaque{visibility:hidden}#spinStory .spin-label,#spinStory .spin-prompt{position:absolute;left:0;width:100%;height:auto;margin:0;overflow:visible;clip-path:none;color:ButtonText}#spinStory .spin-prompt{top:25%;font:700 16px/1.2 Georgia,serif}#spinStory .spin-label{top:52%;font:bold 32px/1.2 Georgia,serif}#spinStory:disabled{color:GrayText;opacity:1}#spinStory:focus-visible{outline-color:Highlight}}
/* Historical portrait cameos replace visible numbers; sectors and odds are unchanged. */
.wheel-cameo-position{position:absolute;inset:0;display:grid;place-items:center;transform:rotate(var(--angle)) translateY(var(--number-radius)) rotate(calc(-1*var(--angle)));z-index:1;pointer-events:none}.wheel-cameo{position:relative;display:block;width:34px;height:40px;border:2px solid #ad915b;border-radius:50%;overflow:hidden;background:#f6e8ca;box-shadow:0 0 0 1px #f5e7c49c,0 2px 4px #49351e33;pointer-events:auto}.wheel-cameo img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;filter:none}.cameo-initials{position:absolute;inset:0;display:grid;place-items:center;font:11px Georgia,serif;letter-spacing:-.4px;color:#493528}.roulette-wheel-details ol{grid-template-columns:1fr;gap:12px;text-align:left}.roulette-wheel-details li span{font:italic 13px Georgia,serif;color:#653d3e}.roulette-wheel-details li{font-size:12px;line-height:1.5}@media(max-width:650px){.wheel-cameo{width:32px;height:38px}}
.wheel-cameo{transform:rotate(var(--portrait-upright,0deg));transition:transform var(--portrait-duration,0ms) cubic-bezier(.12,.65,.18,1)}@media(prefers-reduced-motion:reduce){.wheel-cameo{transition:none!important}}
.wheel-cameo img{transform:scale(var(--face-scale,1));transform-origin:var(--face-origin,50% 30%)}
/* Author CSS must not override the result's initial native hidden state. */
.roulette-result[hidden]{display:none}
/* A single centered game: introduction, wheel, control, then a real result. */
.story-roulette{padding:40px 6%}
.roulette-layout{display:flex;flex-direction:column;align-items:center;max-width:680px;gap:0;margin:auto}
.roulette-intro{width:100%;max-width:560px;text-align:center;margin:0 0 12px}
.roulette-intro .eyebrow{margin:0 0 9px;line-height:1.5}
.roulette-intro h2{font-size:38px}
.roulette-intro h2:after{display:none}
.roulette-intro>p:not(.eyebrow){max-width:450px;margin:10px auto 0;font-size:15px;line-height:1.6}
.roulette-play{width:100%;max-width:420px;min-width:0;text-align:center}
.wheel-surround{--wheel-size:400px;--number-radius:calc(var(--wheel-size)*-.355);width:var(--wheel-size);height:var(--wheel-size);margin:20px auto 2px}
.wheel-cameo{width:56px;height:64px}
.wheel-hub{width:72px;height:72px;left:calc(50% - 36px);top:calc(50% - 36px);font-size:37px}
.wheel-pointer{width:30px;height:48px;left:calc(50% - 15px);top:-15px}
.roulette-play .roulette-controls{flex-direction:column;align-items:center;gap:0;margin:0}
.roulette-play #spinStory{margin:0}
.roulette-play .roulette-controls .text-link{margin:2px 0 0;min-height:40px;padding:10px 0 8px;font-size:12px;border-bottom:0;text-decoration:underline;text-underline-offset:4px}
.roulette-play .roulette-status{min-height:20px;margin:0 auto 2px;max-width:360px;font-size:12px;line-height:1.5}
.roulette-wheel-details{max-width:400px;margin:0 auto}
.roulette-wheel-details summary{min-height:40px;padding:8px;font-size:12px}
.roulette-result{max-width:580px;width:100%;margin:20px auto 0;text-align:left}
@media(max-width:900px){.roulette-layout{gap:0}}
@media(max-width:650px){.story-roulette{padding:32px 6%}.roulette-intro{margin-bottom:10px}.roulette-intro h2{font-size:34px}.roulette-intro .eyebrow{font-size:9px;letter-spacing:1.5px}.roulette-intro>p:not(.eyebrow){font-size:14px;max-width:340px}.wheel-surround{--wheel-size:min(360px,calc(88vw - 12px));margin:20px auto 2px}.wheel-cameo{width:clamp(36px,12vw,50px);height:clamp(42px,14vw,58px)}.wheel-hub{width:62px;height:62px;left:calc(50% - 31px);top:calc(50% - 31px);font-size:32px}.wheel-pointer{width:26px;height:43px;left:calc(50% - 13px);top:-13px}.roulette-result{margin-top:16px}#spinStory{width:148px}}
