:root{color-scheme:dark;font-family:Segoe UI,system-ui,-apple-system,sans-serif;--outer-padding: clamp(18px, 5vw, 32px);--app-padding: clamp(24px, 4vw, 48px);--panel-gap: clamp(24px, 5vw, 48px);--color-bg-body: #050607;--color-bg-app-gradient-start: rgba(18, 20, 24, .95);--color-bg-app-gradient-end: rgba(9, 10, 12, .9);--color-bg-panel-gradient-start: rgba(22, 23, 27, .9);--color-bg-panel-gradient-end: rgba(9, 10, 12, .85);--color-bg-card-gradient-start: rgba(18, 20, 26, .92);--color-bg-card-gradient-end: rgba(9, 10, 12, .92);--color-bg-input: rgba(7, 8, 10, .8);--color-bg-overlay: rgba(3, 4, 6, .78);--color-bg-step-row-start: rgba(18, 19, 22, .95);--color-bg-step-row-end: rgba(31, 33, 38, .95);--color-bg-step-completed: rgba(27, 40, 32, .72);--color-bg-button-gradient-start: rgba(69, 73, 77, .52);--color-bg-button-gradient-end: rgba(26, 28, 31, .9);--color-bg-donate: rgba(10, 12, 15, .92);--color-bg-demo-banner: rgba(11, 12, 15, .85);--color-body-gradient-1: rgba(201, 125, 45, .18);--color-body-gradient-2: rgba(66, 108, 179, .16);--color-body-gradient-3-start: rgba(44, 61, 72, .55);--color-body-gradient-3-end: rgba(5, 6, 7, .95);--color-dial-shadow: rgba(231, 195, 115, .2);--color-dial-face-gradient-start: #202328;--color-dial-face-gradient-end: #0b0c10;--color-dial-face-overlay: rgba(248, 210, 120, .08);--color-dial-border: rgba(30, 32, 36, .95);--color-dial-glass: rgba(255, 255, 255, .08);--color-dial-inner-gradient-start: rgba(18, 21, 25, .9);--color-dial-inner-gradient-end: rgba(45, 52, 60, .7);--color-dial-inner-glow: rgba(229, 187, 94, .08);--color-dial-scale-minor: rgba(211, 168, 92, .12);--color-dial-scale-major: rgba(244, 205, 130, .2);--color-dial-marker: rgba(247, 229, 188, .8);--color-dial-needle-start: rgba(165, 58, 35, .6);--color-dial-needle-end: rgba(255, 114, 67, .95);--color-dial-needle-glow: rgba(255, 132, 82, .35);--color-dial-cap-light: #f2d7a6;--color-dial-cap-mid: #7d5a32;--color-dial-cap-dark: #1b130c;--color-dial-cap-border: rgba(133, 92, 44, .5);--color-dial-readout-bg: rgba(12, 14, 15, .7);--color-text-primary: #f4f3ee;--color-text-heading: #f8f5e6;--color-text-heading-alt: #f6dbb1;--color-text-secondary: #b6b0a1;--color-text-tertiary: #b8b2a4;--color-text-muted: #cfc4b3;--color-text-label: #e8dfc9;--color-text-input: #f4e8c8;--color-text-countdown: #f2dcb8;--color-text-step-current: #d2c6ae;--color-text-hint: #c8c0af;--color-text-button: #f1e8d0;--color-text-footer: #c2b7a5;--color-text-step-completed: #cde6cf;--color-accent-primary: #ffd88b;--color-accent-primary-hover: #ffe9c1;--color-accent-gold: #f4dca1;--color-accent-gold-alt: #f0d8a8;--color-accent-gold-line: rgba(240, 216, 168, .4);--color-accent-button-start: rgba(213, 178, 103, .85);--color-accent-button-end: rgba(146, 106, 44, .92);--color-accent-donate-start: rgba(213, 178, 103, .85);--color-accent-donate-end: rgba(146, 106, 44, .92);--color-accent-donate-text: #0f0e0a;--color-accent-pill-text: #f0e0c0;--color-state-active-border: rgba(244, 205, 130, .32);--color-state-active-glow: rgba(255, 164, 76, .25);--color-state-active-shadow: rgba(133, 97, 34, .42);--color-state-completed-border: rgba(132, 174, 132, .28);--color-border-subtle: rgba(255, 255, 255, .04);--color-border-normal: rgba(255, 255, 255, .05);--color-border-medium: rgba(255, 255, 255, .08);--color-border-accent: rgba(244, 205, 130, .08);--color-border-accent-medium: rgba(244, 205, 130, .12);--color-border-accent-strong: rgba(244, 205, 130, .2);--color-border-accent-stronger: rgba(244, 205, 130, .35);--color-border-finish: rgba(244, 205, 130, .3);--color-border-panel-step: rgba(244, 205, 130, .35);--color-shadow-app: rgba(0, 0, 0, .5);--color-shadow-button: rgba(137, 98, 31, .5);--color-shadow-donate: rgba(0, 0, 0, .45);--color-shadow-confetti: rgba(255, 255, 255, .15);--color-badge-agitate-start: rgba(240, 198, 120, .95);--color-badge-agitate-end: rgba(197, 141, 62, .85);--color-badge-agitate-text: #0d0b05;--color-badge-rotate-start: rgba(136, 216, 236, .95);--color-badge-rotate-end: rgba(68, 143, 172, .88);--color-badge-rotate-text: #052029;--color-badge-immerse-start: rgba(140, 172, 235, .92);--color-badge-immerse-end: rgba(63, 96, 166, .86);--color-badge-immerse-text: #071323;--color-finish-eyebrow: #f4dca1;--color-finish-heading: #fff2d5;--color-finish-text: #cdc2b2;--color-finish-bg-start: rgba(244, 205, 130, .16);--color-finish-bg-end: rgba(7, 9, 12, .92);--color-confetti-hue-base: 40;--color-confetti-saturation: 80%;--color-text-shadow-countdown: rgba(212, 158, 71, .45);--color-text-shadow-button: rgba(255, 236, 175, .4)}[data-theme=grayscale]{--color-bg-body: #0a0a0a;--color-bg-app-gradient-start: rgba(28, 28, 28, .95);--color-bg-app-gradient-end: rgba(15, 15, 15, .9);--color-bg-panel-gradient-start: rgba(32, 32, 32, .9);--color-bg-panel-gradient-end: rgba(15, 15, 15, .85);--color-bg-card-gradient-start: rgba(30, 30, 30, .92);--color-bg-card-gradient-end: rgba(15, 15, 15, .92);--color-bg-input: rgba(12, 12, 12, .8);--color-bg-overlay: rgba(8, 8, 8, .78);--color-bg-step-row-start: rgba(28, 28, 28, .95);--color-bg-step-row-end: rgba(40, 40, 40, .95);--color-bg-step-completed: rgba(60, 60, 60, .85);--color-bg-button-gradient-start: rgba(75, 75, 75, .52);--color-bg-button-gradient-end: rgba(30, 30, 30, .9);--color-bg-donate: rgba(18, 18, 18, .92);--color-bg-demo-banner: rgba(18, 18, 18, .85);--color-body-gradient-1: rgba(80, 80, 80, .18);--color-body-gradient-2: rgba(60, 60, 60, .16);--color-body-gradient-3-start: rgba(50, 50, 50, .55);--color-body-gradient-3-end: rgba(10, 10, 10, .95);--color-dial-shadow: rgba(180, 180, 180, .2);--color-dial-face-gradient-start: #303030;--color-dial-face-gradient-end: #181818;--color-dial-face-overlay: rgba(200, 200, 200, .08);--color-dial-border: rgba(45, 45, 45, .95);--color-dial-glass: rgba(255, 255, 255, .08);--color-dial-inner-gradient-start: rgba(28, 28, 28, .9);--color-dial-inner-gradient-end: rgba(55, 55, 55, .7);--color-dial-inner-glow: rgba(150, 150, 150, .08);--color-dial-scale-minor: rgba(140, 140, 140, .12);--color-dial-scale-major: rgba(200, 200, 200, .2);--color-dial-marker: rgba(220, 220, 220, .8);--color-dial-needle-start: rgba(180, 180, 180, .6);--color-dial-needle-end: rgba(245, 245, 245, .95);--color-dial-needle-glow: rgba(200, 200, 200, .35);--color-dial-cap-light: #d0d0d0;--color-dial-cap-mid: #707070;--color-dial-cap-dark: #252525;--color-dial-cap-border: rgba(100, 100, 100, .5);--color-dial-readout-bg: rgba(20, 20, 20, .7);--color-text-primary: #e8e8e8;--color-text-heading: #f0f0f0;--color-text-heading-alt: #e0e0e0;--color-text-secondary: #a0a0a0;--color-text-tertiary: #a8a8a8;--color-text-muted: #b8b8b8;--color-text-label: #d0d0d0;--color-text-input: #e0e0e0;--color-text-countdown: #e8e8e8;--color-text-step-current: #c0c0c0;--color-text-hint: #b8b8b8;--color-text-button: #e0e0e0;--color-text-footer: #a8a8a8;--color-text-step-completed: #c0c0c0;--color-accent-primary: #d0d0d0;--color-accent-primary-hover: #e8e8e8;--color-accent-gold: #d0d0d0;--color-accent-gold-alt: #c8c8c8;--color-accent-gold-line: rgba(180, 180, 180, .4);--color-accent-button-start: rgba(180, 180, 180, .85);--color-accent-button-end: rgba(120, 120, 120, .92);--color-accent-donate-start: rgba(180, 180, 180, .85);--color-accent-donate-end: rgba(120, 120, 120, .92);--color-accent-donate-text: #1a1a1a;--color-accent-pill-text: #d8d8d8;--color-state-active-border: rgba(200, 200, 200, .32);--color-state-active-glow: rgba(180, 180, 180, .25);--color-state-active-shadow: rgba(120, 120, 120, .42);--color-state-completed-border: rgba(200, 200, 200, .5);--color-border-subtle: rgba(255, 255, 255, .04);--color-border-normal: rgba(255, 255, 255, .05);--color-border-medium: rgba(255, 255, 255, .08);--color-border-accent: rgba(200, 200, 200, .08);--color-border-accent-medium: rgba(200, 200, 200, .12);--color-border-accent-strong: rgba(200, 200, 200, .2);--color-border-accent-stronger: rgba(200, 200, 200, .35);--color-border-finish: rgba(200, 200, 200, .3);--color-border-panel-step: rgba(200, 200, 200, .35);--color-shadow-app: rgba(0, 0, 0, .5);--color-shadow-button: rgba(100, 100, 100, .5);--color-shadow-donate: rgba(0, 0, 0, .45);--color-shadow-confetti: rgba(255, 255, 255, .15);--color-badge-agitate-start: rgba(200, 200, 200, .95);--color-badge-agitate-end: rgba(140, 140, 140, .85);--color-badge-agitate-text: #1a1a1a;--color-badge-rotate-start: rgba(180, 180, 180, .95);--color-badge-rotate-end: rgba(120, 120, 120, .88);--color-badge-rotate-text: #1a1a1a;--color-badge-immerse-start: rgba(160, 160, 160, .92);--color-badge-immerse-end: rgba(100, 100, 100, .86);--color-badge-immerse-text: #1a1a1a;--color-finish-eyebrow: #d0d0d0;--color-finish-heading: #f0f0f0;--color-finish-text: #b8b8b8;--color-finish-bg-start: rgba(200, 200, 200, .16);--color-finish-bg-end: rgba(15, 15, 15, .92);--color-confetti-hue-base: 0;--color-confetti-saturation: 0%;--color-text-shadow-countdown: rgba(150, 150, 150, .45);--color-text-shadow-button: rgba(200, 200, 200, .4)}:root,[data-theme=default]{background-color:var(--color-bg-body);color:var(--color-text-primary)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--outer-padding);padding-top:calc(var(--outer-padding) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--outer-padding) + env(safe-area-inset-bottom,0px));background:radial-gradient(circle at 20% 20%,var(--color-body-gradient-1),transparent 43%),radial-gradient(circle at 80% 15%,var(--color-body-gradient-2),transparent 40%),radial-gradient(circle at 50% 100%,var(--color-body-gradient-3-start),var(--color-body-gradient-3-end))}.app{max-width:1280px;width:100%;background:linear-gradient(160deg,var(--color-bg-app-gradient-start),var(--color-bg-app-gradient-end));border-radius:clamp(20px,4vw,32px);border:1px solid var(--color-border-subtle);box-shadow:0 25px 60px var(--color-shadow-app),inset 0 0 18px #ffffff05;padding:var(--app-padding);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}header h1{margin:0;font-size:clamp(2.2rem,6vw,3rem);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-heading)}.tagline{margin-top:6px;color:var(--color-text-secondary);letter-spacing:.05em;text-transform:uppercase;font-size:clamp(.85rem,2.7vw,1rem)}.hero{display:flex;flex-wrap:wrap;justify-content:space-between;gap:clamp(16px,4vw,28px);align-items:flex-start}.hero-actions{display:flex;flex-wrap:wrap;gap:clamp(12px,3vw,18px);align-items:flex-start}.hero-credit{text-transform:uppercase;letter-spacing:.18em;font-size:.85rem;color:var(--color-text-muted);display:flex;flex-direction:column;align-items:flex-end;gap:6px}.hero-credit a{color:var(--color-accent-primary);font-weight:600;text-decoration:underline;font-size:.95rem}.hero-donate-pill{align-self:flex-start;display:inline-flex;align-items:center;gap:12px;padding:6px;border-radius:999px;background:var(--color-bg-donate);border:1px solid var(--color-border-accent-medium);box-shadow:0 8px 24px #00000059;font-size:.85rem;color:var(--color-accent-pill-text);letter-spacing:.04em}.hero-donate-pill span{padding:8px 12px}.hero-donate-pill a{text-transform:uppercase;font-size:.75rem;letter-spacing:.08em;font-weight:600;color:var(--color-accent-donate-text);background:linear-gradient(135deg,var(--color-accent-donate-start),var(--color-accent-donate-end));padding:8px 16px;border-radius:999px;text-decoration:none;transition:filter .2s ease}.hero-donate-pill a:hover{filter:brightness(1.1)}.theme-selector{display:flex;gap:8px;padding:6px;background:var(--color-bg-donate);border:1px solid var(--color-border-accent-medium);border-radius:999px;box-shadow:0 8px 24px #00000059}.theme-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--color-text-muted);font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.theme-btn:hover{background:#ffffff0d;color:var(--color-text-primary)}.theme-btn--active{background:linear-gradient(135deg,var(--color-bg-button-gradient-start),var(--color-bg-button-gradient-end));border-color:var(--color-border-medium);color:var(--color-text-primary)}.theme-icon{font-size:1.1rem;line-height:1}.theme-label{font-size:.75rem}.panel{margin-top:clamp(32px,6vw,48px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--panel-gap);align-items:start}.panel-column{display:flex;flex-direction:column;gap:28px}.panel-column--prep{position:relative}.panel-column--run{align-items:center;text-align:center;width:100%}.panel-heading{display:flex;align-items:center;gap:18px;padding:20px 22px;border-radius:22px;border:1px solid var(--color-border-normal);background:linear-gradient(140deg,var(--color-bg-card-gradient-start),var(--color-bg-card-gradient-end));box-shadow:inset 0 0 22px #00000073;text-align:left}.panel-step{display:inline-flex;align-items:center;justify-content:center;width:clamp(46px,12vw,52px);height:clamp(46px,12vw,52px);border-radius:14px;background:var(--color-border-accent-medium);border:1px solid var(--color-border-panel-step);color:var(--color-accent-gold);letter-spacing:.2em;font-size:clamp(.85rem,3vw,1rem)}.panel-heading h2{margin:0;letter-spacing:.2em;text-transform:uppercase;font-size:clamp(1rem,2.4vw,1.15rem);color:var(--color-text-heading-alt)}.panel-heading p{margin:6px 0 0;color:var(--color-text-tertiary);font-size:clamp(.9rem,2.3vw,1rem)}.prep-heading{margin-bottom:-8px}.prep-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:32px;align-items:start;justify-content:start;width:100%}.prep-grid .optionals{min-width:0;width:100%}.prep-grid .optionals .optionals-grid{display:grid;gap:18px}.dial-card{display:flex;justify-content:center}.dial-housing{position:relative;width:min(48vw,420px);height:min(48vw,420px)}.dial-shadow{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--color-dial-shadow),transparent 60%);filter:blur(40px);z-index:0}.dial-face{position:relative;z-index:1;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--color-dial-face-overlay),transparent 55%),linear-gradient(135deg,var(--color-dial-face-gradient-start),var(--color-dial-face-gradient-end));box-shadow:inset 0 0 40px #000000b3,0 20px 50px #0000008c;border:6px solid var(--color-dial-border);display:flex;align-items:center;justify-content:center}.dial-glass{position:absolute;top:12px;right:12px;bottom:12px;left:12px;border-radius:50%;background:radial-gradient(circle at 50% 25%,var(--color-dial-glass),transparent 70%);mix-blend-mode:screen;pointer-events:none}.dial-center{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.dial-inner{position:relative;width:86%;height:86%;border-radius:50%;background:radial-gradient(circle,var(--color-dial-inner-gradient-start) 40%,var(--color-dial-inner-gradient-end) 100%);box-shadow:inset 0 0 20px #000c,0 0 8px var(--color-dial-inner-glow)}.dial-scale{position:absolute;top:6%;right:6%;bottom:6%;left:6%;border-radius:50%;pointer-events:none}.dial-scale--minor{background:repeating-conic-gradient(from -90deg,var(--color-dial-scale-minor) 0deg,var(--color-dial-scale-minor) 1deg,transparent 1.5deg,transparent 6deg)}.dial-scale--major{top:10%;right:10%;bottom:10%;left:10%;background:repeating-conic-gradient(from -90deg,var(--color-dial-scale-major) 0deg,var(--color-dial-scale-major) 2deg,transparent 2deg,transparent 30deg);box-shadow:inset 0 0 10px #0006}.dial-markers{position:absolute;top:0;right:0;bottom:0;left:0;display:block;pointer-events:none}.dial-marker{position:absolute;font-size:.75rem;letter-spacing:.2em;color:var(--color-dial-marker)}.dial-marker--top{top:4%;left:50%;transform:translate(-50%)}.dial-marker--right{top:50%;right:2%;transform:translateY(-50%)}.dial-marker--bottom{bottom:4%;left:50%;transform:translate(-50%)}.dial-marker--left{top:50%;left:2%;transform:translateY(-50%)}.dial-needle{position:absolute;top:50%;left:50%;width:46%;height:3px;background:linear-gradient(90deg,var(--color-dial-needle-start),var(--color-dial-needle-end));transform-origin:0% 50%;transform:rotate(-120deg);border-radius:3px 100% 100% 3px;box-shadow:0 0 12px var(--color-dial-needle-glow);transition:transform .25s cubic-bezier(.33,1,.68,1)}.dial-cap{position:absolute;top:50%;left:50%;width:32px;height:32px;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--color-dial-cap-light),var(--color-dial-cap-mid) 70%,var(--color-dial-cap-dark) 100%);transform:translate(-50%,-50%);box-shadow:0 0 10px #000000b3;border:2px solid var(--color-dial-cap-border)}.dial-readout{position:absolute;bottom:22%;left:50%;transform:translate(-50%);text-align:center;display:flex;flex-direction:column;gap:clamp(4px,1vw,6px);padding:clamp(8px,2vw,12px) clamp(12px,3vw,16px);border-radius:12px;background:var(--color-dial-readout-bg);box-shadow:inset 0 2px 8px #0009;border:1px solid var(--color-border-normal)}.countdown{font-size:clamp(2rem,8vw,2.5rem);font-variant-numeric:tabular-nums;letter-spacing:.1em;color:var(--color-text-countdown);text-shadow:0 0 12px var(--color-text-shadow-countdown)}.current-step{font-size:clamp(.8rem,3vw,.95rem);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-step-current)}.controls{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}.controls--tight{flex-wrap:nowrap;width:100%}.controls--tight button{flex:1;min-width:120px}.run-hint{margin:12px 0 0;font-size:.95rem;color:var(--color-text-hint);letter-spacing:.07em;text-align:center}button{padding:14px 26px;border-radius:999px;border:1px solid var(--color-border-medium);background:linear-gradient(135deg,var(--color-bg-button-gradient-start),var(--color-bg-button-gradient-end));color:var(--color-text-button);font-size:.95rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}button.primary{background:linear-gradient(135deg,var(--color-accent-button-start),var(--color-accent-button-end));color:var(--color-accent-donate-text);text-shadow:0 0 10px var(--color-text-shadow-button);box-shadow:0 8px 18px var(--color-shadow-button)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}button:not(:disabled):active{transform:translateY(1px);filter:brightness(.95)}.config{background:linear-gradient(160deg,var(--color-bg-panel-gradient-start),var(--color-bg-panel-gradient-end));border-radius:20px;padding:clamp(18px,4vw,24px);border:1px solid var(--color-border-subtle);box-shadow:inset 0 0 20px #00000073;width:100%}.step-group-heading{margin:26px 0 10px;font-size:clamp(.9rem,2.4vw,1.05rem);letter-spacing:.24em;text-transform:uppercase;color:var(--color-accent-gold-alt);display:flex;align-items:center;gap:10px}.step-group-heading:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--color-accent-gold-line),transparent);opacity:.6}.step-row--header+.step-group-heading{margin-top:16px}.config h2{margin:0;font-size:1.2rem;letter-spacing:.2em;text-transform:uppercase;color:var(--color-accent-gold-alt)}.config-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:6px}.config-columns{display:grid;grid-template-columns:repeat(2,minmax(70px,90px));column-gap:clamp(10px,2vw,16px);text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;color:var(--color-text-secondary);justify-items:center;margin-left:auto}.steps-config{display:grid;gap:12px}.step-row{display:grid;grid-template-columns:minmax(0,1fr) repeat(2,minmax(70px,90px));gap:clamp(10px,2vw,16px);align-items:center;justify-items:center;padding:clamp(12px,3vw,16px);border-radius:12px;background:linear-gradient(135deg,var(--color-bg-step-row-start),var(--color-bg-step-row-end));border:1px solid var(--color-border-accent);box-shadow:inset 0 0 14px #00000059;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.step-row label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-label);font-size:clamp(.85rem,2.4vw,.95rem);display:flex;align-items:center;gap:10px;justify-self:start}.step-row input{width:100%;padding:9px 8px;border-radius:8px;border:1px solid var(--color-border-accent-strong);background:var(--color-bg-input);color:var(--color-text-input);font-size:clamp(.85rem,2.4vw,.95rem);text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.04em}.step-row input:disabled{opacity:.6}.step-row.active{border-color:var(--color-state-active-border);transform:translate(4px);box-shadow:inset 0 0 22px var(--color-state-active-glow),0 8px 16px var(--color-state-active-shadow)}.step-row.completed{border-color:var(--color-state-completed-border);background:var(--color-bg-step-completed);color:var(--color-text-step-completed)}.step-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 9px;border-radius:999px;font-size:.65rem;letter-spacing:.18em;color:var(--badge-text-color, var(--color-badge-agitate-text));background:linear-gradient(135deg,var(--badge-color-start, var(--color-badge-agitate-start)),var(--badge-color-end, var(--color-badge-agitate-end)));text-transform:uppercase}.step-badge[data-type=agitate]{--badge-color-start: var(--color-badge-agitate-start);--badge-color-end: var(--color-badge-agitate-end);--badge-text-color: var(--color-badge-agitate-text)}.step-badge[data-type=rotate]{--badge-color-start: var(--color-badge-rotate-start);--badge-color-end: var(--color-badge-rotate-end);--badge-text-color: var(--color-badge-rotate-text)}.step-badge[data-type=immerse]{--badge-color-start: var(--color-badge-immerse-start);--badge-color-end: var(--color-badge-immerse-end);--badge-text-color: var(--color-badge-immerse-text)}@media (max-width: 1200px){.panel{grid-template-columns:1fr;justify-items:stretch}.prep-grid{grid-template-columns:1fr}.panel-column--run{align-items:center}}@media (max-width: 960px){body{align-items:stretch;justify-content:flex-start}.hero{flex-direction:column;align-items:flex-start;text-align:left;gap:24px}.hero-credit{align-items:flex-start;text-align:left}.panel-column{gap:20px}.panel-column--prep,.panel-column--run{width:100%;max-width:760px;margin:0 auto}.prep-grid{gap:20px}.dial-card{margin-bottom:18px;width:100%}}@media (max-width: 720px){.hero{align-items:center;text-align:center}.hero-actions{width:100%;flex-direction:column;align-items:center}.theme-selector{width:100%;max-width:320px;justify-content:center}.hero-donate-pill{align-self:center}.hero-credit{align-items:center;text-align:center}.panel-heading{flex-direction:column;text-align:center;gap:12px;align-items:center}.config-header{flex-direction:column;align-items:flex-start;gap:8px}.config-columns{width:100%;justify-items:start;justify-content:flex-start;padding-right:0;column-gap:24px}.controls--tight{flex-wrap:nowrap;flex-direction:column}.controls--tight button{width:100%;min-width:0}}@media (max-width: 900px){.dial-housing{width:min(60vw,380px);height:min(60vw,380px)}}@media (max-width: 640px){body{padding:var(--outer-padding)}.app{padding:clamp(18px,6vw,24px)}.dial-housing{width:min(86vw,300px);height:min(86vw,300px)}.step-row{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}.step-row label{grid-column:1 / -1}.controls{justify-content:center;gap:12px}.app-footer{margin-top:32px}.demo-banner{flex-direction:column;align-items:flex-start;gap:16px;padding:18px}.demo-banner__actions{width:100%;justify-content:space-between}}.app-footer{margin-top:48px;text-align:center;letter-spacing:.12em;text-transform:uppercase;font-size:clamp(.72rem,2vw,.85rem);color:var(--color-text-footer)}.app-footer a{color:var(--color-accent-primary);text-decoration:underline;font-weight:600}.finish-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--color-bg-overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:20;overflow:hidden}.finish-overlay.visible{opacity:1;pointer-events:auto}.finish-confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.confetti-piece{position:absolute;top:0;left:50%;width:8px;height:20px;border-radius:999px;background:hsl(calc(var(--color-confetti-hue-base) + var(--confetti-hue, 0)),var(--color-confetti-saturation),70%);opacity:0;box-shadow:0 0 12px var(--color-shadow-confetti);transform:translate(-50%,-12px) rotate(var(--confetti-rotate-start, 0deg));animation:confetti-fall var(--confetti-duration, 1.6s) ease-out forwards;animation-delay:var(--confetti-delay, 0s)}@keyframes confetti-fall{0%{opacity:0;transform:translate(-50%,-12px) rotate(var(--confetti-rotate-start, 0deg))}20%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--confetti-drift, 0px)),260px) rotate(var(--confetti-rotate-end, 360deg))}}.finish-card{padding:40px 48px;border-radius:28px;border:1px solid var(--color-border-finish);background:radial-gradient(circle at 20% 20%,var(--color-finish-bg-start),var(--color-finish-bg-end));box-shadow:0 30px 80px #00000073,inset 0 0 20px #ffffff0d;text-align:center;max-width:480px;animation:finish-pop .5s ease}.finish-eyebrow{margin:0 0 12px;text-transform:uppercase;letter-spacing:.3em;font-size:.75rem;color:var(--color-finish-eyebrow)}.finish-card h3{margin:0 0 10px;font-size:1.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-finish-heading)}.finish-card p{margin:0;color:var(--color-finish-text);line-height:1.5}@keyframes finish-pop{0%{transform:translateY(20px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.demo-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;border-radius:14px;border:1px solid var(--color-border-accent-medium);background:var(--color-bg-demo-banner);margin-bottom:18px}.demo-banner[hidden]{display:none}.demo-banner__copy h3{margin:0 0 4px;letter-spacing:.15em;text-transform:uppercase;font-size:.85rem;color:var(--color-accent-gold)}.demo-banner__copy p{margin:0;color:var(--color-text-muted);font-size:.9rem;line-height:1.4}.demo-banner__actions{display:flex;flex-direction:row;gap:16px;align-items:center;flex-shrink:0}.demo-link{border:none;background:none;color:var(--color-accent-primary);font-weight:600;font-size:.95rem;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;padding:0;text-decoration:none;transition:color .2s ease;white-space:nowrap}.demo-link:hover{color:var(--color-accent-primary-hover)}.demo-hide-icon{width:24px;height:24px;border-radius:50%;border:1px solid var(--color-border-accent-strong);background:#ffffff08;color:var(--color-accent-gold);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease,transform .2s ease;position:relative;padding:0;flex-shrink:0}.demo-hide-icon:before{content:"✕";font-size:.7rem;line-height:1}.demo-hide-icon:hover{background:#ffffff14;color:var(--color-accent-primary-hover);transform:scale(1.05)}.formula-controls{display:flex;gap:16px;align-items:flex-end;margin-bottom:24px;flex-wrap:wrap}.formula-controls--load{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:24px}.formula-controls--save{margin-top:32px;flex-direction:column;align-items:stretch;gap:8px}.formula-heading{margin:0;font-size:clamp(.9rem,2.4vw,1.05rem);letter-spacing:.24em;text-transform:uppercase;color:var(--color-accent-gold-alt);display:flex;align-items:center;gap:10px}.formula-heading:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--color-accent-gold-line),transparent);opacity:.6}.formula-select{width:100%;padding:10px 14px;border-radius:8px;border:1px solid var(--color-border-accent-strong);background:var(--color-bg-input);color:var(--color-text-input);font-size:.9rem;letter-spacing:.04em;cursor:pointer;transition:border-color .2s ease}.formula-select:hover{border-color:var(--color-border-accent-stronger)}.formula-select:focus{outline:none;border-color:var(--color-accent-gold)}.formula-btn{padding:10px 20px;border-radius:8px;border:1px solid var(--color-border-accent-strong);background:linear-gradient(135deg,var(--color-accent-button-start),var(--color-accent-button-end));color:var(--color-accent-donate-text);font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:filter .2s ease,transform .1s ease;white-space:nowrap}.formula-btn:hover{filter:brightness(1.1)}.formula-btn:active{transform:translateY(1px)}.formula-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:30;opacity:0;pointer-events:none;transition:opacity .3s ease}.formula-modal.visible{opacity:1;pointer-events:auto}.formula-modal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.formula-modal-card{position:relative;z-index:1;max-width:500px;width:calc(100% - 32px);max-height:calc(100vh - 64px);overflow-y:auto;background:linear-gradient(160deg,var(--color-bg-panel-gradient-start),var(--color-bg-panel-gradient-end));border-radius:20px;border:1px solid var(--color-border-accent-medium);box-shadow:0 30px 80px #00000080;padding:32px;animation:modal-slide-up .3s ease}@keyframes modal-slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.formula-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.formula-modal-card h2{margin:0;font-size:1.4rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent-gold-alt)}.formula-close-icon{width:24px;height:24px;padding:0;border:none;background:transparent;cursor:pointer;position:relative;flex-shrink:0;opacity:.6;transition:opacity .2s ease}.formula-close-icon:hover{opacity:1}.formula-close-icon:before,.formula-close-icon:after{content:"";position:absolute;top:50%;left:50%;width:16px;height:2px;background:var(--color-text-primary);border-radius:1px}.formula-close-icon:before{transform:translate(-50%,-50%) rotate(45deg)}.formula-close-icon:after{transform:translate(-50%,-50%) rotate(-45deg)}.formula-form{display:flex;flex-direction:column;gap:20px}.formula-field{display:flex;flex-direction:column;gap:8px}.formula-field label{text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:var(--color-text-label);font-weight:600}.formula-field select,.formula-field input[type=text],.formula-field input[type=number],.formula-field textarea{padding:10px 14px;border-radius:8px;border:1px solid var(--color-border-accent-strong);background:var(--color-bg-input);color:var(--color-text-input);font-size:.9rem;letter-spacing:.04em;font-family:inherit}.formula-field select{cursor:pointer}.formula-field input:focus,.formula-field select:focus,.formula-field textarea:focus{outline:none;border-color:var(--color-accent-gold)}.formula-field textarea{resize:vertical;min-height:60px}.formula-temp-group{display:flex;gap:12px;align-items:center}.formula-temp-group input[type=number]{flex:1;max-width:120px}.formula-temp-unit{display:flex;gap:16px}.formula-temp-unit label{display:flex;align-items:center;gap:6px;cursor:pointer;text-transform:none;font-size:.9rem;font-weight:400;color:var(--color-text-muted)}.formula-temp-unit input[type=radio]{cursor:pointer}.formula-temp-unit input[type=radio]:checked+span{color:var(--color-accent-gold);font-weight:600}.formula-char-count{font-size:.75rem;color:var(--color-text-secondary);text-align:right}.formula-actions{display:flex;justify-content:center;margin-top:24px}.formula-btn-primary{padding:12px 48px;border-radius:999px;border:none;background:linear-gradient(135deg,var(--color-accent-button-start),var(--color-accent-button-end));color:var(--color-accent-donate-text);font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:filter .2s ease,transform .1s ease}.formula-btn-primary:hover{filter:brightness(1.1)}.formula-btn-primary:active{transform:translateY(1px)}.formula-btn-link{padding:8px 12px;border:none;background:none;color:var(--color-text-secondary);font-size:.8rem;font-weight:500;text-decoration:underline;text-underline-offset:2px;cursor:pointer;transition:color .2s ease;text-align:center}.formula-btn-link:hover{color:var(--color-text-primary)}@media (max-width: 640px){.formula-controls{flex-direction:column;align-items:stretch}.formula-btn{width:100%}.formula-modal-card{padding:24px}.formula-actions{flex-direction:column}}
