:root{--ink: #2e3a36;--paper: rgba(250, 246, 236, .78);--paper-solid: #faf6ec;--saffron: #e8892b;--line: rgba(46, 58, 54, .14);--shadow: 0 6px 24px rgba(30, 40, 38, .14);--font: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--ui: ui-rounded, "SF Pro Rounded", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;overflow:hidden;background:#cde3df;color:var(--ink);font-family:var(--ui);-webkit-tap-highlight-color:transparent;overscroll-behavior:none}#scene{position:fixed;inset:0;width:100vw;height:100vh;display:block;touch-action:none;outline:none}#ui{position:fixed;inset:0;pointer-events:none}.veil,.wheel,.corner,.panel.open,.person.show,.mist.show{pointer-events:auto}.wheel,.corner,.panel,.person,.hint,.badge{transition:opacity 1.6s ease,transform 1.6s ease}#ui.idle .wheel,#ui.idle .corner,#ui.idle .hint,#ui.idle .badge,#ui.watching .wheel{opacity:0;pointer-events:none}.veil{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(ellipse at center,#faf6ec59,#faf6ecbf);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);cursor:pointer;transition:opacity 1.4s ease;padding:16px}.veil.gone{opacity:0;pointer-events:none}.veil h1{font-family:var(--font);font-weight:400;font-size:clamp(34px,6vw,58px);letter-spacing:.02em;margin:0}.veil-place{font-family:var(--font);font-style:italic;font-size:20px;margin:4px 0 28px;opacity:.8}.veil-name{font-size:16px;margin:0 0 6px;min-height:1.4em}.veil-enter{font-size:14px;opacity:.6;margin:0;animation:breathe 5s ease-in-out infinite}.veil-status{font-size:13px;opacity:.55;min-height:1.4em;margin-top:18px}@keyframes breathe{0%,to{opacity:.35}50%{opacity:.8}}.icon{width:46px;height:46px;border:0;border-radius:50%;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:background .4s ease,color .4s ease}.icon svg{width:25px;height:25px}.icon:hover,.icon.active{background:#2e3a3614}.icon.on{background:var(--saffron);color:#fffaf0}.icon:focus-visible,.text-btn:focus-visible,input:focus-visible{outline:2px solid var(--saffron);outline-offset:2px}.panel{position:fixed;right:max(16px,env(safe-area-inset-right));top:calc(max(16px,env(safe-area-inset-top)) + 108px);transform:translateY(-6px);width:min(300px,calc(100vw - 32px));padding:14px 16px 12px;border-radius:18px;background:var(--paper);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .5s ease,transform .5s ease}.panel.open{opacity:1;transform:translate(0);pointer-events:auto}.panel h2{font-family:var(--font);font-weight:400;font-size:17px;margin:0 0 10px}.slider{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:10px;font-size:14px;padding:5px 0}.slider input{width:100%;accent-color:var(--saffron)}.toggle{display:flex;align-items:center;gap:10px;font-size:14px;padding:4px 0 8px;cursor:pointer}.toggle input{width:18px;height:18px;accent-color:var(--saffron)}.note{font-size:12px;opacity:.6;margin:6px 0 0}.text-btn{border:1px solid var(--line);background:#ffffff80;color:var(--ink);border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer}.person{position:fixed;transform:translate(-50%,calc(-100% - 12px));display:flex;align-items:center;gap:10px;padding:6px 6px 6px 14px;border-radius:999px;background:var(--paper);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow);font-size:14px;opacity:0;pointer-events:none}.person.show{opacity:1;pointer-events:auto;transition:opacity .4s ease}.toast{position:fixed;top:max(22px,env(safe-area-inset-top));left:50%;transform:translate(-50%,-6px);padding:9px 18px;border-radius:999px;background:var(--paper);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow);font-family:var(--font);font-size:15px;opacity:0;pointer-events:none;transition:opacity 1.2s ease,transform 1.2s ease;max-width:calc(100vw - 32px);text-align:center}.toast.show{opacity:1;transform:translate(-50%)}.hint{position:fixed;left:50%;bottom:calc(max(18px,env(safe-area-inset-bottom)) + 74px);transform:translate(-50%);font-size:13px;color:#fffaf0;text-shadow:0 1px 6px rgba(20,30,28,.45);opacity:0;pointer-events:none;width:max-content;max-width:calc(100vw - 32px);text-align:center}.hint.show{opacity:.95}#ui .panel.open~.hint{opacity:0}.mist{position:fixed;inset:0;display:grid;place-items:center;padding:24px;text-align:center;font-family:var(--font);font-size:18px;background:#f0f4f0b8;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:0;pointer-events:none;transition:opacity 2s ease}.mist.show{opacity:1;pointer-events:auto}.debug{position:fixed;top:10px;left:10px;margin:0;padding:8px 10px;border-radius:10px;background:#141c1a99;color:#e9f3ef;font:11px/1.45 ui-monospace,Consolas,monospace;pointer-events:none}@media (prefers-reduced-motion: reduce){*{transition-duration:.01s!important;animation:none!important}}.quiet-panel .section{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.icon{position:relative}.icon.spent svg{opacity:.4}.icon svg{margin-top:-2px}.wheel{position:fixed;left:max(18px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));width:56px;height:56px}.wheel .hub{position:absolute;inset:0;width:56px;height:56px;background:var(--paper);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow);z-index:2}.wheel .hub svg{width:28px;height:28px;transition:transform .6s ease}.wheel.open .hub svg{transform:scale(1.08)}.wheel .spoke{position:absolute;left:5px;top:5px;background:var(--paper);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow);opacity:0;transform:translate(0) scale(.6);pointer-events:none;transition:transform .45s cubic-bezier(.2,.8,.3,1.2) var(--d, 0ms),opacity .35s ease var(--d, 0ms),background .4s ease,color .4s ease}.wheel.open .spoke{opacity:1;transform:translate(var(--x),var(--y)) scale(1);pointer-events:auto}.wheel .spoke.on{background:var(--saffron);color:#fffaf0}.corner{position:fixed;right:max(16px,env(safe-area-inset-right));top:max(16px,env(safe-area-inset-top));display:flex;flex-direction:column;gap:8px}.corner .icon{background:var(--paper);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow)}.corner .icon.on{background:var(--saffron);color:#fffaf0}#ui.watching .corner .icon:not(.on){opacity:.5}.icon .count{position:absolute;bottom:4px;left:50%;transform:translate(-50%);display:flex;gap:2px;font-size:11px;line-height:1;opacity:.75}.icon .count i{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.22}.icon .count i.full{opacity:.85}.badge{position:fixed;left:50%;top:max(10px,env(safe-area-inset-top));transform:translate(-50%);padding:4px 12px;border-radius:999px;background:#2e3a368c;color:#fffaf0;font-size:12px;pointer-events:none;white-space:nowrap}.toast{top:calc(max(22px,env(safe-area-inset-top)) + 24px)}.hint{bottom:calc(max(18px,env(safe-area-inset-bottom)) + 8px);left:calc(50% + 40px)}.breathe{position:fixed;left:50%;top:30%;width:min(240px,60vw);transform:translate(-50%,-50%) scale(.96);text-align:center;color:#fffaf0;pointer-events:none;opacity:0;transition:opacity 1.6s ease,transform 1.6s ease}.breathe.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.breathe svg{width:100%;height:auto;display:block;overflow:visible;filter:drop-shadow(0 0 3px rgba(20,30,28,.35))}.breathe .side{stroke:#fffaf052;stroke-width:2;stroke-linecap:round;transition:stroke 1.2s ease}.breathe .side.now{stroke:#fffaf0bf}.breathe .dot{fill:#fffaf0}.breathe .halo{fill:#ffe2aabf}.breathe-label{font-family:var(--font);font-size:20px;margin-top:6px;text-shadow:0 1px 10px rgba(20,30,28,.5);min-height:1.3em}.breathe-count{font-size:13px;opacity:.7;min-height:1.2em;text-shadow:0 1px 8px rgba(20,30,28,.5)}.breathe-timer{font-size:13px;letter-spacing:.04em;opacity:.85;margin-top:2px;text-shadow:0 1px 8px rgba(20,30,28,.5)}.breathe-timer.up:before{content:"∞ ";opacity:.7}.breathe-finish{margin-top:10px;pointer-events:auto;background:#faf6ec8c;color:var(--ink);font-size:12px;padding:4px 12px}.breathe:not(.show) .breathe-finish{pointer-events:none}.breath-wheel{position:fixed;inset:0;pointer-events:none;z-index:3}.petal{position:absolute;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;height:54px;padding:0 14px 0 10px;border:1px solid rgba(46,58,54,.08);border-radius:999px;background:#fdfaf3f0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 8px 26px #1e282638;color:var(--ink);font:inherit;text-align:left;cursor:pointer;opacity:0;pointer-events:none;transform:translate(var(--fx, 0px),var(--fy, 0px)) scale(.3);transition:transform .55s cubic-bezier(.2,.8,.3,1.12) var(--d, 0ms),opacity .35s ease var(--d, 0ms),background .25s ease,box-shadow .25s ease}.breath-wheel.open:not(.tuning) .petal{opacity:1;pointer-events:auto;transform:none}.petal:hover,.petal:focus-visible{background:#fffdf7;box-shadow:0 10px 30px #1e28264d}.petal .shape{color:var(--saffron)}.petal-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}.petal-text b{font-family:var(--font);font-weight:400;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.petal-text small{font-size:12px;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.petal-rhythm{font-size:11px;opacity:.6;white-space:nowrap}.petal.own{background:var(--saffron);color:#fffaf0;border-color:transparent}.petal.own .shape{color:#fffaf0}.petal.own:hover,.petal.own:focus-visible{background:#f09a3e}@media (max-width: 639px){.petal-rhythm{display:none}.petal{grid-template-columns:30px 1fr}}.breath-card{position:absolute;max-height:calc(100vh - 120px);overflow-y:auto;padding:14px 16px 12px;border-radius:20px;background:#fdfaf3f5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 12px 34px #1e282642;opacity:0;pointer-events:none;transform:translateY(10px) scale(.97);transition:opacity .4s ease,transform .4s ease}.breath-wheel.open.tuning .breath-card{opacity:1;transform:none;pointer-events:auto}.breath-head{display:flex;justify-content:space-between;align-items:center}.breath-head h2{font-family:var(--font);font-weight:400;font-size:18px;margin:0}.breath-back{font-size:12px;padding:3px 10px}.breath-preview{display:flex;align-items:center;gap:12px;margin:8px 0 6px}.breath-preview .shape{color:var(--saffron);flex:none}.breath-preview div{display:flex;flex-direction:column;line-height:1.35}.breath-preview b{font-family:var(--font);font-weight:400;font-size:16px}.breath-preview span{font-size:14px}.breath-preview small{font-size:11px;opacity:.6}.breath-steppers{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin:6px 0 10px}.stepper{display:grid;grid-template-columns:36px 28px 1fr 28px;align-items:center;gap:4px;font-size:13px}.step-name{opacity:.75}.step{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:#ffffffb3;color:var(--ink);font-size:16px;line-height:1;cursor:pointer}.step:active{background:var(--saffron);color:#fffaf0}.step-val{text-align:center;font-variant-numeric:tabular-nums}.breath-row{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}.row-name{opacity:.75;font-size:13px}.breath-guided{margin:4px 0 2px}.breath-length-note{font-size:11px;opacity:.6}.breath-lengths{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0 8px}.chip{min-width:34px;height:28px;padding:0 8px;border-radius:999px;border:1px solid var(--line);background:#ffffffb3;color:var(--ink);font:inherit;font-size:13px;cursor:pointer}.chip.on{background:var(--saffron);border-color:var(--saffron);color:#fffaf0}.breath-toggles .toggle{padding:2px 0;font-size:13px}.breath-begin{display:block;width:100%;margin-top:10px;height:42px;border:0;border-radius:999px;background:var(--saffron);color:#fffaf0;font-family:var(--font);font-size:17px;cursor:pointer}.breath-quick{position:absolute;display:flex;gap:8px;opacity:0;pointer-events:none;transition:opacity .4s ease .25s}.breath-wheel.open:not(.tuning) .breath-quick{opacity:1;pointer-events:auto}.quick-toggle{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid rgba(46,58,54,.1);border-radius:999px;background:#fdfaf3f0;color:var(--ink);font:inherit;font-size:12px;cursor:pointer;box-shadow:0 6px 18px #1e28262e}.quick-toggle span{font-size:14px;opacity:.5}.quick-toggle.on{background:var(--saffron);color:#fffaf0;border-color:transparent}.quick-toggle.on span{opacity:1}.breathe-buttons{display:flex;justify-content:center;gap:8px}.breathe-buttons .breathe-finish{margin-top:10px}.breathe.paused svg{opacity:.55;transition:opacity .6s ease}.breath-cues{display:flex;flex-direction:column;gap:6px;margin-bottom:4px}.sound-control{display:grid;grid-template-columns:30px auto 1fr;align-items:center;gap:8px;font-size:13px}.sound-control input{width:100%;min-width:80px;accent-color:var(--saffron)}.sound-icon{width:30px;height:30px;border-radius:50%;border:0;cursor:pointer;background:var(--saffron);color:#fffaf0;font-size:15px;line-height:1}.sound-control.off .sound-icon{background:#2e3a361f;color:var(--ink);text-decoration:line-through}.sound-control.off .sound-name,.sound-control.off input{opacity:.4}.breath-quick{flex-direction:column;align-items:stretch;gap:6px;width:270px;padding:10px 12px;border-radius:16px;background:#fdfaf3f0;box-shadow:0 6px 18px #1e28262e}.breath-quick .quick-toggle{box-shadow:none;align-self:flex-start}.sound-control{grid-template-columns:30px auto 18px 1fr}.sound-info{width:18px;height:18px;border-radius:50%;border:1px solid var(--line);padding:0;background:transparent;color:var(--ink);font:italic 11px/1 Georgia,serif;cursor:help;opacity:.7}.sound-explain{display:none;font-size:11.5px;line-height:1.4;opacity:.75;margin:4px 0 2px 38px}.sound-wrap.explaining .sound-explain{display:block}.feedback{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;z-index:40;padding:22px 22px 18px;border-radius:18px;background:var(--paper-solid);color:var(--ink);box-shadow:0 12px 48px #1e282647;pointer-events:auto;animation:fb-in .5s ease-out}@keyframes fb-in{0%{opacity:0;transform:translate(-50%,-46%)}}.fb-close{position:absolute;top:8px;right:10px;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:24px;line-height:1;cursor:pointer;opacity:.6}.fb-close:hover,.fb-close:focus-visible{opacity:1;background:var(--line)}.fb-title{font-family:var(--font);font-weight:500;font-size:22px;margin:0 36px 4px 0}.fb-intro{margin:0 0 14px;font-size:14px;opacity:.75}.fb-q{display:block;margin:0 0 16px}.fb-qtext{display:block;font-size:15px;margin-bottom:6px}.fb-row{display:flex;align-items:center;gap:12px}.fb-range{flex:1;accent-color:var(--saffron);height:28px}.fb-range.untouched{opacity:.55}.fb-val{min-width:22px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.fb-ends{display:flex;justify-content:space-between;font-size:12px;opacity:.6;margin-top:2px}.fb-text{width:100%;min-height:70px;resize:vertical;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-size:15px}.fb-text:focus{outline:2px solid var(--saffron);outline-offset:1px}.fb-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.fb-actions button{min-height:44px;padding:0 20px;border-radius:22px;font:inherit;font-size:15px;cursor:pointer}.fb-later{border:1px solid var(--line);background:transparent;color:var(--ink)}.fb-send{border:0;background:var(--saffron);color:#fff;font-weight:600}.fb-send:disabled{opacity:.6;cursor:wait}.fb-status{min-height:1em;margin:8px 0 0;font-size:13px;opacity:.8;text-align:right}.note{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:35;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}.note>*{pointer-events:auto}.note-btn{width:44px;height:44px;border-radius:50%;border:0;background:var(--paper);color:var(--ink);box-shadow:var(--shadow);backdrop-filter:blur(8px);cursor:pointer;display:grid;place-items:center}.note-btn svg{width:22px;height:22px}.note-btn:hover,.note-btn:focus-visible{background:var(--paper-solid)}.note-card{position:relative;width:min(340px,calc(100vw - 32px));padding:18px 18px 14px;border-radius:16px;background:var(--paper-solid);box-shadow:0 10px 36px #1e28263d;animation:fb-in-note .3s ease-out}@keyframes fb-in-note{0%{opacity:0;transform:translateY(6px)}}.note-card .fb-title{font-size:19px}.note-card .fb-text{min-height:88px}
