html,body{height:100%;overflow:hidden}body{background:var(--night-900)}.hh{position:fixed;inset:0;overflow:hidden}.hh-stage{background:radial-gradient(1px 1px at 12% 18%,#f5f1ffb3,#0000),radial-gradient(1px 1px at 33% 8%,#f5f1ff80,#0000),radial-gradient(1.5px 1.5px at 58% 14%,#f5f1ff99,#0000),radial-gradient(1px 1px at 76% 26%,#f5f1ff73,#0000),radial-gradient(1px 1px at 88% 9%,#f5f1ff99,#0000),radial-gradient(1px 1px at 22% 34%,#f5f1ff59,#0000),radial-gradient(1.5px 1.5px at 92% 38%,#f5f1ff66,#0000),radial-gradient(1px 1px at 6% 44%,#f5f1ff66,#0000),linear-gradient(#0b0a24 0%,#1a1448 50%,#0e0b22 100%);position:absolute;inset:0}.hh-stage canvas{touch-action:none;position:absolute;inset:0}body:not(.is-room) .hh-stage,body.is-flat .hh-stage{visibility:hidden}.hh-bar{z-index:6;padding:calc(var(--safe-top) + 12px) var(--gutter) 0;pointer-events:none;grid-template-columns:44px 1fr 44px;align-items:center;display:grid;position:absolute;top:0;left:0;right:0}.hh-bar>*{pointer-events:auto}.hh-bar [hidden]{visibility:hidden;display:grid!important}.hh-crumb{border-radius:var(--r-pill);background:var(--scrim);text-align:center;flex-direction:column;justify-content:center;justify-self:center;align-items:center;max-width:100%;min-height:36px;padding:4px 14px;display:flex}.hh-crumb b{white-space:nowrap;text-overflow:ellipsis;max-width:60vw;font-size:15px;font-weight:600;line-height:20px;overflow:hidden}body:not(.is-room) .hh-crumb{background:0 0}.hh-labels{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.hh-lab{border-radius:var(--r-pill);box-shadow:inset 0 0 0 1px var(--night-600);white-space:nowrap;will-change:transform;background:#0e0b22db;align-items:baseline;gap:6px;padding:3px 10px;display:inline-flex;position:absolute;top:0;left:0}.hh-lab b{font-size:13px;font-weight:600;line-height:18px}.hh-lab small{color:var(--ink-2);font-size:12px;line-height:16px}.hh-lab.is-gold{box-shadow:inset 0 0 0 1px #f2c46dd9}.hh-lab.is-gold b{color:var(--gold)}.hh-lab.is-round{justify-content:center;align-items:center;width:26px;height:26px;padding:0}.hh-lab.is-round b{color:var(--ink-2);font-size:12px}.hh-lab.is-round.is-gold b{color:var(--gold)}.hh-h{font-family:var(--font-display);text-wrap:balance;margin:0;font-size:26px;font-weight:500;line-height:32px}.hh-p{color:var(--ink-2);margin:0;font-size:15px;line-height:21px}.hh-hint{text-align:center;color:var(--ink-3);margin:0;font-size:13px;line-height:18px}.hh-wide{width:100%}.hh-duo{grid-template-columns:1fr 1fr;gap:10px;display:grid}.hh-duo>:only-child{grid-column:1/-1}.hh-duo .k-btn{padding:0 12px}.hh-keep-i{background:var(--night-800);width:36px;height:36px;color:var(--gold);border-radius:50%;flex:none;place-items:center;display:grid}.hh-chips{flex-wrap:wrap;gap:8px;display:flex}.hh-chip{border-radius:var(--r-chip);background:var(--night-700);min-height:28px;box-shadow:inset 0 0 0 1px var(--night-600);align-items:center;padding:0 10px;font-size:13px;font-weight:500;display:inline-flex}.k-chip.is-on{background:var(--gold);color:var(--on-gold);box-shadow:none;font-weight:600}.k-btn:disabled{opacity:.45;cursor:default}.k-btn:disabled:active{transform:none}.hh-zones{flex-direction:column;gap:6px;display:flex}.hh-zones-t{grid-template-columns:repeat(9,1fr);gap:4px;display:grid}.hh-zones-t i{border-radius:var(--r-pill);background:var(--night-600);height:8px;transition:background-color .2s var(--ease-out)}.hh-zones-t i.on{background:var(--gold)}.hh-page{z-index:2;padding:calc(var(--safe-top) + 72px) var(--gutter) calc(var(--safe-bottom) + 20px);background:var(--night-900);flex-direction:column;gap:16px;display:flex;position:absolute;inset:0}.hh-page>*{width:100%;max-width:520px;margin-inline:auto}.hh-page-in{overscroll-behavior:contain;flex-direction:column;flex:1;gap:14px;min-height:0;display:flex;overflow-y:auto}.hh-page-foot{flex-direction:column;gap:10px;display:flex}.hh-now{border-radius:var(--r-card);background:var(--night-800);flex-direction:column;gap:6px;padding:14px;display:flex}.hh-now b{font-size:16px;font-weight:600;line-height:21px}.hh-now-h{justify-content:space-between;align-items:center;gap:12px;display:flex}.hh-edit{flex:none;gap:6px;min-height:36px;padding:0 12px;font-size:14px}.hh-edit .k-ic{width:18px;height:18px}.hh-now span{color:var(--ink-2);font-size:14px;line-height:19px}.hh-now .hh-doubt,.hh-now .hh-with{margin-top:var(--space-1);align-self:flex-start}.hh-now .hh-with .k-ic{width:var(--icon);height:var(--icon)}.hh-rooms{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.hh-room{appearance:none;cursor:pointer;width:100%;color:inherit;font:inherit;text-align:left;border-radius:var(--r-card);background:var(--night-800);transition:background-color .12s var(--ease-out);border:0;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 14px;display:grid}.hh-room:hover,.hh-room:active{background:var(--night-700)}.hh-room--add{box-shadow:inset 0 0 0 1.5px var(--night-700);background:0 0;grid-template-columns:48px minmax(0,1fr)}.hh-room-t{flex-direction:column;gap:2px;min-width:0;display:flex}.hh-room-t b{font-size:16px;font-weight:600;line-height:21px}.hh-room-t span{color:var(--ink-2);font-size:13px;line-height:18px}.hh-plus{border-radius:var(--r-chip);background:var(--night-800);width:48px;height:48px;color:var(--ink-2);place-items:center;display:grid}.hh-glyph{border-radius:var(--r-chip);background:var(--night-900);grid-template-columns:repeat(3,1fr);gap:3px;width:48px;height:48px;padding:4px;display:grid}.hh-glyph i{background:var(--night-700);border-radius:3px}.hh-glyph i.on{background:var(--gold)}.hh-score{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.hh-score b{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:22px;font-weight:500;line-height:26px}.hh-score b small{font-family:var(--font-ui);color:var(--ink-3);font-size:13px;font-weight:500}.hh-score>span{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);font-size:12px;font-weight:600;line-height:16px}.hh-modal{z-index:8;background:var(--night-900);animation:hh-rise .26s var(--ease-out) both;flex-direction:column;display:flex;position:absolute;inset:0}@keyframes hh-rise{0%{opacity:0;transform:translateY(24px)}}.hh-modal-bar{padding:calc(var(--safe-top) + 12px) var(--gutter) 8px;grid-template-columns:88px 1fr 88px;align-items:center;display:grid}.hh-modal-title{text-align:center;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:15px;font-weight:600;line-height:20px;overflow:hidden}.hh-text-btn{appearance:none;border-radius:var(--r-pill);background:var(--night-700);min-height:44px;color:var(--ink);font:600 15px/1 var(--font-ui);cursor:pointer;border:0;justify-self:start;padding:0 14px}.hh-text-btn:hover{background:var(--night-600)}.hh-modal-in{overscroll-behavior:contain;width:100%;max-width:520px;min-height:0;padding:8px var(--gutter) 12px;flex-direction:column;flex:1;gap:16px;margin:0 auto;display:flex;overflow-y:auto}.hh-step{flex-direction:column;gap:16px;display:flex}.hh-modal-foot{width:100%;max-width:520px;padding:8px var(--gutter) calc(var(--safe-bottom) + 20px);flex-direction:column;gap:10px;margin:0 auto;display:flex}.hh-steps{flex-direction:column;gap:8px;display:flex}.hh-segs{gap:4px;display:flex}.hh-segs i{border-radius:var(--r-pill);background:var(--night-600);flex:1;height:4px}.hh-segs i.on{background:var(--gold)}.hh-steps span{color:var(--ink-3);font-size:13px;line-height:18px}.hh-types,.hh-dirs{grid-template-columns:1fr 1fr;gap:8px;display:grid}.hh-type{appearance:none;cursor:pointer;color:inherit;font:inherit;text-align:left;border-radius:var(--r-card);background:var(--night-800);min-height:64px;box-shadow:inset 0 0 0 1px var(--night-700);border:0;flex-direction:column;justify-content:center;gap:2px;padding:12px 14px;display:flex}.hh-type b{font-size:15px;font-weight:600;line-height:20px}.hh-type span{color:var(--ink-2);font-size:13px;line-height:18px}.hh-type.is-on{background:var(--night-700);box-shadow:inset 0 0 0 1.5px var(--gold)}.hh-type.is-on b{color:var(--gold)}.hh-dial{align-self:center;width:min(260px,70vw);height:auto;display:block}.hh-dial .face{fill:var(--night-800);stroke:var(--night-600)}.hh-dial line{stroke:var(--night-600);stroke-width:1.2px;stroke-linecap:round}.hh-dial line.m{stroke:var(--ink-2);stroke-width:2px}.hh-dial line.n,.hh-dial .guide{stroke:var(--gold);stroke-width:2px}.hh-dial .guide{stroke-width:1.5px;stroke-dasharray:4 5}.hh-dial text{fill:var(--ink-3);font:600 12px var(--font-ui);text-anchor:middle;dominant-baseline:central}.hh-dial text.c{fill:var(--ink);font-size:16px}.hh-dial text.n{fill:var(--gold);font-size:16px}.hh-dial .needle{fill:var(--gold)}.hh-dial .hub{fill:var(--ink)}#hhRose{transition:transform .12s linear}.hh-reading{text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex}.hh-reading b{font-family:var(--font-display);font-size:30px;font-weight:500;line-height:36px}.hh-reading span{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:14px}.hh-calibrate{border-radius:var(--r-card);background:var(--night-800);color:var(--ink-2);align-items:center;gap:12px;padding:12px 14px;font-size:14px;line-height:19px;display:flex}.hh-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:26px;display:grid;position:relative}.hh-north{color:var(--gold);align-items:center;gap:4px;font-size:12px;font-weight:600;display:inline-flex;position:absolute;top:-24px;left:50%;transform:translate(-50%)}.hh-north .k-ic{width:14px;height:14px}.hh-cell{border-radius:var(--r-chip);background:var(--night-800);min-height:92px;box-shadow:inset 0 0 0 1px var(--night-700);flex-direction:column;align-items:flex-start;gap:5px;min-width:0;padding:8px;display:flex}.hh-grid.is-place .hh-cell{cursor:pointer}.hh-grid.is-place .hh-cell:hover{background:var(--night-700)}.hh-cell.is-sel{box-shadow:inset 0 0 0 1.5px var(--gold);background:var(--night-700)}.hh-cell.is-ok{box-shadow:inset 0 0 0 1.5px #f2c46d8c}.hh-cell.is-ok .hh-cell-h b{color:var(--gold)}.hh-cell.is-off{background:var(--night-900);box-shadow:inset 0 0 0 1px var(--night-600)}.hh-cell-h{justify-content:space-between;align-self:stretch;align-items:baseline;gap:4px;display:flex}.hh-cell-h b{font-size:13px;font-weight:600}.hh-cell-h small{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.hh-thing{appearance:none;color:inherit;font:inherit;border-radius:var(--r-pill);background:var(--night-700);white-space:nowrap;border:0;align-items:center;gap:4px;max-width:100%;min-height:26px;padding:3px 8px;font-size:12px;font-weight:500;line-height:16px;display:inline-flex;overflow:hidden}button.hh-thing{cursor:pointer}.hh-thing.is-on{background:var(--gold);color:var(--on-gold);font-weight:600}.hh-thing .k-ic{width:13px;height:13px}.hh-face{margin-left:-2px}.hh-tray{overscroll-behavior:contain;scrollbar-width:none;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.hh-tray::-webkit-scrollbar{display:none}.hh-act{border-radius:var(--r-card);background:var(--night-800);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.hh-act>span{color:var(--ink-2);flex:1 0 auto;font-size:14px;line-height:19px}.hh-reveal{z-index:3;left:var(--gutter);right:var(--gutter);bottom:calc(var(--safe-bottom) + 20px);text-align:center;border-radius:var(--r-card);background:var(--night-800);max-width:440px;box-shadow:0 -1px 0 var(--night-600);cursor:pointer;flex-direction:column;align-items:center;gap:10px;margin:0 auto;padding:18px 18px 16px;display:flex;position:absolute}.hh-reveal p{margin:0}.hh-count{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:44px;font-weight:500;line-height:48px}.hh-count small{font-family:var(--font-ui);color:var(--ink-3);font-size:15px;font-weight:500}.hh-reveal-segs{width:200px}.hh-revnow{color:var(--ink-2);font-size:14px;line-height:19px}.hh-revnow b{color:var(--ink);font-weight:600}.hh-skip{color:var(--ink-3);font-size:12px}.hh-sheet{z-index:3;width:100%;max-width:480px;padding:8px var(--gutter) calc(var(--safe-bottom) + 20px);flex-direction:column;gap:14px;margin:0 auto;display:flex;position:absolute;bottom:0;left:0;right:0}#hhSheetBody,#hhOverBody{flex-direction:column;gap:14px;min-height:0;display:flex}#hhSheetBody.is-in>*,#hhOverBody.is-in>*{animation:hh-in .26s var(--ease-out) both}#hhSheetBody.is-in>:nth-child(2),#hhOverBody.is-in>:nth-child(2){animation-delay:30ms}#hhSheetBody.is-in>:nth-child(n+3),#hhOverBody.is-in>:nth-child(n+3){animation-delay:60ms}@keyframes hh-in{0%{opacity:0;transform:translateY(6px)}}#hhSheet{max-height:calc(100% - 260px)}#hhSheet #hhSheetBody{overscroll-behavior:contain;flex:auto;overflow-y:auto}.hh-sheet-foot{flex-direction:column;flex:none;gap:14px;display:flex}.hh-over{z-index:5;max-height:calc(100% - var(--safe-top) - 200px);overscroll-behavior:contain;overflow-y:auto}.hh-over.is-tall{top:calc(var(--safe-top) + 196px);max-height:none}#hhSheet.is-under{visibility:hidden}.hh-dim{z-index:4;background:#0e0b2233;position:absolute;inset:0}@media (width>=720px){#hhSheet{max-height:calc(100% - 120px)}.hh-sheet{border-radius:var(--r-sheet);width:400px;padding-bottom:20px;bottom:24px;left:auto;right:24px}.hh-over{max-height:calc(100% - 120px)}.hh-over.is-tall{top:96px}.hh-sheet .k-grab{display:none}}.hh-over-h{justify-content:space-between;align-items:center;gap:12px;display:flex}.hh-over-h .k-icon-btn{width:36px;height:36px}.hh-fixes{flex-direction:column;display:flex}.hh-fx{appearance:none;width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;border:0;border-bottom:1px solid var(--night-700);background:0 0;grid-template-columns:28px minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px 0;display:grid}.hh-fx:last-child{border-bottom:0}button.hh-fx:hover{background:var(--night-700)}.hh-fx.is-done{cursor:default}.hh-fx-n{background:var(--night-700);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;width:28px;height:28px;font-size:13px;font-weight:600;display:grid}.hh-fx-n .k-ic{width:16px;height:16px}.hh-fx.is-first .hh-fx-n{background:var(--gold);color:var(--on-gold)}.hh-fx.is-done .hh-fx-n{color:var(--gold)}.hh-fx-t{flex-direction:column;gap:3px;min-width:0;display:flex}.hh-fx-t b{font-size:15px;font-weight:600;line-height:20px}.hh-fx.is-done .hh-fx-t b{color:var(--ink-3);text-decoration:line-through}.hh-fx-t small{color:var(--ink-2);font-size:13px;line-height:18px}.hh-fx-m{color:var(--ink-3);border-radius:var(--r-pill);box-shadow:inset 0 0 0 1px var(--night-600);white-space:nowrap;margin-top:2px;padding:4px 8px;font-size:12px;font-weight:600;line-height:16px}.hh-keep{border-radius:var(--r-card);background:var(--night-700);color:var(--ink-2);align-items:center;gap:12px;padding:12px 14px;font-size:14px;line-height:19px;display:flex}.hh-keep b{color:var(--ink);font-weight:600}.hh-todo{counter-reset:s}ol.hh-todo{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}ol.hh-todo li{color:var(--ink-2);grid-template-columns:20px 1fr;gap:10px;font-size:15px;line-height:21px;display:grid}ol.hh-todo li:before{content:counter(s);counter-increment:s;background:var(--night-700);width:20px;height:20px;color:var(--ink);border-radius:50%;place-items:center;margin-top:1px;font-size:12px;font-weight:600;display:grid}.hh-link{border-radius:var(--r-card);background:var(--night-700);color:inherit;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:flex}.hh-link:hover{background:var(--night-600)}.hh-link .hh-keep-i{color:var(--ink)}.hh-link-t{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.hh-link-t b{font-size:15px;font-weight:600;line-height:20px}.hh-link-t span{color:var(--ink-2);font-size:13px;line-height:18px}.hh-flat{z-index:2;padding:calc(var(--safe-top) + 72px) var(--gutter) calc(var(--safe-bottom) + 24px);background:var(--night-900);overscroll-behavior:contain;flex-direction:column;gap:14px;display:flex;position:absolute;inset:0;overflow-y:auto}.hh-flat>*{width:100%;max-width:520px;margin-inline:auto}.hh-loading{z-index:2;text-align:center;color:var(--ink-2);margin:0;font-size:15px;position:absolute;bottom:40%;left:0;right:0}.hh-toast{z-index:9;left:var(--gutter);right:var(--gutter);top:calc(var(--safe-top) + 64px);border-radius:var(--r-card);background:var(--night-700);max-width:440px;box-shadow:0 12px 30px -12px #000000b3, inset 0 0 0 1px var(--night-600);animation:hh-in .22s var(--ease-out) both;align-items:center;gap:12px;margin:0 auto;padding:10px 12px;font-size:14px;line-height:19px;display:flex;position:absolute}.hh-toast .hh-keep-i{width:32px;height:32px}.hh-toast-t{min-width:0;color:var(--ink-2);flex:1}.hh-toast-t b{color:var(--ink);font-weight:600}.hh-undo{appearance:none;border-radius:var(--r-pill);background:var(--night-600);min-height:36px;color:var(--ink);font:600 14px/1 var(--font-ui);cursor:pointer;border:0;padding:0 12px}.hh-fail{z-index:9;top:40%;left:var(--gutter);right:var(--gutter);text-align:center;color:var(--ink-2);margin:0;font-size:15px;position:absolute}@media (height<=700px){.hh-sheet,#hhSheetBody,#hhOverBody,.hh-sheet-foot{gap:10px}.hh-h{font-size:22px;line-height:28px}.hh-sheet .k-btn--primary{min-height:48px}.hh-over.is-tall{top:calc(var(--safe-top) + 150px)}#hhSheet{max-height:calc(100% - 220px)}.hh-fx-t small{display:none}.hh-cell{min-height:74px;padding:6px}.hh-step,.hh-modal-in{gap:12px}.hh-dial{width:min(200px,60vw)}.hh-reading b{font-size:24px;line-height:30px}.hh-type{min-height:56px;padding:10px 12px}.hh-count{font-size:36px;line-height:40px}}@media (prefers-reduced-motion:reduce){#hhSheetBody.is-in>*,#hhOverBody.is-in>*,.hh-modal,.hh-toast{animation:none}.hh-zones-t i,.hh-room,#hhRose{transition:none}}
