.calc-h{--ring:min(100%, 24rem);--curve-h:18rem;gap:1.25rem;min-width:0;display:grid}.calc-h-ring{grid-template-columns:minmax(0,1fr);justify-items:center;min-width:0;display:grid}.calc-h-summary{text-align:center;justify-self:center;justify-items:center;gap:.875rem;width:100%;max-width:36rem;display:grid}.calc-h-tabs,.calc-h-footer{min-width:0}@media (width>=48rem){.calc-h{--ring:20rem;--curve-h:16rem;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:1.75rem 2.5rem}.calc-h-summary{text-align:left;justify-self:start;justify-items:start}.calc-h-tabs,.calc-h-footer{grid-column:1/-1}}.calc-j{--ring:clamp(18.75rem, min(30vw, 100svh - 29rem), 34rem);--curve-h:calc(var(--ring) * .6);grid-template-columns:auto minmax(0,1fr);grid-template-areas:"ring side""cells cells";align-items:center;gap:1.5rem 3rem;min-width:0;display:grid}.calc-j-ring{grid-area:ring;min-width:0}.calc-j-side{grid-area:side;align-content:center;gap:1rem;min-width:0;display:grid}.calc-j-cells{border:0;grid-area:cells;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;min-width:0;margin:0;padding:0;display:grid}.calc-j-cells>.is-opener{grid-column:span 2}.calc-j-cells>.cell{min-height:4.25rem;padding-block:.5rem}@media (width>=90rem){.calc-j{gap:2.5rem 4rem}.calc-j-cells{grid-template-columns:repeat(5,minmax(0,1fr));gap:1.25rem}.calc-j-cells>.is-opener{grid-column:auto}.calc-j-cells>.cell{min-height:5.5rem;padding-block:.75rem}}@media (width>=112.5rem){.calc-j{gap:3rem 5rem}.calc-j-cells{gap:1.5rem}}.calc-j.has-drawer{padding-right:calc(var(--drawer-width) + 1.5rem);grid-template-areas:"ring.""cells cells"}.calc-j.has-drawer .calc-j-side,.calc-j.has-drawer .calc-j-cells>.is-opener{display:none}.calc-j.has-drawer .calc-j-cells{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr))}.calc-line{max-width:48ch;font-size:var(--text-sm);color:var(--text-muted);text-wrap:balance;min-height:3em;margin:0}.calc-line.is-fresh{animation:.5s ease-out calc-fresh}@keyframes calc-fresh{0%{opacity:0;transform:translateY(.25rem)}}.calc-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.calc-h-summary .calc-row{justify-content:center}@media (width>=48rem){.calc-h-summary .calc-row{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){.calc-line.is-fresh{animation:none}}.tabs{gap:1rem;min-width:0;display:grid}.tabs-list{border:1px solid var(--border);background:var(--bg-sunken);border-radius:999px;padding:.25rem;display:grid;position:relative}.tabs-thumb{background:var(--bg-elevated);box-shadow:0 0 0 1px var(--border);transition:transform var(--motion-slow) cubic-bezier(.3, .7, .2, 1);border-radius:999px;position:absolute;top:.25rem;bottom:.25rem;left:.25rem}.tabs-tab{min-height:2.75rem;color:var(--text-muted);font-size:var(--text-sm);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 .25rem;font-weight:500;position:relative}.tabs-tab[aria-selected=true]{color:var(--text);font-weight:600}.tabs-tab:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.tabs-panels{min-width:0;display:grid}.tabs-panel{align-content:start;gap:1.25rem;min-width:0;display:grid}.tabs-panel[hidden]{display:none}.tabs-panel.is-framed{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);padding:1rem}.tabs-panels.is-stacked>.tabs-panel{grid-area:1/1}.tabs-panels.is-stacked>.tabs-panel:not(.is-active){visibility:hidden}.tabs-panels.is-stacked>.tabs-panel.is-active{animation:tabs-in var(--motion-slow) ease-out}@keyframes tabs-in{0%{opacity:0}}@media (width>=30rem){.tabs-panel.is-framed{padding:1.25rem 1.5rem}}.drawer{z-index:30;width:var(--drawer-width);background:var(--bg-elevated);border-left:1px solid var(--border);outline:none;display:grid;position:fixed;top:0;bottom:0;right:0}.drawer.is-open{animation:drawer-in var(--motion-slow) cubic-bezier(.3, .7, .2, 1)}.drawer[hidden]{display:none}@keyframes drawer-in{0%{transform:translate(100%)}}.drawer-body{overscroll-behavior:contain;padding:1rem 1.25rem 2rem;overflow-y:auto}.drawer-close{border:1px solid var(--border);background:var(--bg-elevated);width:2.75rem;height:2.75rem;color:var(--text);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:absolute;top:1rem;right:1.25rem}.drawer-close:hover{border-color:var(--text-muted)}.drawer-close svg{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;width:1rem;height:1rem}.drawer .tabs-list{margin-right:3.5rem}.cell{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);text-align:left;min-width:0;min-height:5rem;transition:border-color var(--motion-fast), background-color var(--motion-fast);align-content:center;gap:.125rem;padding:.625rem 1rem;display:grid}.cell:focus-within{border-color:var(--focus);box-shadow:inset 0 -2px 0 var(--focus)}.cell-label{min-width:0;font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cell.is-rate .cell-label{color:var(--text);font-weight:600}.cell-box{align-items:baseline;gap:.25rem;min-width:0;display:flex}.cell-input,.cell-value{width:100%;min-width:0;color:var(--text);font-family:var(--font-stack-display);font-weight:var(--display-weight);font-size:var(--text-xl);white-space:nowrap;background:0 0;border:0;outline:none;flex:1;padding:0;line-height:1.3}.cell-unit{font-size:var(--text-sm);color:var(--text-muted);flex:none}.cell-error{font-size:var(--text-xs);color:var(--negative)}.cell.is-invalid{border-style:dashed;border-color:var(--negative)}.cell.is-output{background:var(--bg-sunken)}.cell.is-opener{cursor:pointer;color:var(--text);font:inherit}.cell.is-opener:hover,.cell.is-opener[aria-expanded=true]{border-color:var(--text-muted);background:var(--bg-sunken)}.cell.is-opener:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.cell-title{font-family:var(--font-stack-display);font-weight:var(--display-weight);font-size:var(--text-xl);line-height:1.3}.cell-chevron{color:var(--text-muted);margin-left:.375rem}@media (width>=90rem){.cell{min-height:5.5rem;padding:.75rem 1.25rem}.cell-input,.cell-value,.cell-title{font-size:var(--text-2xl)}}@media (prefers-reduced-motion:reduce){.tabs-thumb,.cell{transition:none}.tabs-panels.is-stacked>.tabs-panel.is-active,.drawer.is-open{animation:none}}.inst{text-align:center;grid-template-columns:minmax(0,1fr);justify-items:center;gap:.375rem;width:100%;min-width:0;display:grid}.inst-ring{width:var(--ring,min(100%, 22rem));aspect-ratio:1;touch-action:pan-y;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;position:relative;container-type:inline-size}.inst-svg{width:100%;height:100%;display:block;position:relative;overflow:visible}.inst-svg *{pointer-events:none}.inst-layer{transform-box:view-box;transform-origin:0 0}.inst-layer.is-over:not(.is-off) .inst-goal-hit{pointer-events:all}.inst-ghost{font-family:var(--font-stack-display);letter-spacing:-.04em;opacity:0;pointer-events:none;transition:opacity var(--motion-slow) ease-out;place-items:center;font-size:34cqw;font-weight:300;line-height:1;display:grid;position:absolute;inset:0}.inst-ring.is-away .inst-ghost{opacity:var(--ghost-opacity)}.inst-track{fill:none;stroke:var(--border);stroke-width:10px;transition:stroke var(--motion-fast)}.inst-start{stroke:var(--text);stroke-width:2px}.inst-arc{fill:none;stroke-width:10px;stroke-linecap:round}.inst-arc-today{stroke:var(--accent)}.inst-arc-future{stroke:var(--future);opacity:var(--future-opacity)}.inst-spin{transform-box:view-box;transform-origin:0 0}.inst-ring.is-closed .inst-spin{animation:4.8s ease-in-out infinite inst-breathe}@keyframes inst-breathe{50%{opacity:.74}}.inst-goal{cursor:pointer;outline:none}.inst-goal-hit{fill:#0000}.inst-goal-ring{fill:var(--bg-elevated);stroke:var(--border);stroke-width:3px;transition:fill var(--motion-slow), stroke var(--motion-slow)}.inst-goal.is-active .inst-goal-ring{stroke:var(--accent);stroke-opacity:.45}.inst-goal.is-done .inst-goal-ring{fill:var(--accent);stroke:var(--accent);stroke-opacity:1}.inst-goal.is-lit .inst-goal-ring{fill:var(--future);stroke:var(--future)}.inst-goal-arc{fill:none;stroke:var(--accent);stroke-width:3px}.inst-goal-n{font:600 14px var(--font-stack-text);fill:var(--text-muted);font-variant-numeric:tabular-nums}.inst-goal.is-done .inst-goal-n,.inst-goal.is-lit .inst-goal-n{fill:var(--bg)}.inst-goal.is-active .inst-goal-n{fill:var(--text)}.inst-goal[data-goal]:hover .inst-goal-ring,.inst-goal[data-goal]:focus-visible .inst-goal-ring{stroke:var(--text);stroke-opacity:1}.inst-goal[data-goal]:focus-visible .inst-goal-ring{stroke-width:4px}.inst-dial-track{fill:none;stroke:var(--rate-track);stroke-width:1.5px}.inst-dial-arc{fill:none;stroke:var(--dial-quiet);stroke-width:2px;stroke-linecap:round;opacity:.75;transition:stroke var(--motion-fast), stroke-width var(--motion-fast), opacity var(--motion-fast)}.inst-dial-tick{stroke:var(--rate-track);stroke-width:1.5px;opacity:0;transition:opacity var(--motion-fast)}.inst-dial-before{fill:var(--text-muted);opacity:.6}.inst-dial-knob{fill:var(--bg-elevated);stroke:var(--dial-quiet);stroke-width:2px;transform-box:fill-box;transform-origin:50%;transition:stroke var(--motion-fast), transform var(--motion-fast)}.inst-ring[data-hot=dial] .inst-dial-arc,.inst-ring.is-drag-dial .inst-dial-arc,.inst-ring:has(.inst-khit-dial:focus-visible) .inst-dial-arc{stroke:var(--dial-on);stroke-width:3px;opacity:1}.inst-ring[data-hot=dial] .inst-dial-tick,.inst-ring.is-drag-dial .inst-dial-tick,.inst-ring:has(.inst-khit-dial:focus-visible) .inst-dial-tick{opacity:1}.inst-ring[data-hot=dial] .inst-dial-knob,.inst-ring.is-drag-dial .inst-dial-knob,.inst-ring:has(.inst-khit-dial:focus-visible) .inst-dial-knob{stroke:var(--dial-on);transform:scale(1.3)}.inst-ring:has(.inst-khit-dial:focus-visible) .inst-dial-knob{stroke:var(--focus);stroke-width:3px}.inst-bead-dot{fill:var(--bg-elevated);stroke:var(--accent);stroke-width:3px;transform-box:fill-box;transform-origin:50%;transition:transform var(--motion-fast)}.inst-bead-halo{fill:var(--accent-strong);opacity:0;transition:opacity var(--motion-fast)}.inst-ring[data-hot=time] .inst-layer:not(.is-off) .inst-track,.inst-ring.is-drag-time .inst-layer:not(.is-off) .inst-track{stroke:var(--rate-track)}.inst-ring[data-hot=time] .inst-bead-dot,.inst-ring.is-drag-time .inst-bead-dot,.inst-ring:has(.inst-khit-time:focus-visible) .inst-bead-dot{transform:scale(1.3)}.inst-ring[data-hot=time] .inst-bead-halo,.inst-ring.is-drag-time .inst-bead-halo,.inst-ring:has(.inst-khit-time:focus-visible) .inst-bead-halo{opacity:.22}.inst-ring:has(.inst-khit-time:focus-visible) .inst-bead-dot{stroke:var(--text)}.inst-khit{aspect-ratio:1;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent;border-radius:50%;outline:none;width:max(2.875rem,14.5cqw);position:absolute;transform:translate(-50%,-50%)}.inst-ring.is-drag-dial,.inst-ring.is-drag-time,.inst-ring.is-drag-dial .inst-khit,.inst-ring.is-drag-time .inst-khit{cursor:grabbing}.inst-ring[data-hot=dial],.inst-ring[data-hot=time]{cursor:grab}.inst-ring[data-hot=goal],.inst-ring[data-hot=centre]{cursor:pointer}.inst-centre{--fit:1;border-radius:var(--radius-md);min-width:2.75rem;min-height:2.75rem;color:var(--text);font:inherit;white-space:nowrap;-webkit-tap-highlight-color:transparent;background:0 0;border:0;justify-items:center;padding:0;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}button.inst-centre{cursor:pointer}button.inst-centre:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.inst-top{font-size:max(var(--text-xs), 4.2cqw);color:var(--text-muted);line-height:1.25}.inst-big{font-family:var(--font-stack-display);font-weight:var(--display-weight);font-size:calc(max(var(--text-5xl), 16.4cqw) * var(--fit));letter-spacing:-.02em;line-height:1}.inst-unit{font-family:var(--font-stack-text);font-weight:400;font-size:max(var(--text-lg), 5.6cqw);letter-spacing:0;color:var(--text-muted)}.inst-ring[data-hot=centre] .inst-big{text-underline-offset:.3em;text-decoration:underline 1px;text-decoration-color:var(--border)}.inst-tip{background:var(--text);color:var(--bg);font-size:var(--text-xs);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--motion-fast);border-radius:999px;padding:.125rem .625rem;font-weight:500;position:absolute;top:0;left:0}.inst-tip.is-on{opacity:1}.inst-when{max-width:32rem;min-height:1.5em;inline-size:0;min-inline-size:100%;font-size:var(--text-sm);color:var(--text-muted);text-wrap:balance;margin:0}.inst-row{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.inst-btn{border:1px solid var(--border);background:var(--bg-elevated);min-width:2.75rem;min-height:2.75rem;color:var(--text);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--motion-fast);border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:0 1.125rem;font-weight:500;display:inline-flex}.inst-btn:hover{border-color:var(--text-muted)}.inst-btn-play{background:var(--text);border-color:var(--text);color:var(--bg)}.inst-btn-play:hover{border-color:var(--text)}.inst-btn-play:disabled{opacity:.4;cursor:default}.inst-btn-icon{fill:currentColor;width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.inst-ring.is-closed .inst-spin{animation:none}.inst-ghost,.inst-track,.inst-goal-ring,.inst-dial-arc,.inst-dial-tick,.inst-dial-knob,.inst-bead-dot,.inst-bead-halo,.inst-tip,.inst-btn{transition:none}}.rate-trio{border-block:1px solid var(--border);text-align:center;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:26rem;padding-block:.5rem;display:grid}.rate-trio>div{padding-inline:.125rem;display:grid}.rate-trio>div+div{border-left:1px solid var(--border)}.rate-trio-v{font-family:var(--font-stack-display);font-weight:var(--display-weight);font-size:var(--text-xl);font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.2}.rate-trio-k{font-size:var(--text-xs);color:var(--text-muted)}.rate-wide{display:none}.rate-curve{gap:.25rem;display:grid}.rate-curve-head{font-size:var(--text-sm);color:var(--text-muted);justify-content:space-between;align-items:baseline;gap:.5rem;padding-top:.5rem;display:flex}.rate-curve-head strong{color:var(--text);white-space:nowrap;font-weight:600}.rate-curve-box{width:100%;height:var(--curve-h,12rem);position:relative}.rate-curve-box svg{touch-action:pan-y;cursor:pointer;display:block;overflow:visible}.rate-axis{font:400 var(--text-xs) var(--font-stack-text);fill:var(--text-muted)}.rate-grid{stroke:var(--border)}.rate-tick{stroke:var(--text-muted)}.rate-line{stroke:var(--rate);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.rate-dashed{stroke-width:2px;stroke-dasharray:4 5}.rate-before{fill:var(--bg-elevated);stroke:var(--text-muted);stroke-width:2px}.rate-drop{stroke:var(--accent-strong);stroke-width:1.5px;stroke-dasharray:2 4}.rate-dot{cursor:grab;outline:none}.rate-dot-core{fill:var(--accent-strong);stroke:var(--bg-elevated);stroke-width:3px}.rate-dot:focus-visible .rate-dot-core{stroke:var(--text)}.rate-trio.is-column{text-align:left;grid-template-columns:1fr;max-width:22rem;padding-block:0}.rate-trio.is-column>div{grid-template-columns:minmax(6.5rem,auto) 1fr;align-items:baseline;column-gap:.75rem;padding:.5rem 0}.rate-trio.is-column>div+div{border-left:0;border-top:1px solid var(--border)}.rate-trio.is-column .rate-narrow{display:none}.rate-trio.is-column .rate-wide{display:inline}@media (width>=45rem){.rate-trio{max-width:36rem}}
