.dennisLoader{--mag-hi:#9b6dc4;--mag:#6b3f9e;--mag-mid:#553281;--mag-sh:#3a2159;--mag-deep:#251540;--ink:#160b28;--metal-hi:#d7d2dc;--metal:#9b95a6;--metal-sh:#5f5970;--metal-ink:#322d3e;--red:#e63950;--red-sh:#b3243a;--slotink:#4a2f1c;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:100%;background:radial-gradient(62% 50% at 45% 38%,rgba(120,75,170,.16) 0%,transparent 62%);color:#c9a9f5;font-family:Space Mono,monospace}.dennisLoader .stage{width:min(92vw,460px);animation:dnsBob 6s ease-in-out infinite}@keyframes dnsBob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.dennisLoader svg{width:100%;height:auto;display:block;overflow:visible}.dennisLoader .ink{stroke:var(--ink);stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round}.dennisLoader .metalink{stroke:var(--metal-ink);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}.dennisLoader .ear-l{transform-box:fill-box;transform-origin:bottom right;animation:dnsSwayL 4.4s ease-in-out infinite}.dennisLoader .ear-r{transform-box:fill-box;transform-origin:bottom left;animation:dnsSwayR 3.4s ease-in-out infinite}@keyframes dnsSwayL{0%,to{transform:rotate(-3deg)}50%{transform:rotate(5deg)}}@keyframes dnsSwayR{0%,to{transform:rotate(3deg)}50%{transform:rotate(-5deg)}}.dennisLoader .pupil{transform-box:fill-box;transform-origin:center;animation:dnsLook 7s ease-in-out infinite}.dennisLoader .pupil.r{animation-delay:.06s}@keyframes dnsLook{0%,40%,to{transform:translate(0)}50%,64%{transform:translate(2px,1px)}78%,90%{transform:translate(-2px)}}.dennisLoader .mouth{display:flex;gap:2px;height:100%;width:100%;padding:3px;background:#23121d;border-radius:3px}.dennisLoader .reel{flex:1;position:relative;overflow:hidden;border-radius:2px;background:linear-gradient(180deg,#efe4c8,#d3c096);box-shadow:inset 0 0 0 1px #b59a6e,inset 0 2px 3px #00000059}.dennisLoader .reel:before,.dennisLoader .reel:after{content:"";position:absolute;left:0;right:0;height:30%;z-index:2;pointer-events:none}.dennisLoader .reel:before{top:0;background:linear-gradient(180deg,rgba(60,40,25,.5),transparent)}.dennisLoader .reel:after{bottom:0;background:linear-gradient(0deg,rgba(60,40,25,.5),transparent)}.dennisLoader .strip{display:flex;flex-direction:column;align-items:center;will-change:transform;transform:translateY(var(--reel-end, 0));animation:dnsReel var(--reel-dur,4s) cubic-bezier(.12,.78,.18,1) var(--reel-delay,0s) forwards}.dennisLoader .reel:nth-child(1) .strip{--reel-dur:3s;--reel-delay:0s}.dennisLoader .reel:nth-child(2) .strip{--reel-dur:3.3s;--reel-delay:.1s}.dennisLoader .reel:nth-child(3) .strip{--reel-dur:3.6s;--reel-delay:.2s}.dennisLoader .reel:nth-child(4) .strip{--reel-dur:3.9s;--reel-delay:.3s}.dennisLoader .reel:nth-child(5) .strip{--reel-dur:4.2s;--reel-delay:.4s}@keyframes dnsReel{0%{transform:translateY(0)}to{transform:translateY(var(--reel-end))}}.dennisLoader .strip span{display:flex;align-items:center;justify-content:center;font-family:Space Mono,monospace;font-weight:700;font-size:15px;line-height:20px;height:20px;color:var(--slotink)}.dennisLoader .strip span.hot{color:#cc2b3f}.dennisLoader .cap-txt{margin-top:26px;font-family:DotGothic16,monospace;letter-spacing:3px;font-size:clamp(24px,6.5vw,34px);color:#c9a9f5;text-shadow:0 0 10px rgba(168,85,247,.55),0 0 22px rgba(214,58,223,.3);animation:dnsFlash 1s steps(1,end) infinite}@keyframes dnsFlash{0%,55%{opacity:1}56%,to{opacity:.28}}.dennisLoader .cap-txt .dots span{animation:dnsDot 1.4s infinite;opacity:0}.dennisLoader .cap-txt .dots span:nth-child(2){animation-delay:.2s}.dennisLoader .cap-txt .dots span:nth-child(3){animation-delay:.4s}@keyframes dnsDot{0%,80%,to{opacity:0}40%{opacity:1}}.dennisLoader .arm-l,.dennisLoader .arm-r{transform-box:fill-box}.dennisLoader .arm-l{transform-origin:bottom right}.dennisLoader .arm-r{transform-origin:bottom left}.dennisLoader.celebrating .arm-l{animation:dnsArmL .5s cubic-bezier(.2,.9,.25,1.2) forwards}.dennisLoader.celebrating .arm-r{animation:dnsArmR .5s cubic-bezier(.2,.9,.25,1.2) forwards}@keyframes dnsArmL{0%{transform:rotate(0)}to{transform:rotate(42deg)}}@keyframes dnsArmR{0%{transform:rotate(0)}to{transform:rotate(-42deg)}}.dennisLoader.celebrating .stage{animation:dnsHop .42s ease-in-out 2}@keyframes dnsHop{0%,to{transform:translateY(0)}42%{transform:translateY(-16px)}}.dennisLoader.celebrating .pupil{animation:none;transform:scale(.78)}.dennisLoader .celebrate-heart{opacity:0;transform-box:fill-box;transform-origin:center}.dennisLoader.celebrating .celebrate-heart{animation:dnsHeartPop 1.1s ease-out forwards}@keyframes dnsHeartPop{0%{opacity:0;transform:translateY(8px) scale(.4)}22%{opacity:1;transform:translateY(0) scale(1.18)}42%{transform:translateY(-6px) scale(1)}to{opacity:0;transform:translateY(-52px) scale(.9)}}@media (prefers-reduced-motion:reduce){.dennisLoader *{animation:none!important}}:root{--ink: #0d0715;--ink2: #160c24;--panel: rgba(255, 255, 255, .045);--panel-line: rgba(177, 124, 255, .16);--violet: #b15cff;--violet-d: #7c3aed;--magenta: #e23fd0;--glow: rgba(177, 124, 255, .55);--text: #f4ecff;--dim: #b8a6d6;--faint: #7d6f9c;--accent: #e23fd0;--sans: "Instrument Sans", system-ui, sans-serif;--disp: "Fraunces", Georgia, serif;--mono: "Space Mono", monospace}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{background:var(--ink);color:var(--text);font-family:var(--sans);min-height:100%}body{overflow-x:hidden}.bg-orb{position:fixed;border-radius:50%;filter:blur(80px);opacity:.5;z-index:0;pointer-events:none}.orb1{width:42vw;max-width:520px;aspect-ratio:1;background:#6d28d9;top:-8vw;right:-6vw}.orb2{width:40vw;max-width:480px;aspect-ratio:1;background:#be185d;bottom:-10vw;left:-8vw;opacity:.4}.wrap{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:0 24px calc(90px + env(safe-area-inset-bottom));padding-top:env(safe-area-inset-top)}header{text-align:center;padding:clamp(40px,7vw,84px) 0 clamp(20px,3vw,40px)}.logo{font-family:var(--disp);font-weight:600;font-size:clamp(48px,9vw,108px);line-height:.94;letter-spacing:-.03em;color:var(--text)}.logo em{font-style:italic;color:var(--violet)}.sub{font-family:var(--disp);font-style:italic;font-size:clamp(16px,2.2vw,23px);color:var(--dim);margin-top:clamp(12px,1.5vw,20px)}.sect-h{font-family:var(--disp);font-size:clamp(13px,1.6vw,16px);font-style:italic;color:var(--magenta);letter-spacing:.02em;margin:clamp(28px,4vw,52px) 0 2px}.qgrid{display:grid;grid-template-columns:1fr;gap:0 56px}.q{padding:clamp(18px,2vw,26px) 0;border-bottom:1px solid rgba(255,255,255,.06);opacity:0;transform:translateY(14px);animation:rise .6s forwards}@keyframes rise{to{opacity:1;transform:none}}.q .qt{font-family:var(--disp);font-size:clamp(20px,2.3vw,26px);font-weight:500;line-height:1.22;letter-spacing:-.01em}.time-entry{display:flex;gap:10px;margin-top:16px;align-items:stretch}.te-field{flex:1;display:flex;flex-direction:column-reverse;text-align:center;gap:8px;cursor:text}.te-field input[type=number]{width:100%;background:var(--panel);border:1px solid var(--panel-line);border-radius:14px;color:#fff;font-family:var(--mono);font-size:20px;text-align:center;padding:13px 4px;outline:none;transition:border-color .2s,box-shadow .2s}.te-field input:focus{border-color:var(--violet);box-shadow:0 0 0 3px #b17cff2e}.te-field input::placeholder{color:#5a4d75}.te-unit{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}.te-total{display:none}.slider-wrap{margin-top:22px}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:8px;border-radius:8px;outline:none;cursor:pointer;background:#ffffff14}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;border-radius:50%;background:#fff;border:4px solid var(--violet);box-shadow:0 0 16px var(--glow);transition:transform .12s}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.18)}input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:4px solid var(--violet);box-shadow:0 0 16px var(--glow)}.ticks{display:flex;justify-content:space-between;margin-top:13px;gap:4px}.ticks span{flex:1;font-size:clamp(10.5px,1.1vw,13px);text-align:center;color:var(--faint);line-height:1.25;transition:color .2s,font-weight .2s}.ticks span.on{color:var(--text);font-weight:600}.ticks span:first-child{text-align:left}.ticks span:last-child{text-align:right}.pills{display:flex;gap:10px;margin-top:18px}.pills button{flex:1;background:var(--panel);border:1px solid var(--panel-line);border-radius:14px;color:var(--dim);font-family:var(--sans);font-size:15px;font-weight:500;padding:14px 6px;cursor:pointer;transition:all .18s}.pills button.on{background:linear-gradient(135deg,var(--violet-d),var(--magenta));color:#fff;border-color:transparent;box-shadow:0 6px 22px #b17cff66}.submit-row{margin:clamp(34px,5vw,56px) 0 0;text-align:center}.submit-btn{font-family:var(--sans);font-weight:600;font-size:clamp(16px,2vw,19px);color:#fff;background:linear-gradient(135deg,var(--violet-d),var(--magenta));border:none;border-radius:999px;padding:16px clamp(28px,5vw,44px);cursor:pointer;box-shadow:0 14px 34px -12px #b17cffb3;transition:transform .12s,box-shadow .12s}.submit-btn:hover{transform:translateY(-1px);box-shadow:0 18px 40px -12px #b17cffcc}.start-over{font-family:var(--sans);font-weight:500;font-size:15px;color:var(--dim);background:var(--panel);border:1px solid var(--panel-line);border-radius:999px;padding:12px 28px;cursor:pointer;transition:border-color .15s,color .15s}.start-over:hover{border-color:var(--violet);color:var(--text)}.calc-wrap{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}.calc-spin{color:var(--violet);filter:drop-shadow(0 0 22px var(--glow));animation:spin 1.1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.calc-label{font-family:var(--disp);font-style:italic;font-size:clamp(20px,3vw,28px);color:var(--dim);letter-spacing:.01em}.results-num{font-family:var(--mono);font-weight:700;text-align:center;color:#fff;font-size:clamp(38px,8vw,76px);line-height:1.05;text-shadow:0 0 30px var(--glow);margin:clamp(8px,2vw,24px) 0 clamp(28px,4vw,44px)}.recap{max-width:640px;margin:0 auto}.recap-sec{margin-bottom:10px}.recap-row{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.06)}.recap-q{font-family:var(--disp);font-size:clamp(15px,1.8vw,18px);color:var(--text);line-height:1.3}.recap-a{font-family:var(--mono);font-size:clamp(13px,1.5vw,15px);color:var(--violet);text-align:right;white-space:nowrap;flex:none}.foot{text-align:center;font-size:12px;color:var(--faint);margin-top:28px;line-height:1.7}@media (prefers-reduced-motion: reduce){.q{animation:none;opacity:1;transform:none}input[type=range]::-webkit-slider-thumb{transition:none}.calc-spin{animation:none}}.panel{background:var(--panel);border:1px solid var(--panel-line);border-radius:18px;padding:22px;color:var(--text)}.panel-header{font-family:var(--disp);font-style:italic;margin-bottom:14px;color:var(--text)}.panel input{background:#ffffff0d;border:1px solid var(--panel-line);border-radius:12px;color:#fff;font-family:var(--sans);padding:11px 12px;outline:none}.panel input:focus{border-color:var(--violet);box-shadow:0 0 0 3px #b17cff2e}.panel button{background:linear-gradient(135deg,var(--violet-d),var(--magenta));color:#fff;border:none;border-radius:12px;padding:11px 12px;font-family:var(--sans);font-weight:600;cursor:pointer;margin-top:8px}.stop-control{margin-top:22px;padding:0 11px}.stop-track{position:relative;height:26px}.stop-rail-line{position:absolute;top:50%;left:0;right:0;height:8px;transform:translateY(-50%);background:#ffffff14;border-radius:8px;pointer-events:none}.stop-dot{position:absolute;top:50%;transform:translate(-50%,-50%);width:13px;height:13px;border-radius:50%;padding:0;border:none;cursor:pointer;background:#ffffff2e;transition:background .15s,width .12s,height .12s}.stop-dot:hover:not(.on){background:#ffffff6b}.stop-dot.on{width:22px;height:22px;background:#fff;border:4px solid var(--violet);box-shadow:0 0 16px var(--glow)}.stop-labels{display:flex;margin-top:13px}.stop-label{flex:1;background:none;border:none;padding:2px 4px;cursor:pointer;font-family:var(--sans);font-size:clamp(10.5px,1.1vw,13px);line-height:1.25;letter-spacing:normal;text-transform:none;text-align:center;color:var(--faint);transition:color .2s,font-weight .2s}.stop-label.on{color:var(--text);font-weight:600}.stop-label:first-child{flex:.5;text-align:left}.stop-label:last-child{flex:.5;text-align:right}.scoreValue{font-family:DotGothic16,monospace;font-size:clamp(40px,11vw,64px);line-height:1.05;color:#ff8fc7;text-align:center;text-shadow:0 0 14px rgba(255,143,199,.35);margin:0 auto 10px}.scoreTier{font-family:DotGothic16,monospace;font-size:18px;letter-spacing:1px;color:#c9a9f5;text-align:center;margin:0 auto 40px}.stop-dot.rest{width:16px;height:16px;background:#ffffff38;border:2px solid var(--panel-line);box-shadow:none}.stop-dot.rest:hover{background:#fff6}
