:root{--bg:#f2f4ec;--surface:#e4e9db;--ink:#1e2f26;--muted:#4c5a51;--accent:#8a4716;--accent-ink:#ffffff;--forest:#1e2f26;--on-forest:#eef1e6;--field:#d9d2e6;--liquid:#8a63c7;--mark:#e8dcc0;--step-small:clamp(0.8125rem,0.79rem + 0.1vw,0.875rem);--step-body:clamp(1.0625rem,1.02rem + 0.25vw,1.25rem);--step-lead:clamp(1.25rem,1.1rem + 0.6vw,1.5rem);--step-head:clamp(2.125rem,1.4rem + 2.6vw,3.5rem);--step-sub:clamp(1.625rem,1.3rem + 1.1vw,2.25rem);--m:clamp(16px,2.4vw,32px);--gap:12px;--ease:cubic-bezier(0.16,1,0.3,1);font-family:"STIX Two Text",Georgia,serif;color:var(--ink);background:var(--bg);}body[data-goal="focus"]{--field:#cfe2cf;--liquid:#8fd3a2;}body[data-goal="morning"]{--field:#f2d7b0;--liquid:#f0a43c;}*,*::before,*::after{box-sizing:border-box;}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}body{margin:0;font-size:var(--step-body);line-height:1.5;font-feature-settings:"kern","liga";}img{display:block;max-width:100%;height:auto;}::selection{background:var(--accent);color:var(--accent-ink);}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;}a{color:inherit;text-underline-offset:0.2em;text-decoration-thickness:1px;}h1,h2,h3{font-weight:400;letter-spacing:-0.026em;line-height:1.1;margin:0;text-wrap:balance;}p{margin:0;}mark{background:var(--mark);color:inherit;padding:0 0.15em;}.hp{position:absolute;left:-9999px;}html{scrollbar-color:var(--muted) var(--bg);}.notice{background:var(--forest);color:var(--on-forest);font-size:var(--step-small);padding:10px var(--m);text-align:center;}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;font:inherit;font-size:var(--step-body);font-weight:600;text-decoration:none;border:0;cursor:pointer;border-radius:0;transition:transform 0.25s var(--ease),background-color 0.25s var(--ease);}.btn:hover{transform:translateY(-2px);}.btn:active{transform:translateY(1px) scale(0.98);}.btn-accent{background:var(--accent);color:var(--accent-ink);}.btn-accent:hover{background:#733a10;}.btn-ink{background:var(--ink);color:var(--bg);}.btn-paper{background:var(--bg);color:var(--ink);}.stage{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);padding:var(--gap);}.column{min-width:0;}.vial-panel{position:sticky;top:var(--gap);height:calc(100svh - 2 * var(--gap) - 40px);background:var(--field);transition:background-color 1.6s var(--ease);display:flex;flex-direction:column;overflow:hidden;}.vial-field{position:relative;flex:1;}#vial{position:absolute;inset:0;width:100%;height:100%;touch-action:pan-y;cursor:grab;}#vial:active{cursor:grabbing;}.vial-fallback{display:none;position:absolute;inset:15%;width:70%;height:70%;object-fit:contain;}.no-webgl .vial-fallback{display:block;}.no-webgl #vial{display:none;}.vial-name{position:absolute;left:32px;top:28px;right:32px;max-width:22ch;transition:opacity 0.4s var(--ease);font-size:var(--step-sub);letter-spacing:-0.02em;font-style:italic;}.vial-bar{height:56px;flex:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:0 24px;background:var(--bg);font-size:var(--step-small);color:var(--ink);}.sheet{min-height:calc(100svh - 2 * var(--gap) - 40px);background:var(--surface);display:flex;flex-direction:column;padding:28px var(--m) 0;}.nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;font-size:var(--step-body);}.nav a{text-decoration:none;padding:8px 0;transition:color 0.2s;}.nav a:first-child{justify-self:start;}.nav a:last-child{justify-self:end;}.nav a:hover{color:var(--accent);}.wordmark{font-size:var(--step-sub);font-style:italic;letter-spacing:-0.03em;}.hero-copy{margin-top:26svh;text-align:center;display:flex;flex-direction:column;align-items:center;gap:22px;padding-bottom:18svh;}.hero-copy h1{font-size:var(--step-head);color:var(--accent);max-width:14ch;}.hero-copy .lead{max-width:40ch;font-size:var(--step-body);}section{padding:clamp(96px,12vw,180px) var(--m) 0;}.routines h2,.classes h2,.consult h2{font-size:var(--step-sub);}.tabs{display:flex;gap:28px;margin:28px 0 32px;flex-wrap:wrap;}.tabs button{font:inherit;font-size:var(--step-lead);background:none;border:0;padding:6px 0;color:var(--muted);cursor:pointer;position:relative;transition:color 0.25s;}.tabs button::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform 0.4s var(--ease);}.tabs button[aria-selected="true"]{color:var(--ink);font-weight:600;}.tabs button[aria-selected="true"]::after{transform:scaleX(1);}.tabs button:hover{color:var(--ink);}.routine{display:grid;grid-template-columns:minmax(0,0.9fr) minmax(0,1fr);gap:32px;align-items:start;}.plate{margin:0;aspect-ratio:1;overflow:hidden;background:var(--surface);}.plate img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:opacity 0.5s var(--ease),transform 1.2s var(--ease);}.plate img.swap{opacity:0;transform:scale(1.04);}.routine-text h3{font-size:var(--step-lead);font-weight:600;margin-bottom:14px;}.routine-text p{max-width:36ch;}.steps{list-style:none;padding:0;margin:22px 0 0;}.steps li{display:flex;justify-content:space-between;gap:16px;padding:8px 0;}.steps li span:last-child{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;}.cells{display:grid;grid-template-columns:1fr 1fr;margin-top:32px;}.cell{min-height:72px;display:flex;align-items:center;padding:0 24px;text-decoration:none;font-weight:600;transition:padding 0.3s var(--ease),background-color 0.3s;}.cell:hover{padding-left:34px;}.cell-ink{background:var(--ink);color:var(--bg);}.cell-soft{background:var(--surface);color:var(--ink);}.cell-soft:hover{background:#d7ddcc;}.letter{max-width:calc(520px + 2 * var(--m));margin:0 auto;}.portrait{width:44px;height:44px;border-radius:50%;object-fit:cover;margin-bottom:28px;}.letter>p{max-width:46ch;margin-bottom:1.4em;line-height:1.55;}.letter .signoff{font-size:var(--step-lead);font-style:italic;margin:8px 0 0;}.letter .role{font-size:var(--step-small);color:var(--muted);}.tearoff{margin-top:48px;background:var(--surface);padding:28px 24px;display:grid;gap:16px;clip-path:polygon(0 10px,2% 0,4% 10px,6% 0,8% 10px,10% 0,12% 10px,14% 0,16% 10px,18% 0,20% 10px,22% 0,24% 10px,26% 0,28% 10px,30% 0,32% 10px,34% 0,36% 10px,38% 0,40% 10px,42% 0,44% 10px,46% 0,48% 10px,50% 0,52% 10px,54% 0,56% 10px,58% 0,60% 10px,62% 0,64% 10px,66% 0,68% 10px,70% 0,72% 10px,74% 0,76% 10px,78% 0,80% 10px,82% 0,84% 10px,86% 0,88% 10px,90% 0,92% 10px,94% 0,96% 10px,98% 0,100% 10px,100% 100%,0 100%);padding-top:40px;}.tearoff label{max-width:46ch;}.tearoff-row{display:flex;gap:8px;flex-wrap:wrap;}.tearoff-row input{flex:1 1 220px;}input,select{font:inherit;font-size:var(--step-body);min-height:52px;padding:0 14px;border:1px solid #93a094;background:#fbfcf8;color:var(--ink);border-radius:0;width:100%;transition:border-color 0.2s,box-shadow 0.2s;}input::placeholder{color:#6b776e;}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(138,71,22,0.25);}input:user-invalid{border-color:#c4462a;}.classes .intro{margin:14px 0 36px;max-width:42ch;color:var(--muted);}.group + .group{margin-top:40px;}.group-name{color:var(--muted);margin-bottom:6px;}.rows{list-style:none;margin:0;padding:0;}.row{width:100%;display:grid;grid-template-columns:16px 1fr auto;gap:10px;align-items:baseline;min-height:44px;padding:8px 0;background:none;border:0;font:inherit;font-size:var(--step-body);text-align:left;color:var(--ink);cursor:pointer;transition:transform 0.3s var(--ease);}.row:hover{transform:translateX(8px);}.row:hover .name{text-decoration:underline;text-underline-offset:0.2em;}.row .val{font-size:var(--step-small);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;}.dot{width:12px;height:12px;border-radius:50%;align-self:center;}.d1{background:#9b7cc9;}.d2{background:#4f9a63;}.d3{background:#d98a26;}.row.picked .name::after{content:" · saved below";color:var(--accent);}.first-month{display:grid;gap:40px;}.month-copy h2{font-size:var(--step-head);margin-bottom:18px;}.month-copy p{max-width:34ch;}.slip{background:var(--forest);padding:24px;}.slip-paper{background:var(--bg);color:var(--ink);padding:8px 28px 36px;font-variant-numeric:tabular-nums;clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),96% 100%,92% calc(100% - 12px),88% 100%,84% calc(100% - 12px),80% 100%,76% calc(100% - 12px),72% 100%,68% calc(100% - 12px),64% 100%,60% calc(100% - 12px),56% 100%,52% calc(100% - 12px),48% 100%,44% calc(100% - 12px),40% 100%,36% calc(100% - 12px),32% 100%,28% calc(100% - 12px),24% 100%,20% calc(100% - 12px),16% 100%,12% calc(100% - 12px),8% 100%,4% calc(100% - 12px),0 100%);}.slip-day{font-weight:600;margin-top:26px;margin-bottom:6px;}.slip-day:first-child{margin-top:20px;}.slip-row{display:flex;align-items:baseline;gap:8px;padding:4px 0;}.slip-row span:last-child,.slip-total span:last-child{white-space:nowrap;}.slip-row i{flex:1;height:4px;align-self:center;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='4'%3E%3Ccircle cx='2' cy='2' r='1.6' fill='%234c5a51'/%3E%3C/svg%3E");background-size:8px 4px;background-repeat:repeat-x;min-width:24px;}.slip-total{display:flex;justify-content:space-between;align-items:center;background:var(--ink);color:#fbfaf4;min-height:48px;padding:0 14px;margin-top:26px;margin-bottom:24px;font-weight:600;}.class-img{width:100%;aspect-ratio:16 / 9;object-fit:cover;margin-bottom:36px;}.faq h2{font-size:var(--step-sub);margin-bottom:28px;}.faq-text p{max-width:52ch;margin-bottom:20px;line-height:1.55;}.faq-text b{font-weight:600;}.consult{margin-top:clamp(96px,12vw,180px);background:var(--forest);color:var(--on-forest);padding:clamp(48px,6vw,80px) var(--m);}.consult-sub{margin:14px 0 32px;max-width:42ch;color:#cfd8cc;}.form{display:grid;gap:18px;max-width:520px;}.form label{display:grid;gap:8px;}.form .btn{justify-self:start;margin-top:8px;}.form .fine{font-size:var(--step-small);color:#cfd8cc;}.consult input,.consult select{border-color:#7d8d80;}.consult .btn-accent{background:#c7752e;color:#1a120a;}.consult .btn-accent:hover{background:#d98a43;}.share{position:relative;height:90svh;min-height:560px;overflow:hidden;padding:0;margin-top:var(--gap);}.share-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:30% 50%;filter:brightness(0.72);transform:scale(1.06);}.share-text{position:absolute;left:58%;right:var(--m);bottom:16%;color:#fff;display:grid;gap:18px;justify-items:start;}.share-text h2{font-size:var(--step-head);max-width:14ch;}.share-text p{max-width:38ch;}.footer{display:grid;grid-template-columns:1fr 1fr;min-height:100svh;background:var(--surface);}.footer-img{width:100%;height:100%;object-fit:cover;}.footer-menu{padding:64px var(--m) 32px clamp(24px,6vw,96px);display:flex;flex-direction:column;}.footer-mark{font-style:italic;font-size:var(--step-lead);margin-bottom:40px;}.footer-menu ul{list-style:none;padding:0;margin:0;display:grid;gap:20px;}.footer-menu ul a{font-size:var(--step-sub);text-decoration:none;display:inline-block;transition:transform 0.3s var(--ease),color 0.3s;}.footer-menu ul:hover a{color:var(--muted);}.footer-menu ul a:hover{transform:translateX(12px);color:var(--ink);}.footer-blocks{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:64px;font-size:var(--step-small);}.legal{max-width:60ch;margin-top:auto;padding-top:48px;font-size:var(--step-small);color:var(--muted);line-height:1.5;}.reveal{opacity:0;transform:translateY(24px);transition:opacity 0.8s var(--ease),transform 0.8s var(--ease);transition-delay:var(--d,0ms);}.reveal.in{opacity:1;transform:none;}.no-js .reveal{opacity:1;transform:none;}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}.vial-panel,.plate img{transition:none;}}@media (max-width:860px){.stage{grid-template-columns:1fr;padding:var(--gap);}.vial-panel{position:relative;top:0;order:-1;height:40svh;min-height:300px;}.vial-name{left:20px;top:16px;}.vial-bar{display:none;}.sheet{min-height:auto;padding-top:22px;}.nav{font-size:0.95rem;}.hero-copy{margin-top:28px;padding-bottom:40px;gap:16px;}.hero-copy h1{font-size:9vw;}.hero-copy .btn{width:100%;}.routine{grid-template-columns:1fr;}.cells{grid-template-columns:1fr;}.cell{min-height:60px;}.row{grid-template-columns:16px 1fr;}.row .val{grid-column:2;}.slip{padding:14px;}.slip-paper{padding:4px 18px 30px;}.share{height:auto;min-height:0;}.share-img{position:relative;height:70svh;transform:none;}.share-text{position:static;background:var(--forest);padding:40px var(--m);}.share-text .btn{width:100%;}.footer{grid-template-columns:1fr;}.footer-img{height:50svh;}.footer-menu ul a{font-size:8vw;}.footer-blocks{grid-template-columns:1fr;}.form .btn{width:100%;}}