@font-face{font-family:Cormorant Garamond;src:url(/fonts/CormorantGaramond-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(/fonts/CormorantGaramond-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(/fonts/CormorantGaramond-500-italic.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{--bg: #04070d;--ink: rgba(232, 240, 246, .92);--ink-dim: rgba(196, 212, 224, .55);--ink-faint: rgba(180, 200, 214, .34);--accent: #8fd8cf;--accent-warm: #e8c9a0;--hairline: rgba(255, 255, 255, .08);--hairline-strong: rgba(255, 255, 255, .14);--glass: rgba(13, 20, 30, .72);--serif: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;--sans: "Inter", -apple-system, "SF Pro Text", "Segoe UI", sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--breath: 0}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overscroll-behavior:none}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;touch-action:manipulation;overflow:hidden}#root{height:100dvh;width:100vw;position:relative}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}.stage{position:fixed;inset:0;overflow:hidden}.stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.stage-fallback{position:absolute;inset:0;display:grid;place-items:center}.stage-fallback:before{content:"";width:min(72vmin,480px);height:min(72vmin,480px);border-radius:50%;background:radial-gradient(circle at 50% 46%,rgba(233,205,160,.16),transparent 32%),radial-gradient(circle at 50% 50%,rgba(122,216,201,.14),transparent 58%),radial-gradient(circle at 50% 50%,rgba(70,140,160,.1),transparent 75%);transform:scale(calc(.82 + var(--breath) * .3));opacity:calc(.55 + var(--breath) * .45);transition:transform .4s ease-out,opacity .4s ease-out;filter:blur(2px)}.overlay{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:calc(var(--safe-top) + 20px) 24px calc(var(--safe-bottom) + 28px);pointer-events:none}.overlay>*{pointer-events:auto}.top-bar{width:100%;display:flex;justify-content:space-between;align-items:center}.wordmark{font-family:var(--serif);font-size:14px;letter-spacing:.32em;text-transform:uppercase;color:var(--ink-faint);padding-left:.32em;transition:opacity 1.2s ease}@media(min-width:720px){.wordmark{font-size:16px}}.session-active .wordmark{opacity:0}.icon-button{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:var(--ink-dim);transition:color .3s ease,background .3s ease,opacity 1.2s ease}.icon-button:hover{color:var(--ink);background:#ffffff0d}.icon-button:focus-visible{outline:1px solid var(--hairline-strong);outline-offset:2px}.mantra-zone{position:absolute;left:0;right:0;top:71%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;text-align:center;pointer-events:none}.mantra-zone .breath-hint{position:absolute;top:100%;margin-top:18px}.guidance{position:absolute;left:24px;right:24px;top:40%;transform:translateY(-50%);text-align:center;font-family:var(--serif);font-style:italic;font-size:clamp(19px,4vw,27px);font-weight:500;letter-spacing:.1em;color:var(--ink);text-shadow:0 1px 28px rgba(4,7,13,.85);opacity:0;transition:opacity 1.9s ease;pointer-events:none}.guidance.visible{opacity:.92;transition:opacity .6s ease}.guidance-word{display:inline-block;animation:word-in 1s cubic-bezier(.23,.6,.32,1) both}@keyframes word-in{0%{opacity:0;filter:blur(4px);transform:translateY(3px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}.begin-row{display:flex;gap:10px;transition:opacity .9s ease,transform .9s ease}.begin-row.hidden{opacity:0;transform:translateY(8px);pointer-events:none}.mantra-zone{transition:opacity 1.2s ease}.mantra-zone.ceding{opacity:0}.mantra{font-family:var(--serif);font-weight:500;font-size:clamp(17px,3.4vw,24px);letter-spacing:.22em;color:var(--ink);opacity:calc(.6 - var(--breath) * .38);transform:scale(calc(1 + var(--breath) * .02));text-shadow:0 1px 24px rgba(4,7,13,.8);transition:opacity .2s linear;will-change:transform,opacity}.breath-hint{font-size:11px;font-weight:400;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-faint);transition:opacity 1.4s ease}.breath-hint.hidden{opacity:0}.bottom-zone{display:flex;flex-direction:column;align-items:center;gap:18px;min-height:76px;justify-content:flex-end}.duration-row{display:flex;gap:6px;align-items:center;transition:opacity .9s ease,transform .9s ease}.duration-row.hidden{opacity:0;transform:translateY(8px);pointer-events:none}.duration-chip{padding:9px 16px;border-radius:999px;font-size:12px;font-weight:400;letter-spacing:.14em;color:var(--ink-faint);border:1px solid transparent;transition:color .3s ease,border-color .3s ease,background .3s ease}.duration-chip:hover{color:var(--ink-dim)}.duration-chip.selected{color:var(--ink);border-color:var(--hairline);background:#ffffff08}.begin-button{font-size:11.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-dim);padding:12px 30px 12px calc(30px + .3em);border-radius:999px;border:1px solid var(--hairline);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:color .4s ease,border-color .4s ease,opacity .9s ease,transform .9s ease}.begin-button:hover{color:var(--ink);border-color:var(--hairline-strong)}.begin-button.hidden{opacity:0;transform:translateY(8px);pointer-events:none}.session-remaining{position:absolute;bottom:calc(var(--safe-bottom) + 30px);left:50%;transform:translate(-50%);font-size:11px;letter-spacing:.32em;color:var(--ink-faint);font-variant-numeric:tabular-nums;transition:opacity 1.2s ease;pointer-events:none}.session-remaining.hidden{opacity:0}.session-progress{position:fixed;left:0;bottom:0;height:2px;width:100%;transform-origin:left center;background:linear-gradient(90deg,#8fd8cf00,#8fd8cf8c);opacity:.5;pointer-events:none;transition:opacity 1.2s ease}.drawer-backdrop{position:fixed;inset:0;background:#02040880;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .45s ease;z-index:40}.drawer-backdrop.open{opacity:1;pointer-events:auto}.drawer{position:fixed;z-index:50;background:var(--glass);backdrop-filter:blur(28px) saturate(1.2);-webkit-backdrop-filter:blur(28px) saturate(1.2);border:1px solid var(--hairline);display:flex;flex-direction:column;overflow:hidden;left:10px;right:10px;bottom:10px;max-height:calc(86dvh - var(--safe-top));border-radius:24px;transform:translateY(calc(100% + 12px));transition:transform .55s cubic-bezier(.32,.72,.15,1)}.drawer.open{transform:translateY(0)}@media(min-width:720px){.drawer{inset:12px 12px 12px auto;width:380px;max-height:none;border-radius:24px;transform:translate(calc(100% + 24px))}.drawer.open{transform:translate(0)}}.drawer-scroll{overflow-y:auto;overscroll-behavior:contain;padding:8px 26px calc(var(--safe-bottom) + 26px)}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:22px 26px 14px}.drawer-title{font-family:var(--serif);font-size:21px;font-weight:500;letter-spacing:.06em}.drawer-section{padding:20px 0;border-top:1px solid var(--hairline)}.drawer-section:first-child{border-top:none}.section-label{font-size:10.5px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:14px}.mantra-option{width:100%;display:flex;align-items:center;justify-content:space-between;padding:11px 14px;margin:0 -14px;width:calc(100% + 28px);border-radius:12px;font-family:var(--serif);font-size:18px;letter-spacing:.04em;color:var(--ink-dim);text-align:left;transition:color .25s ease,background .25s ease}.mantra-option:hover{background:#ffffff0a}.mantra-option.selected{color:var(--ink)}.mantra-option .dot{width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:0;transition:opacity .25s ease;box-shadow:0 0 8px var(--accent)}.mantra-option.selected .dot{opacity:.9}.scene-option{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;margin:0 -14px;width:calc(100% + 28px);border-radius:12px;text-align:left;transition:background .25s ease}.scene-option:hover{background:#ffffff0a}.scene-option-text{display:flex;flex-direction:column;gap:1px}.scene-option-name{font-family:var(--serif);font-size:18px;letter-spacing:.04em;color:var(--ink-dim);transition:color .25s ease}.scene-option.selected .scene-option-name{color:var(--ink)}.scene-option-tagline{font-size:11.5px;color:var(--ink-faint);letter-spacing:.04em}.scene-option .dot{width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:0;transition:opacity .25s ease;box-shadow:0 0 8px var(--accent);flex-shrink:0}.scene-option.selected .dot{opacity:.9}.tone-row{display:flex;gap:16px;padding:4px 2px}.tone-swatch{width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 38% 34%,var(--swatch),rgba(6,10,16,.9) 78%);border:1px solid var(--hairline);transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease}.tone-swatch:hover{transform:scale(1.08)}.tone-swatch.selected{border-color:var(--hairline-strong);box-shadow:0 0 12px var(--swatch)}.tone-swatch:focus-visible{outline:1px solid var(--hairline-strong);outline-offset:2px}.sky-row{display:flex;gap:6px;flex-wrap:wrap}.sky-chip{padding:8px 14px;border-radius:999px;font-size:12px;letter-spacing:.1em;color:var(--ink-faint);border:1px solid transparent;transition:color .3s ease,border-color .3s ease,background .3s ease}.sky-chip:hover{color:var(--ink-dim)}.sky-chip.selected{color:var(--ink);border-color:var(--hairline);background:#ffffff08}.hero-dots{display:flex;gap:14px;padding:6px;transition:opacity .9s ease,transform .9s ease}.hero-dots.hidden{opacity:0;transform:translateY(8px);pointer-events:none}.hero-dot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center}.hero-dot:after{content:"";width:5px;height:5px;border-radius:50%;background:#c8dce447;transition:background .35s ease,box-shadow .35s ease,transform .35s ease}.hero-dot:hover:after{background:#c8dce48c}.hero-dot.selected:after{background:var(--accent);box-shadow:0 0 10px #8fd8cfb3;transform:scale(1.25)}.hero-dot:focus-visible{outline:1px solid var(--hairline-strong);outline-offset:-2px}.mantra-custom-input{width:100%;margin-top:8px;padding:12px 14px;border-radius:12px;border:1px solid var(--hairline);background:#ffffff08;color:var(--ink);font-family:var(--serif);font-size:17px;letter-spacing:.04em;outline:none;transition:border-color .3s ease;user-select:text;-webkit-user-select:text}.mantra-custom-input:focus{border-color:#8fd8cf59}.mantra-custom-input::placeholder{color:var(--ink-faint);font-style:italic}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0}.setting-row-text{display:flex;flex-direction:column;gap:2px}.setting-row-title{font-size:14px;font-weight:400;color:var(--ink)}.setting-row-sub{font-size:12px;color:var(--ink-faint);line-height:1.45;max-width:240px}.toggle{position:relative;width:42px;height:25px;border-radius:999px;background:#ffffff17;border:1px solid var(--hairline);flex-shrink:0;transition:background .35s ease,border-color .35s ease}.toggle:after{content:"";position:absolute;top:50%;left:3px;width:17px;height:17px;border-radius:50%;background:#e6f0f5d9;transform:translateY(-50%);transition:transform .35s cubic-bezier(.32,.72,.15,1),background .35s ease}.toggle.on{background:#6bbbb066;border-color:#8fd8cf66}.toggle.on:after{transform:translate(17px,-50%);background:#dff5f1}.toggle:focus-visible{outline:1px solid var(--hairline-strong);outline-offset:2px}.time-input{padding:8px 12px;border-radius:10px;border:1px solid var(--hairline);background:#ffffff0a;color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;outline:none;color-scheme:dark}.notice{margin-top:10px;font-size:12px;line-height:1.5;color:var(--ink-faint);padding:10px 12px;border-radius:10px;background:#ffffff08;border:1px solid var(--hairline)}.notice.warn{color:#e8c9a0bf;border-color:#e8c9a029}.drawer-footer{padding-top:20px;border-top:1px solid var(--hairline);font-size:12px;color:var(--ink-faint);line-height:1.7;text-align:center}.share-button{margin-top:12px;padding:9px 22px;border-radius:999px;border:1px solid var(--hairline);font-size:11.5px;letter-spacing:.16em;color:var(--ink-dim);transition:color .3s ease,border-color .3s ease}.share-button:hover{color:var(--ink);border-color:var(--hairline-strong)}.drawer-footer .quiet-stat{font-family:var(--serif);font-size:15px;font-style:italic;color:var(--ink-dim)}.veil{position:fixed;inset:0;z-index:100;background:var(--bg);display:grid;place-items:center;transition:opacity 1.6s ease;pointer-events:none}.veil.lifted{opacity:0}.veil-pulse{width:6px;height:6px;border-radius:50%;background:#8fd8cfcc;box-shadow:0 0 18px #8fd8cf99;animation:veil-breathe 2.6s ease-in-out infinite}@keyframes veil-breathe{0%,to{transform:scale(1);opacity:.45}50%{transform:scale(2.1);opacity:.95}}.toast{position:fixed;top:calc(var(--safe-top) + 18px);left:50%;transform:translate(-50%,-8px);z-index:90;padding:10px 18px;border-radius:999px;background:var(--glass);border:1px solid var(--hairline);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);font-size:12px;letter-spacing:.08em;color:var(--ink-dim);opacity:0;transition:opacity .6s ease,transform .6s ease;pointer-events:none;white-space:nowrap}.toast.visible{opacity:1;transform:translate(-50%)}.completion{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;opacity:0;transition:opacity 2s ease;pointer-events:none}.completion.visible{opacity:1}.completion-title{font-family:var(--serif);font-style:italic;font-size:clamp(24px,5.6vw,34px);font-weight:500;letter-spacing:.08em;color:var(--ink)}.completion-sub{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-dim);text-shadow:0 0 12px rgba(4,7,13,.9)}@media(prefers-reduced-motion:reduce){.veil-pulse{animation:none;opacity:.8}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
