/* Numbered editor: numbers are visual labels, never part of the saved names. */
.textarea-wrap{display:grid;grid-template-columns:34px minmax(0,1fr);border:1px solid #c1ab882e;border-radius:4px;background:#15120f44;overflow:hidden}
.textarea-wrap:focus-within{border-color:var(--purple)}
.textarea-wrap textarea{border:0;background:transparent;border-radius:0;outline:none!important;white-space:pre;overflow-wrap:normal}
.entry-gutter-window{overflow:hidden;position:relative;background:#bea0df06;border-right:1px solid #c1ab8818;user-select:none}
.entry-gutter{position:absolute;inset:0 0 auto;margin:0;padding:11px 0;text-align:center;font-family:Jinxuan,serif;font-size:12px;line-height:1.9;color:var(--purple);white-space:pre}
.option-index[open] .entry-chips{max-height:150px}

/* In-place stage: the wheel and ladder never scroll to the result section. */
body.focus-open{overflow:hidden}
.focus-scene{position:fixed;inset:0;width:100%;height:100svh;max-width:none;max-height:none;margin:0;padding:0;border:0;color:var(--cream);background:radial-gradient(ellipse at 50% 45%,#69478226,transparent 65%);overflow:auto;outline:none}
.focus-scene::backdrop{background:#201b1870;backdrop-filter:blur(22px) brightness(.65) saturate(.72);-webkit-backdrop-filter:blur(22px) brightness(.65) saturate(.72)}
.focus-scene{overflow-x:hidden}
.focus-grain,.chance-ticket:after{position:absolute;inset:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg width='256' height='256' viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='1' seed='8' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23grain)' d='M0 0h256v256H0z'/%3E%3C/svg%3E");background-size:128px 128px;background-repeat:repeat;opacity:.045;z-index:6;mix-blend-mode:soft-light}
.grain{background-size:150px 150px}
.focus-heading{position:absolute;top:6vh;left:20px;right:20px;text-align:center;z-index:5;pointer-events:none}
.focus-heading>span,.focus-footnote{font:8px Arial,sans-serif;letter-spacing:3px;color:#cbb6dd99}
.focus-heading h2{font-size:clamp(21px,3vw,34px);font-weight:400;margin:18px 0 9px}
.focus-heading p{font-size:11px;color:var(--muted);margin:0}
.focus-footnote{position:absolute;bottom:25px;left:0;right:0;text-align:center;font-size:7px;pointer-events:none}
.focus-stage{position:absolute;width:min(740px,94vw);height:min(650px,70svh);left:50%;top:49%;margin:0;translate:-50% -50%;transform-origin:50% 50%;transition:scale 1.1s var(--ease),filter 1.1s,opacity 1.1s,top 1.1s;z-index:2}
.focus-stage .machine{width:100%;height:100%}
.focus-stage .wheel-tilt{width:min(610px,70vw,61svh);height:auto;aspect-ratio:1;scale:1;transform:rotateX(0) rotateY(0);animation:none}
.focus-stage .wheel-tilt{filter:none}
.wheel-plate{position:absolute;inset:0}
.focus-stage .wheel-plate{filter:drop-shadow(5px 12px 0 #624c34) drop-shadow(0 20px 20px #0004)}
.focus-stage .ladder-svg{width:100%;height:100%;max-height:none;transform:none;animation:none;overflow:hidden}
.focus-stage .floating-spark,.focus-stage .side-label,.focus-stage .wheel-shadow{display:none}
.dart{position:absolute;width:17%;height:34%;translate:-50% -100%;transform-origin:50% 100%;opacity:0;z-index:4;pointer-events:none;will-change:transform,opacity}
.dart svg{width:100%;height:100%;overflow:visible}
.dart-impact{position:absolute;width:9%;height:9%;translate:-50% -50%;border:1px solid #e8d3ff;border-radius:50%;box-shadow:0 0 20px #c8a4ed44;opacity:0;pointer-events:none;z-index:3}
.dart-puncture{position:absolute;width:5px;height:5px;translate:-50% -50%;border-radius:50%;background:#251c29;box-shadow:0 0 0 2px #e5c9f744;opacity:0;z-index:3}
.dart-landed .dart-puncture{opacity:1}
.dart-landed .wheel-sector:not(.selected-sector){filter:brightness(.66);transition:filter .25s}
.dart-landed .selected-sector{filter:brightness(1.2);stroke:#ebd5fc;stroke-width:2.2}
.focus-scene[data-mode=wheel].is-revealed .focus-stage{opacity:.22;filter:blur(4px);scale:1.1}
.focus-scene[data-mode=ladder].is-revealed .focus-stage{top:35%;scale:.8}
.focus-result{position:relative;z-index:4;min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:150px 24px 75px;pointer-events:none}
.focus-result>*{pointer-events:auto}
.focus-actions{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:20px}
.focus-actions .primary-button{min-width:230px}
.focus-pool{font-size:11px;color:#d1c1ac;margin:25px 0 0;text-align:center}
.focus-scene[data-mode=ladder] .focus-result{padding-top:48svh;justify-content:flex-start}
.zoomed-ladder .ladder-rail,.zoomed-ladder .ladder-bridge,.zoomed-ladder .start-number,.zoomed-ladder .ladder-label:not(.ladder-winner){opacity:.22;filter:blur(1.4px);transition:opacity 1s,filter 1s}
.zoomed-ladder .ladder-path{stroke-width:4}
.ladder-answer{width:min(620px,94%);text-align:center;padding:23px 35px;border-block:1px solid #bea0df44;background:linear-gradient(90deg,transparent,#2b2032aa,transparent);backdrop-filter:blur(8px)}
.ladder-answer .eyebrow{font-size:8px;margin:0 0 18px}
.ladder-answer-row{display:flex;align-items:center;justify-content:center;gap:24px}
.ladder-answer-number{font:clamp(45px,7vw,78px) Arial,sans-serif;color:var(--purple);font-weight:300;letter-spacing:-4px;line-height:1;flex-shrink:0}
.ladder-answer-row>div{min-width:0;text-align:left;border-left:1px solid #bea0df44;padding-left:24px}
.ladder-answer-row p{font-size:10px;letter-spacing:2px;color:var(--muted);margin:0 0 8px}
.ladder-answer h2{font-size:clamp(24px,4vw,45px);line-height:1.4;margin:0;overflow-wrap:anywhere}
.ladder-route{font-size:10px;color:var(--muted);letter-spacing:1px;margin:22px 0 0}
.ladder-route span{color:var(--purple);margin:0 12px}

/* Perforated paper ticket, inspired by the user's ticket reference. */
.chance-ticket{--ink:#49374f;--paper:#ecdfc9;position:relative;display:grid;grid-template-columns:28px minmax(0,1fr) 135px;width:min(880px,94vw);color:var(--ink);background:linear-gradient(110deg,#f5e8d4,var(--paper) 50%,#d9c8ae);padding:22px 18px 20px 14px;rotate:-1.5deg;filter:drop-shadow(0 20px 20px #0008);mask-image:radial-gradient(circle at 0 50%,transparent 6px,#000 7px),radial-gradient(circle at 100% 50%,transparent 6px,#000 7px);mask-size:100% 22px;mask-composite:intersect}
.chance-ticket:after{content:'';opacity:.09;mix-blend-mode:multiply}
.ticket-serial{writing-mode:vertical-rl;rotate:180deg;font:10px Arial,sans-serif;letter-spacing:1px;align-self:center;justify-self:center}
.ticket-main{border-block:2px solid #49374f99;min-width:0;padding:0 14px}
.ticket-topline{text-align:center;font:9px Arial,sans-serif;letter-spacing:3px;padding:8px 0 7px;border-bottom:1px solid #49374f88}
.ticket-script{font-style:italic;text-align:center;font-size:20px;letter-spacing:.6px;margin:7px 0 12px}
.ticket-answer{display:flex;align-items:center;justify-content:center;gap:15px;padding:0 0 17px;min-height:90px}
.ticket-number{font:bold clamp(30px,5vw,57px) Arial,sans-serif;letter-spacing:-2px;flex-shrink:0}
.ticket-answer h2{font-size:clamp(25px,4.1vw,53px);line-height:1.25;margin:0;letter-spacing:-1px;overflow-wrap:anywhere;min-width:0;text-shadow:1px 1px #fff8}
.ticket-number:after{content:'·';font-weight:400;margin-left:15px}
.ticket-grid{display:grid;grid-template-columns:1fr 1.1fr 1fr;border-block:2px solid #49374f99;padding:8px 0}
.ticket-grid>div{display:flex;flex-direction:column;align-items:center;gap:6px;border-right:1px solid #49374f88;padding:0 7px}
.ticket-grid>div:last-child{border:0}.ticket-grid span{font:6px Arial,sans-serif;letter-spacing:1.4px}
.ticket-grid strong{font-size:20px;font-weight:400;white-space:nowrap}.ticket-grid small{font-size:10px}
.ticket-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;font:9px Arial,sans-serif;letter-spacing:1px;padding:11px 0}
.ticket-bottom span{font-family:Jinxuan,serif;font-size:9px;letter-spacing:0}
.ticket-stub{border-left:2px dashed #49374f77;margin-left:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.ticket-seal{width:56px;height:56px;border:1px solid #49374f77;border-radius:50%;padding:11px;outline:1px solid #49374f44;outline-offset:4px}
.ticket-stub strong{font:bold 40px Arial,sans-serif;letter-spacing:-2px;writing-mode:vertical-rl;rotate:180deg}
.ticket-stub>span:last-child{font-size:8px;letter-spacing:1px}

/* The selected drum ball rolls into a horizontal capsule reveal. */
.capsule-carrier{position:fixed;left:0;top:0;z-index:28;pointer-events:none;will-change:transform}
.capsule{position:relative;width:100%;height:100%;filter:drop-shadow(5px 15px 13px #0005)}
.capsule-half{position:absolute;width:100%;height:50%;border:2px solid #e7d4bc66;will-change:transform}
.capsule-top{top:0;border-radius:100% 100% 0 0 / 200% 200% 0 0;background:radial-gradient(ellipse at 30% 40%,#efe0ce,#b5a0cb 55%,#715680);box-shadow:inset 5px 7px 17px #fff5;transform-origin:25% 85%;z-index:2}
.capsule-bottom{bottom:0;border-radius:0 0 100% 100% / 0 0 200% 200%;background:radial-gradient(ellipse at 30% 5%,#bfa0d9,#8b6ba6 45%,#4b365e);box-shadow:inset -6px -9px 20px #38264255;transform-origin:70% 10%;z-index:2}
.capsule-band{position:absolute;left:0;right:0;top:48%;height:4%;background:#d9c7ac;border-block:1px solid #44314c;z-index:3;transition:opacity .3s}
.capsule-number{position:absolute;inset:0;display:grid;place-items:center;font:bold clamp(21px,4vw,43px) Arial,sans-serif;color:#392a45;text-shadow:0 1px #e6d3ef;z-index:4;transition:opacity .3s}
.capsule-number:before{content:'';position:absolute;width:35%;height:35%;border:1px solid #f3e5dbaa;border-radius:50%;background:#d9c6de99;z-index:-1}
.capsule-core{position:absolute;inset:28%;color:var(--cream);filter:drop-shadow(0 0 20px #c3a1ec);opacity:0;scale:.3;transition:opacity .7s,scale 1s var(--ease)}
.capsule-glow{position:absolute;inset:0;background:radial-gradient(ellipse,#c99eea77,transparent 68%);scale:1.6;opacity:0;transition:opacity 1s}
.capsule.is-open .capsule-number,.capsule.is-open .capsule-band{opacity:0}
.capsule.is-open .capsule-core{opacity:1;scale:1}.capsule.is-open .capsule-glow{opacity:1}
.result-screen.capsule-story .result-main{display:grid;grid-template-columns:240px minmax(0,1fr);column-gap:65px;align-items:center;width:min(920px,100%);opacity:1;transform:none;transition:none;text-align:left}
.capsule-story .result-main>.eyebrow{grid-column:1/-1;margin-bottom:65px}
.capsule-story .result-art{width:240px;height:240px;margin:0;display:grid;place-items:center}
.capsule-dock{width:190px;height:190px;position:relative}
.capsule-story #draw-status{min-width:0;writing-mode:horizontal-tb}
.capsule-story #result-title{font-size:clamp(32px,5vw,64px);letter-spacing:-1px;line-height:1.35}
.capsule-story .result-kicker{font-size:11px;letter-spacing:1px}
.result-option-number{font:10px Arial,sans-serif;letter-spacing:2px;color:var(--purple);margin:0 0 16px}
.capsule-story .result-actions{grid-column:1/-1;margin-top:65px}
.capsule-story .return-hint{grid-column:1/-1;text-align:center}
.capsule-story #draw-status,.capsule-story .result-actions,.capsule-story .return-hint,.capsule-story .result-main>.eyebrow,.capsule-story .result-footer{transition:opacity .8s,translate 1s var(--ease)}
.capsule-story:not(.revealed) #draw-status,.capsule-story:not(.revealed) .result-actions,.capsule-story:not(.revealed) .return-hint,.capsule-story:not(.revealed) .result-main>.eyebrow,.capsule-story:not(.revealed) .result-footer{opacity:0;translate:30px 0;pointer-events:none}

@media(max-width:700px){
 .entry-gutter{font-size:13px}.textarea-wrap{grid-template-columns:31px minmax(0,1fr)}
 .focus-heading{top:6svh}.focus-heading h2{font-size:25px}.focus-heading>span{font-size:6px;letter-spacing:2px}
 .focus-stage{height:min(570px,62svh);width:96vw;top:48%}.focus-stage .wheel-tilt{width:82vw}
 .focus-scene[data-mode=wheel].is-revealed .focus-stage{scale:1}
 .focus-stage .dart{width:14%;height:28%}
 .focus-result{padding:140px 13px 65px}.focus-actions{gap:12px}.focus-actions .primary-button{min-width:215px}
 .chance-ticket{width:100%;grid-template-columns:14px minmax(0,1fr) 55px;padding:15px 9px 14px 6px;mask-size:100% 18px;rotate:-2deg}
 .ticket-main{padding:0 7px}.ticket-serial{font-size:6px}.ticket-topline{font-size:5px;letter-spacing:1px;padding:7px 0}
 .ticket-script{font-size:12px;margin:8px 0}.ticket-answer{gap:6px;min-height:70px;padding-bottom:11px}.ticket-answer h2{font-size:24px;letter-spacing:-.8px}.ticket-number{font-size:29px;letter-spacing:-1px}.ticket-number:after{margin-left:5px}
 .ticket-grid{grid-template-columns:1fr 1fr;padding:7px 0}.ticket-grid>div:last-child{display:none}.ticket-grid>div:nth-child(2){border:0}.ticket-grid span{font-size:5px;letter-spacing:.5px}.ticket-grid strong{font-size:16px}.ticket-grid small{font-size:8px}
 .ticket-bottom{font-size:6px;letter-spacing:.3px;justify-content:center;padding:9px 0}.ticket-bottom span{display:none}.ticket-stub{margin-left:7px;gap:14px}.ticket-seal{width:28px;height:28px;padding:6px;outline-offset:2px}.ticket-stub strong{font-size:26px;letter-spacing:-1px}.ticket-stub>span:last-child{font-size:5px;writing-mode:vertical-rl}
 .focus-pool{font-size:10px;margin-top:23px}.focus-scene[data-mode=ladder].is-revealed .focus-stage{top:32%;scale:.9}.focus-scene[data-mode=ladder] .focus-result{padding-top:44svh}
 .ladder-answer{width:100%;padding:20px 15px}.ladder-answer-row{gap:15px}.ladder-answer-row>div{padding-left:15px}.ladder-answer h2{font-size:29px}.ladder-answer-number{font-size:53px}.ladder-route{font-size:8px;letter-spacing:0}
 .result-screen.capsule-story .result-main{grid-template-columns:115px minmax(0,1fr);column-gap:18px}.capsule-story .result-art{width:115px;height:170px}.capsule-dock{width:106px;height:106px}.capsule-story .result-main>.eyebrow{margin-bottom:55px}.capsule-story #result-title{font-size:31px}.capsule-story .result-detail{font-size:8px;letter-spacing:0}.capsule-story .result-kicker{font-size:9px;letter-spacing:0;line-height:1.8}.capsule-story .result-actions{margin-top:58px}.result-option-number{font-size:9px;margin-bottom:10px}
}
@media(max-height:650px) and (min-width:701px){.focus-heading{top:22px}.focus-heading h2{margin-top:10px;font-size:24px}.focus-result{padding-top:100px;padding-bottom:35px}.chance-ticket{width:min(700px,85vw)}.ticket-script{font-size:16px}.ticket-answer{min-height:65px;padding-bottom:10px}.ticket-answer h2{font-size:36px}.ticket-grid strong{font-size:16px}.ticket-stub strong{font-size:29px}.focus-footnote{display:none}.focus-pool{margin-top:16px}.focus-actions{margin-top:13px}}
