:root{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;color:#fff;background:#050913;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root,.app{height:100%;margin:0}.app{position:relative;overflow:hidden;--ink-top: #fff}.app canvas{touch-action:none}.title{position:absolute;top:20px;left:26px;margin:0;font-size:15px;font-weight:500;color:var(--ink-top);pointer-events:none;z-index:3;transition:color .4s}.status{position:absolute;inset:0;display:grid;place-items:center;margin:0;font-size:14px;pointer-events:none}.labels{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .35s ease,visibility 0s linear .35s}.labels.on{opacity:1;visibility:visible;transition:opacity .5s ease}.label{position:absolute;top:0;left:0;width:0;height:0;will-change:transform;transition:opacity .18s ease}.label[data-hidden=true]{opacity:0;visibility:hidden;transition:opacity .18s ease,visibility 0s linear .18s}.label-line{position:absolute;left:-1px;bottom:0;width:1px;height:var(--lift);background:#fff;box-shadow:0 0 0 .5px #0b0e1466}.label-line:after{content:"";position:absolute;left:-2px;bottom:-2px;width:5px;height:5px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #0b0e1499}.label-tag{position:absolute;left:-1px;bottom:var(--lift);display:grid;width:max-content;max-width:230px;padding:5px 8px;border:0;background:#0b0e14eb;color:#fff;font:inherit;font-size:12px;line-height:16px;text-align:left;cursor:default;pointer-events:auto}.labels:not(.on) .label-tag,.label[data-hidden=true] .label-tag{pointer-events:none}.label-tag b{font-weight:500;white-space:nowrap}.label-tag span{display:block;width:0;height:0;overflow:hidden;color:#b9bdc3;font-size:11px;opacity:0;transition:opacity .15s ease}.label-tag:hover,.label-tag:focus-visible{z-index:1}.label:has(.label-tag:hover),.label:has(.label-tag:focus){z-index:2}.label-tag:hover span,.label-tag:focus span{width:max-content;max-width:214px;height:auto;margin-top:2px;opacity:1}.sunpath{position:absolute;top:18px;left:0;right:0;height:min(24vh,190px);color:var(--ink-top);pointer-events:none;transition:color .4s}.sunpath svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.sunpath polyline,.sunpath line{fill:none;stroke:currentColor;vector-effect:non-scaling-stroke}.path-above{stroke-width:1.5;opacity:.85}.path-below{stroke-width:1;stroke-dasharray:2 5;opacity:.4}.horizon{stroke-width:1;opacity:.22}.sunpath .path-hit{stroke:transparent;stroke-width:30;pointer-events:stroke;cursor:grab;touch-action:none}.sunpath.dragging{z-index:5}.rope path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.rope circle{fill:currentColor}.crossing{position:absolute;transform:translate(-50%,7px);font-size:11px;font-variant-numeric:tabular-nums;opacity:.8;pointer-events:none;transition:left .7s ease}.sun-handle{position:absolute;top:0;left:0;width:0;height:0;display:grid;place-items:center;will-change:transform;pointer-events:auto;cursor:grab;touch-action:none;z-index:2}.sun-handle:before{content:"";position:absolute;width:76px;height:64px;left:-38px;top:-32px}.sun-disc{position:absolute;width:30px;height:30px;left:-15px;top:-15px;border-radius:50%;background:#ffc53d;box-shadow:0 0 0 5px #ffc53d44,0 0 34px 10px #ffb00088;transition:transform .18s ease}.sun-handle[data-set=true] .sun-disc{background:#5a6478;box-shadow:0 0 0 5px #5a647855}.sun-disc:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid #ffc53d;opacity:0}.sun-arrow{position:absolute;top:-9px;color:currentColor;opacity:.55;transition:opacity .18s ease,transform .18s ease;pointer-events:none}.sun-arrow.left{left:-40px}.sun-arrow.right{left:22px}.sun-handle:hover .sun-disc{transform:scale(1.14)}.sun-handle:hover .sun-arrow{opacity:1}.sun-handle:hover .sun-arrow.left{transform:translate(-3px)}.sun-handle:hover .sun-arrow.right{transform:translate(3px)}.dragging,.dragging .sun-handle,.dragging .path-hit{cursor:grabbing}.dragging .sun-disc{transform:scale(1.22)}.dragging .sun-arrow{opacity:1}.inviting .sun-disc:after{animation:sun-pulse 1.8s ease-out infinite}.inviting .sun-arrow{opacity:1}.inviting .sun-arrow.left{animation:nudge-left 1.8s ease-in-out infinite}.inviting .sun-arrow.right{animation:nudge-right 1.8s ease-in-out infinite}.sun-hint{position:absolute;top:28px;left:0;margin:0;padding:6px 10px;width:max-content;transform:translate(calc(-50% + var(--shift, 0px)));background:#0b0e14;color:#fff;font-size:12px;font-weight:500;white-space:nowrap;pointer-events:none;animation:hint-in .4s ease both}@keyframes sun-pulse{0%{transform:scale(1);opacity:.9}80%,to{transform:scale(2);opacity:0}}@keyframes nudge-left{50%{transform:translate(-6px)}}@keyframes nudge-right{50%{transform:translate(6px)}}@keyframes hint-in{0%{opacity:0}}.sun-input{position:absolute;left:50%;top:0;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}.sunpath:has(.sun-input:focus-visible) .sun-disc{outline:2px solid currentColor;outline-offset:7px}.lower{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:0 16px 16px 26px;pointer-events:none}.readout{color:#fff;transition:color .45s ease}.readout-main{display:block;margin:0;font-size:clamp(64px,9vw,132px);line-height:.95;font-weight:300;letter-spacing:-.035em;font-variant-numeric:tabular-nums}.readout-sub{width:max-content;margin:8px 0 0 4px;padding:3px 7px;background:#0b0e14eb;color:#fff;font-size:13px}.legend{display:grid;grid-template-columns:auto auto auto;justify-content:space-between;gap:5px 0;width:274px;margin:6px 0 0 4px;padding:7px;background:#0b0e14eb;color:#fff;font-size:11px}.legend i{grid-column:1 / -1;height:8px}.dock{flex:none;width:318px;display:grid;gap:8px;padding:10px;background:#0b0e14eb;pointer-events:auto}.dock button{border:0;font:inherit;cursor:pointer}.seasons{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:#ffffff14;padding:2px}.seasons button{padding:7px 2px;background:transparent;color:#cfd2d6;font-size:13px;transition:background .15s,color .15s}.seasons button:hover{background:#ffffff1c}.seasons button[aria-pressed=true]{background:#fff;color:#111;font-weight:600}.dock-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:8px}.dock-actions button{display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 6px;background:#ffffff1c;color:#fff;font-size:13px;transition:background .15s}.dock-actions button:hover{background:#fff3}.dock-actions .exposure[aria-pressed=true]{background:#f78c2a;color:#111;font-weight:600}.dock .switch-row{display:flex;align-items:center;justify-content:space-between;padding:6px 2px;background:transparent;color:#fff;font-size:13px}.switch-row i{position:relative;width:30px;height:16px;background:#ffffff2b;transition:background .15s}.switch-row i:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;background:#fff;transition:transform .15s}.switch-row[aria-checked=true] i{background:#f78c2a}.switch-row[aria-checked=true] i:after{transform:translate(14px);background:#111}.hint{margin:0;font-size:12px;color:#e6e7e9}.credit{margin:0;font-size:10px;line-height:1.35;color:#8d9299}.credit a{color:inherit}.hours{display:grid;gap:8px;padding:2px 0}.hours-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.hours p{margin:0;font-size:12px;line-height:1.35;color:#d8dade}.hours strong{font-size:18px;font-weight:500;color:#fff;font-variant-numeric:tabular-nums}.close{flex:none;display:grid;place-items:center;width:24px;height:24px;background:#ffffff1c;color:#fff}.strip{position:relative;display:flex;height:9px}.strip i{flex:1}.strip .dark{background:#20242c}.strip .shade{background:#566377}.strip .lit{background:#ffb000}.strip b{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:#fff}button:focus-visible,a:focus-visible{outline:2px solid #ffb000;outline-offset:2px}@media(prefers-reduced-motion:reduce){.labels,.labels.on,.label,.label[data-hidden=true],.label-tag span,.title,.sunpath,.readout,.crossing{transition:none}.inviting .sun-disc:after,.inviting .sun-arrow.left,.inviting .sun-arrow.right{animation:none}}@media(max-width:760px){.title{top:12px;left:14px}.sunpath{top:10px;height:17vh}.lower{flex-direction:column;align-items:stretch;gap:10px;padding:0 8px max(8px,env(safe-area-inset-bottom))}.readout{padding-left:6px}.readout-main{font-size:62px}.readout-sub{font-size:12px}.dock{width:100%;padding:8px;gap:6px}.hint{display:none}.credit{font-size:9px}}
