:root{--paper: #F3EDE4;--card: #FBF8F3;--line: #E2DACD;--line-strong: #CFC6B6;--ink: #3B4632;--ink-deep: #232B1D;--muted: #6B6E5C;--accent: #9A5A56;--ring: #C98E8A;--blush: #F0D4D3;--sage: #B3BBA4;--sage-light: #DDE2D2;--good: #4F6B3A;--bad: #A5524C;--serif: "Playfair Display", Georgia, serif;--sans: Manrope, system-ui, -apple-system, sans-serif;--safe-top: calc(var(--tg-safe-area-inset-top, env(safe-area-inset-top, 0px)) + var(--tg-content-safe-area-inset-top, 0px));--safe-bottom: var(--tg-safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--nav-h: 62px}*{box-sizing:border-box}html{background:var(--paper)}html,body,#root{margin:0;min-height:100%;color:var(--ink)}body,#root{background:transparent}body{font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}a{color:var(--ink)}.screen{min-height:var(--tg-viewport-stable-height, 100dvh);display:flex;flex-direction:column;align-items:center;padding:calc(var(--safe-top) + 20px) 24px calc(var(--safe-bottom) + 20px)}.screen.has-nav{padding-bottom:calc(var(--safe-bottom) + var(--nav-h) + 16px)}.header{align-self:stretch;display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line);max-width:1100px;width:100%;margin:0 auto}.logo{font-family:var(--serif);font-style:italic;font-weight:600;font-size:26px;text-decoration:none;color:var(--ink);background:none;border:0;padding:0;cursor:pointer}.grow{flex-grow:1}.center{display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px;width:100%;max-width:760px}.label{font-size:12px;font-weight:700;letter-spacing:.2em;color:var(--accent);text-transform:uppercase}.label.muted{color:var(--muted);letter-spacing:.22em}.topic{font-family:var(--serif);font-weight:500;font-size:clamp(30px,7vw,60px);line-height:1.12;margin:0;text-wrap:balance}.topic-small{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);line-height:1.35;text-wrap:balance}.sub{font-size:15px;color:var(--muted);line-height:1.5;margin:0}.row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px}.pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:0 26px;border-radius:999px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);font-weight:700;font-size:16px;text-decoration:none;cursor:pointer;transition:transform .1s,background .15s}.pill:active{transform:scale(.97)}.pill.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.pill.primary:hover{background:var(--ink-deep)}.pill:disabled{opacity:.5;cursor:default}.pill.small{min-height:44px;padding:0 16px;font-size:14px;font-weight:600}.link{background:none;border:0;padding:8px;font-size:15px;font-weight:600;text-decoration:underline;cursor:pointer;color:var(--ink)}.ring{position:relative;display:flex;align-items:center;justify-content:center}.ring svg{position:absolute;inset:0}.ring .time{position:relative;font-family:var(--serif);font-weight:500;line-height:1;font-variant-numeric:tabular-nums}.divider{align-self:stretch;border-top:1px solid var(--line)}.foot{display:flex;flex-direction:column;align-items:center;gap:12px;padding-top:20px;border-top:1px solid var(--line);width:100%;max-width:760px;text-align:center}.nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(3,1fr);align-items:center;height:calc(var(--nav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--paper);border-top:1px solid var(--line)}.nav button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;background:none;border:0;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer}.nav button.on{color:var(--ink);font-weight:700}.dots{display:flex;gap:6px;justify-content:center}.dots i{width:8px;height:8px;border-radius:4px;background:var(--line)}.dots i.done{background:var(--ink)}.dots i.today{background:var(--ring)}.chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line-strong);font-size:13px;font-weight:700;color:var(--accent)}.list{align-self:stretch}.list .item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);text-align:left}.list .item:last-child{border-bottom:0}.big-num{font-family:var(--serif);font-size:26px}.scores{align-self:stretch;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.scores div{display:flex;flex-direction:column;align-items:center;gap:4px}.scores b{font-family:var(--serif);font-size:44px;font-weight:500;line-height:1}.scores span{font-size:12px;font-weight:600;color:var(--muted)}.transcript{font-size:16px;line-height:1.75;text-align:left;align-self:stretch}.hl-filler{background:var(--blush);padding:0 4px;border-radius:3px}.hl-error{text-decoration:underline wavy var(--bad);text-underline-offset:4px}.block{align-self:stretch;display:flex;flex-direction:column;gap:8px;padding-top:16px;border-top:1px solid var(--line);text-align:left}.tip{align-self:stretch;display:flex;flex-direction:column;align-items:center;gap:10px;padding:22px 18px;border:1px solid var(--line);border-radius:16px}.tip p{font-family:var(--serif);font-style:italic;font-size:21px;line-height:1.35;margin:0}.wave{display:flex;align-items:center;justify-content:center;gap:3px;height:56px}.wave i{width:3px;border-radius:2px;background:var(--ink);transition:height .08s}.products{align-self:stretch;display:flex;flex-direction:column;gap:10px}.product{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;border:1px solid var(--line-strong);border-radius:16px;background:transparent;cursor:pointer;text-align:left}.product.best{border-color:var(--ink)}.product b{font-family:var(--serif);font-size:20px;font-weight:500}.product small{display:block;color:var(--muted);font-size:13px;margin-top:2px}.stars{font-weight:700;white-space:nowrap}.error{color:var(--bad);font-size:14px}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;align-self:stretch}.cal span{height:34px;display:flex;align-items:center;justify-content:center;border-radius:17px;font-size:13px;font-weight:700;color:#9a9c8c}.cal span.done{background:var(--ink);color:var(--paper)}.cal span.today{border:1.5px solid var(--ring);color:var(--accent)}.bars{align-self:stretch;display:flex;align-items:flex-end;gap:14px;height:110px}.bars div{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;font-weight:700;justify-content:flex-end;height:100%}.bars i{width:100%;max-width:44px;border-radius:3px;background:var(--line-strong);display:block}.bars div:last-child i{background:var(--ring)}.spinner{width:42px;height:42px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--ring);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}select,input[type=time]{font:inherit;padding:10px 12px;border-radius:12px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink)}.page{width:100%;max-width:560px;display:flex;flex-direction:column;align-items:center;gap:24px}@media (min-width: 700px){.screen{padding-left:48px;padding-right:48px}.ring-adaptive{transform:scale(1.35);margin:50px 0}}.roll{position:relative;width:100%;overflow:hidden;will-change:transform;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 38%,#000 62%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 38%,#000 62%,transparent 100%)}.roll-strip{will-change:transform}.roll-hold{display:flex;align-items:center;justify-content:center;width:100%}.roll-row{display:flex;align-items:center;justify-content:center;padding:0 4px}.roll-row .topic{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:100%}@media (prefers-reduced-motion: reduce){.roll-strip{transition:none}}.bar{display:grid;grid-template-columns:1fr 90px 40px;align-items:center;gap:10px;padding:7px 0;font-size:14px}.bar i{display:block;height:8px;border-radius:4px;background:var(--ring);min-width:3px}.bar b{text-align:right;font-family:var(--serif);font-size:19px;font-weight:500}.person{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:11px 0;border-top:1px solid var(--line)}.person:first-of-type{border-top:0}.person b{font-size:15px}.picker-btn{display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:0 20px;border-radius:999px;border:1.5px solid var(--line-strong);background:var(--card);color:var(--ink);font-size:15px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s}.picker-btn:hover{border-color:var(--ink)}.picker-btn.some{border-color:var(--accent);color:var(--accent)}.picker-btn:disabled{opacity:.45;cursor:default}.picker-btn .caret{font-size:11px;opacity:.6}.sheet-back{position:fixed;inset:0;z-index:60;background:#232b1d57;display:flex;align-items:flex-end;justify-content:center;animation:fade .16s ease-out}@keyframes fade{0%{opacity:0}}.sheet-back.fading{animation:fade-out .25s ease-out forwards}@keyframes fade-out{to{opacity:0}}.sheet{width:100%;max-width:520px;max-height:84vh;max-height:84dvh;display:flex;flex-direction:column;background:var(--card);border-radius:26px 26px 0 0;outline:none;padding-bottom:var(--safe-bottom);animation:rise .2s ease-out}@keyframes rise{0%{transform:translateY(14px);opacity:.6}}.sheet-grab{width:42px;height:4px;border-radius:2px;background:var(--line-strong);margin:10px auto 2px;flex:none}.sheet-head{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 22px 6px;border-bottom:1px solid var(--line);flex:none}.sheet-head b{display:block;font-family:var(--serif);font-size:21px;font-weight:500}.sheet-head small{display:block;margin-top:2px;font-size:13px;color:var(--muted)}.sheet-head .link{font-size:14px;white-space:nowrap}.sheet-actions{display:flex;gap:6px;margin:4px 0 0 -10px}.sheet-actions .link{min-height:44px;padding:0 10px}.pill[aria-disabled=true]{opacity:.5;cursor:default}.pill[aria-disabled=true]:active{transform:none}.pill.primary[aria-disabled=true]:hover{background:var(--ink)}:root[data-theme=autumn] .pill.primary[aria-disabled=true]:hover{background:var(--accent)}.sheet-list{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:6px 12px}.sheet-row{display:flex;align-items:center;gap:12px;width:100%;padding:13px 10px;background:none;border:0;border-radius:14px;cursor:pointer;text-align:left;transition:background .12s}.sheet-row:active{background:var(--paper)}.sheet-sep{display:flex;align-items:center;gap:10px;padding:14px 10px 6px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.sheet-sep:after{content:"";flex:1;border-top:1px solid var(--line)}.sheet-row b{flex:1;font-size:16px;font-weight:600}.sheet-row em{font-style:normal;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.sheet-row .emo{font-size:19px;line-height:1}.sheet-row .box{flex:none;width:24px;height:24px;border-radius:8px;font-size:14px;font-weight:700;border:1.5px solid var(--line-strong);background:var(--card);color:transparent;display:flex;align-items:center;justify-content:center}.sheet-row.on .box{background:var(--ink);border-color:var(--ink);color:var(--paper)}.sheet-foot{padding:12px 22px 18px;border-top:1px solid var(--line);flex:none;display:flex;flex-direction:column;align-items:center}.sheet-hint{margin:0;font-size:13px;color:var(--muted)}.sheet-hint:not(:empty){margin-bottom:8px}.sheet-foot .pill{width:100%;max-width:320px}@media (min-width: 560px){.sheet-back{align-items:center}.sheet{border-radius:26px;max-height:76vh;max-height:76dvh}}@media (max-height: 520px){.sheet{max-height:96vh;max-height:96dvh}.sheet-grab{margin:6px auto 0}.sheet-head{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:12px;padding:4px 22px 2px}.sheet-head b{font-size:18px}.sheet-actions{margin:0 0 0 auto}.sheet-foot{padding:6px 22px 8px}.sheet-foot .pill{min-height:44px}}.visit{padding:11px 0;border-top:1px solid var(--line)}.visit:first-of-type{border-top:0}.visit-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.visit-top b{font-size:15px}.visit-top span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.visit-steps{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.visit-steps span{font-size:12px;color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px 9px}.visit-steps span.bad{color:var(--bad);border-color:var(--blush);background:var(--blush)}.lang{position:relative;display:inline-block}.lang-menu{position:absolute;left:50%;transform:translate(-50%);top:calc(100% + 8px);z-index:40;width:max(220px,100%);padding:6px;text-align:left;background:var(--card);border:1px solid var(--line-strong);border-radius:18px;box-shadow:0 16px 38px #232b1d29}.lang-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px;background:none;border:0;border-radius:12px;cursor:pointer;text-align:left}.lang-row:hover{background:var(--paper)}.lang-row b{display:block;font-size:15px;font-weight:600}.lang-row small{display:block;font-size:12px;color:var(--muted);margin-top:1px;white-space:nowrap}.lang-row .tick{width:18px;flex:none;color:var(--ink);font-weight:700;font-size:13px}.lang-row.on b{color:var(--accent)}.top-row{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}:root[data-theme=autumn]{--paper: #FDEFD9;--card: #FFF8EC;--line: #EBD6B4;--line-strong: #D9B98A;--ink: #3A2417;--ink-deep: #2A180E;--muted: #7A5C42;--accent: #882A0A;--ring: #B4491A;--blush: #FFE0C2;--sage: #B9AE7E;--sage-light: #EDE6CC;--good: #5A6B2F;--bad: #A5524C}:root[data-theme=autumn] .pill.primary{background:var(--accent);border-color:var(--accent);color:#fff3e0}:root[data-theme=autumn] .pill.primary:hover{background:#6e2208}html,.nav{transition:background-color .5s ease,color .5s ease}.falling{position:fixed;left:0;right:0;pointer-events:none;z-index:-1}.falling{top:0;bottom:0;overflow:hidden}.fall-leaf{position:absolute;top:0;opacity:0;line-height:0;animation-name:leaf-fall;animation-timing-function:linear;animation-iteration-count:infinite}.fall-leaf i{display:block;animation-name:leaf-sway;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}@keyframes leaf-fall{0%{transform:translate3d(0,-14vh,0) rotate(0);opacity:0}8%{opacity:.92}85%{opacity:.92}to{transform:translate3d(var(--drift, 40px),110vh,0) rotate(var(--spin, 220deg));opacity:0}}@keyframes leaf-sway{0%{transform:translate(-14px)}to{transform:translate(14px)}}.autumn-btn{display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:0 18px;border-radius:999px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);font-size:14px;font-weight:700;cursor:pointer;transition:background-color .4s,border-color .4s,color .4s}.autumn-btn:disabled{opacity:.45;cursor:default}.autumn-btn.on{border-color:var(--accent);color:var(--accent);background:var(--blush)}.autumn-btn .track{position:relative;width:34px;height:20px;border-radius:999px;background:var(--line-strong);transition:background-color .45s}.autumn-btn.on .track{background:var(--accent)}.autumn-btn .knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--card);transition:transform .45s cubic-bezier(.34,1.3,.64,1)}.autumn-btn.on .knob{transform:translate(14px)}.autumn-btn .leaf-ic{transition:transform .5s cubic-bezier(.34,1.3,.64,1)}@media (max-width: 560px){.autumn-btn{padding:0 16px}.logo{white-space:nowrap}}.autumn-btn.on .leaf-ic{transform:rotate(-18deg)}::view-transition-old(root){animation:none}::view-transition-new(root){animation:autumn-reveal .85s cubic-bezier(.22,.61,.36,1)}@keyframes autumn-reveal{0%{clip-path:circle(0 at var(--reveal-x, 50%) var(--reveal-y, 0px))}to{clip-path:circle(150vmax at var(--reveal-x, 50%) var(--reveal-y, 0px))}}:root[data-quiet="1"] .falling{display:none}@media (prefers-reduced-motion: reduce){.falling{display:none}::view-transition-new(root){animation:none}}.pull{display:flex;align-items:flex-end;justify-content:center;overflow:hidden;flex:none;width:100%;margin-bottom:-18px;padding-bottom:6px;font-size:12px;font-weight:600;color:var(--muted)}
