*,*:before,*:after{box-sizing:border-box}*{margin:0}html{interpolate-size:allow-keywords}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p{overflow-wrap:break-word;text-wrap:pretty}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;text-wrap:balance}#root,#app{isolation:isolate}:root{--amber: #a85c12;--amber-deep: #7a3f08;--amber-glow: #d98324;--cream: #f6efdd;--cream-shade: #efe4c9;--cream-edge: #e3d5b3;--moss: #5f7343;--moss-light: #86a05e;--slate: #2b3138;--slate-soft: #4b555f;--paper: var(--cream);--paper-card: #fbf6e9;--ink: var(--slate);--ink-soft: var(--slate-soft);--rule: rgb(43 49 56 / 9%);--edge: rgb(43 49 56 / 14%);--accent: var(--amber);--accent-quiet: var(--moss);--font-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Cantarell, "Helvetica Neue", sans-serif;--radius: 6px;--line-height-rule: 28px;font-family:var(--font-body);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--paper: #262b31;--paper-card: #2e343b;--ink: #f0e7d2;--ink-soft: #b9b0a0;--rule: rgb(240 231 210 / 8%);--edge: rgb(240 231 210 / 16%);--accent: #e09a3f;--accent-quiet: var(--moss-light);--cream-edge: #1a1e22}}body{min-height:100dvh;color:var(--ink);background-color:#22272c;background-image:repeating-linear-gradient(92deg,rgb(255 255 255 / 2%) 0 2px,transparent 2px 7px),radial-gradient(circle at 20% 0%,#2f363d,#1d2125 70%)}.counter{padding:clamp(.75rem,3vw,2.5rem) clamp(.5rem,3vw,2rem)}.sheet-stack{max-width:66rem;margin-inline:auto;background-color:var(--paper);background-image:repeating-linear-gradient(transparent 0 calc(var(--line-height-rule) - 1px),var(--rule) calc(var(--line-height-rule) - 1px) var(--line-height-rule));border:1px solid var(--cream-edge);border-radius:3px;box-shadow:0 1px #ffffff40 inset,0 18px 40px #00000059,0 2px 6px #00000040;padding:clamp(1rem,4vw,2.75rem);position:relative;overflow:hidden}.sheet-stack:before{content:"";position:absolute;inset-block:0;left:clamp(.6rem,2.5vw,1.6rem);width:1px;background-color:color-mix(in srgb,var(--moss) 45%,transparent)}.masthead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:2px solid var(--edge)}.masthead__mark{font-family:var(--font-serif);font-size:clamp(1.75rem,5vw,2.6rem);font-weight:600;letter-spacing:-.01em;color:var(--amber-deep)}@media(prefers-color-scheme:dark){.masthead__mark{color:var(--accent)}}.masthead__tag{font-family:var(--font-serif);font-style:italic;color:var(--ink-soft);font-size:.95rem}.tabs{display:flex;gap:.35rem;padding:.25rem;background-color:color-mix(in srgb,var(--ink) 6%,transparent);border-radius:999px}.tabs__link{padding:.4rem .95rem;border-radius:999px;font-size:.9rem;font-weight:600;text-decoration:none;color:var(--ink-soft);transition:background-color .14s ease,color .14s ease,transform .14s ease}.tabs__link:hover{color:var(--ink);background-color:color-mix(in srgb,var(--amber) 14%,transparent)}.tabs__link:active{transform:scale(.97)}.tabs__link.active{color:var(--cream);background-color:var(--amber);box-shadow:0 1px 3px #00000040}@media(prefers-color-scheme:dark){.tabs__link.active{color:#22272c}}.sheet{padding-block:1.5rem}.hero{position:relative;overflow:hidden;text-align:center;padding:clamp(1.25rem,5vw,2.5rem) 1rem;margin-bottom:1.75rem;border:1px solid var(--edge);border-radius:var(--radius);background-image:radial-gradient(120% 140% at 50% 120%,color-mix(in srgb,var(--amber) 18%,transparent) 0%,transparent 70%)}.hero__label{font-family:var(--font-serif);font-style:italic;color:var(--ink-soft);letter-spacing:.02em}.hero__number{display:flex;align-items:baseline;justify-content:center;gap:.4rem;margin-block:.1rem .35rem}.hero__value{font-family:var(--font-mono);font-size:clamp(3.5rem,16vw,6.5rem);font-weight:700;line-height:1;letter-spacing:-.04em;color:var(--amber-deep);font-variant-numeric:tabular-nums;text-shadow:0 1px 0 rgb(255 255 255 / 40%)}@media(prefers-color-scheme:dark){.hero__value{color:var(--accent);text-shadow:none}}.hero__unit{font-family:var(--font-mono);font-size:clamp(.9rem,3vw,1.2rem);font-weight:600;color:var(--ink-soft);letter-spacing:.04em}.hero__gravities{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-mono);font-size:.9rem;color:var(--ink-soft)}.hero__gravities strong{color:var(--ink);font-variant-numeric:tabular-nums}.hero__arrow,.hero__sep{color:var(--accent-quiet)}.hero__plato{margin-top:.35rem;font-family:var(--font-serif);font-style:italic;font-size:.85rem;color:var(--ink-soft)}.hero--log .hero__value{font-size:clamp(2.75rem,12vw,4.5rem)}.bubbles{position:absolute;inset:0;pointer-events:none}.bubbles__bubble{position:absolute;bottom:-14px;border-radius:50%;background-image:radial-gradient(circle at 35% 30%,#ffffffd9,color-mix(in srgb,var(--amber-glow) 55%,transparent) 60%,color-mix(in srgb,var(--amber) 35%,transparent));box-shadow:0 0 0 1px color-mix(in srgb,var(--amber) 25%,transparent);opacity:0;animation:bubble-rise 1.5s cubic-bezier(.32,.06,.4,1) forwards}@keyframes bubble-rise{0%{transform:translateY(0) scale(.5);opacity:0}18%{opacity:.8}70%{opacity:.5}to{transform:translateY(-190px) scale(1.1);opacity:0}}.switches{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.segmented{border:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.segmented__legend{font-family:var(--font-serif);font-style:italic;font-size:.85rem;color:var(--ink-soft);padding-right:.5rem;float:left;width:100%}.segmented__option{position:relative;padding:.4rem .9rem;border:1px solid var(--edge);border-radius:999px;font-size:.85rem;font-weight:600;color:var(--ink-soft);background-color:color-mix(in srgb,var(--paper-card) 70%,transparent);cursor:pointer;transition:background-color .14s ease,color .14s ease,transform .12s ease,box-shadow .14s ease}.segmented__option:hover{color:var(--ink);border-color:color-mix(in srgb,var(--amber) 45%,transparent);transform:translateY(-1px)}.segmented__option:active{transform:translateY(0) scale(.98)}.segmented__option.is-active{background-color:var(--moss);border-color:var(--moss);color:var(--cream);box-shadow:0 1px 3px #00000038}.segmented__option input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.segmented__option:focus-within{outline:2px solid var(--accent);outline-offset:2px}.segmented--tight{margin-bottom:.25rem}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1rem;align-items:start}.card{display:flex;flex-direction:column;gap:.6rem;padding:1rem 1.1rem .9rem;background-color:var(--paper-card);border:1px solid var(--edge);border-radius:var(--radius);box-shadow:0 1px 2px #2b313814;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--amber) 35%,transparent);box-shadow:0 8px 18px #2b313824}.card:active{transform:translateY(0)}.card__head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.card__title{font-family:var(--font-serif);font-size:1.05rem;font-weight:600;color:var(--ink)}.card__reading{display:flex;align-items:baseline;gap:.2rem;white-space:nowrap}.card__value{font-family:var(--font-mono);font-size:1.6rem;font-weight:700;letter-spacing:-.03em;color:var(--amber-deep);font-variant-numeric:tabular-nums}@media(prefers-color-scheme:dark){.card__value{color:var(--accent)}}.card__unit{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--ink-soft)}.card__aside,.card__meta{font-size:.8rem;color:var(--ink-soft);font-family:var(--font-mono)}.card__meta{font-family:var(--font-serif);font-style:italic;font-size:.85rem}.card__inputs{display:flex;flex-direction:column;gap:.6rem}.card__formula{margin-top:auto;padding-top:.6rem;border-top:1px dashed color-mix(in srgb,var(--moss) 40%,transparent);font-family:var(--font-serif);font-size:.85rem;line-height:1.45;color:var(--ink-soft)}.card__formula-label{display:block;font-family:var(--font-body);font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-quiet);margin-bottom:.2rem}.card--form,.card--batch{grid-column:1 / -1}.card--form{margin-bottom:1.5rem}.card__delete{align-self:flex-start;color:color-mix(in srgb,var(--amber-deep) 80%,var(--ink))}.field{display:flex;flex-direction:column;gap:.2rem}.field__label{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}input,select,textarea{font-family:var(--font-mono);font-size:.95rem;color:var(--ink);background-color:color-mix(in srgb,var(--paper) 92%,transparent);border:1px solid var(--edge);border-bottom-width:2px;border-radius:4px;padding:.45rem .55rem;width:100%;transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease}textarea{font-family:var(--font-serif);resize:vertical}input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--amber) 40%,transparent)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--amber) 22%,transparent)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.75rem}.check{display:flex;align-items:flex-start;gap:.5rem;font-size:.85rem;color:var(--ink-soft);cursor:pointer}.check input{width:auto;accent-color:var(--moss);margin-top:.15rem}.note{font-family:var(--font-serif);font-style:italic;font-size:.85rem;color:var(--ink-soft)}.note--empty{padding:1.25rem;border:1px dashed var(--edge);border-radius:var(--radius);text-align:center;font-size:.95rem}.button{align-self:flex-start;padding:.5rem 1.1rem;border:1px solid var(--amber-deep);border-radius:999px;background-color:var(--amber);color:var(--cream);font-size:.9rem;font-weight:600;cursor:pointer;transition:background-color .14s ease,transform .12s ease,box-shadow .14s ease}.button:hover{background-color:var(--amber-glow);transform:translateY(-1px);box-shadow:0 4px 10px #2b313833}.button:active{transform:translateY(0) scale(.98);box-shadow:none}.button--quiet{background-color:transparent;border-color:var(--edge);color:var(--ink-soft)}.button--quiet:hover{background-color:color-mix(in srgb,var(--moss) 16%,transparent);color:var(--ink);border-color:var(--moss)}.button--ghost{background-color:transparent;border-color:transparent;color:var(--ink-soft);padding:.2rem .5rem;font-size:1rem;line-height:1}.button--ghost:hover{background-color:color-mix(in srgb,var(--amber) 14%,transparent);color:var(--ink);box-shadow:none}.button:disabled{opacity:.35;cursor:not-allowed;transform:none}.chips{display:flex;flex-wrap:wrap;gap:.35rem}.chip{padding:.25rem .6rem;border:1px solid var(--edge);border-radius:999px;background-color:transparent;font-family:var(--font-mono);font-size:.75rem;color:var(--ink-soft);cursor:pointer;transition:background-color .14s ease,color .14s ease,transform .12s ease}.chip:hover{background-color:color-mix(in srgb,var(--amber) 16%,transparent);color:var(--ink);transform:translateY(-1px)}.chip:active{transform:translateY(0) scale(.96)}.bill{display:flex;flex-direction:column;gap:.5rem}.bill__list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}.bill__row{display:grid;grid-template-columns:minmax(0,1fr) 4.5rem 4rem auto;gap:.35rem;align-items:end}.bill__remove{padding-bottom:.45rem}.save{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-top:1.75rem;padding-top:1.25rem;border-top:2px solid var(--edge)}.save__field{flex:1 1 14rem}.log{list-style:none;padding:0;display:flex;flex-direction:column;gap:1rem}.readings{list-style:none;padding:0;display:flex;flex-direction:column;gap:.15rem}.readings__row{display:grid;grid-template-columns:1fr auto auto;gap:.5rem;align-items:center;padding:.2rem .35rem;border-radius:4px;font-family:var(--font-mono);font-size:.85rem;transition:background-color .14s ease}.readings__row:hover{background-color:color-mix(in srgb,var(--moss) 10%,transparent)}.readings__date{color:var(--ink-soft)}.readings__value{font-weight:700;font-variant-numeric:tabular-nums}.reading-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem;padding:.6rem;border:1px dashed var(--edge);border-radius:var(--radius)}.reading-form .field{flex:1 1 8rem}.chart{margin:0}.chart__svg{width:100%;height:auto;overflow:visible}.chart__axis{stroke:var(--edge);stroke-width:1}.chart__area{fill:color-mix(in srgb,var(--amber) 18%,transparent)}.chart__line{fill:none;stroke:var(--amber);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.chart__dot{fill:var(--paper-card);stroke:var(--amber-deep);stroke-width:2}@media(prefers-color-scheme:dark){.chart__dot{stroke:var(--accent)}}.chart__tick{fill:var(--ink-soft);font-family:var(--font-mono);font-size:8px}.chart__caption,.chart__empty{font-family:var(--font-serif);font-style:italic;font-size:.8rem;color:var(--ink-soft)}.colophon{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--edge);font-family:var(--font-serif);font-style:italic;font-size:.8rem;color:var(--ink-soft)}.page{max-width:40rem;margin:clamp(1rem,6vw,4rem) auto;padding:2rem;background-color:var(--paper);border-radius:3px;box-shadow:0 18px 40px #00000059;color:var(--ink)}.page h1{font-family:var(--font-mono);font-size:3rem;color:var(--amber-deep)}@media(prefers-color-scheme:dark){.page h1{color:var(--accent)}}.page a{color:var(--moss)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
