/* (c) 2026 aiidea.co.uk. All rights reserved. */
[hidden]{display:none!important}:root{--ink: #f4efe6;--dim: rgba(244, 239, 230, .62);--faint: rgba(244, 239, 230, .34);--glass: rgba(16, 18, 26, .62);--glass2: rgba(16, 18, 26, .82);--line: rgba(255, 255, 255, .1);--sun: #ffb54a;--sun2: #ffd98a;--r: 14px;font-family:Segoe UI Variable Text,Segoe UI,system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#07080c;color:var(--ink)}canvas#view{position:fixed;inset:0;width:100vw;height:100vh;display:block;touch-action:none;cursor:grab}canvas#view.dragging{cursor:grabbing}canvas#overlay{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none}button{font:inherit;color:inherit}.glass,header#top>*,#modes,#hours,#point,#dock{backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}header#top{position:fixed;left:16px;top:16px;display:flex;flex-direction:column;gap:10px;width:min(420px,calc(100vw - 32px));z-index:5}.brand{cursor:pointer;display:flex;width:max-content;padding:6px 12px 6px 10px!important;border-radius:999px;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(14px)!important;align-items:baseline;gap:10px;padding:0 4px;backdrop-filter:none!important;text-shadow:0 1px 12px rgba(0,0,0,.6)}.brand b{font-size:22px;letter-spacing:.02em;font-weight:650}.brand .tag{color:var(--dim);font-size:13px;letter-spacing:.04em}.sunmark{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle,#fff3d0 0 30%,var(--sun) 55%,rgba(255,181,74,0) 72%);box-shadow:0 0 18px 4px #ffb54a80;align-self:center}#search{position:relative;z-index:3;display:flex;background:var(--glass);border:1px solid var(--line);border-radius:var(--r);overflow:visible}#search input{flex:1;min-width:0;background:transparent;border:0;outline:none;color:var(--ink);font:inherit;font-size:15px;padding:12px 14px}#search input::placeholder{color:var(--faint)}#search button{border:0;background:transparent;padding:0 16px;color:var(--sun);font-weight:600;cursor:pointer}#results{position:absolute;left:0;right:0;top:calc(100% + 6px);margin:0;padding:6px;list-style:none;background:#10121af5;border:1px solid var(--line);border-radius:var(--r);max-height:50vh;overflow:auto;backdrop-filter:blur(16px)}#results li{padding:9px 10px;border-radius:9px;cursor:pointer;font-size:14px;line-height:1.35}#results li small{display:block;color:var(--dim);font-size:12px}#results li:hover,#results li.sel{background:#ffffff14}#results li.hdr{cursor:default;color:var(--faint);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;padding:6px 10px 4px}#results li.hdr:hover{background:none}#results li.forget{color:var(--dim);font-size:12.5px;border-top:1px solid var(--line);border-radius:0 0 9px 9px;margin-top:4px}nav#places{display:flex;flex-wrap:wrap;gap:6px;backdrop-filter:none!important}nav#places button{border:1px solid var(--line);background:var(--glass);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer;color:var(--dim);backdrop-filter:blur(10px)}nav#places button:hover{color:var(--ink)}nav#places button.on{color:#1a1206;background:var(--sun);border-color:transparent}#status{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--dim);background:var(--glass);border:1px solid var(--line);border-radius:12px;padding:7px 11px;line-height:1.35}#status .dot{width:7px;height:7px;border-radius:50%;background:#6fcf8a;flex:none}#status button.link{border:0;background:none;padding:0;font:inherit;color:var(--sun);cursor:pointer;text-decoration:underline;text-underline-offset:2px}#status.busy .dot{background:var(--sun);animation:pulse 1s ease-in-out infinite alternate}@keyframes pulse{to{opacity:.25}}#modes{position:fixed;right:16px;top:16px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:5;backdrop-filter:none!important}.seg{display:flex;background:var(--glass);border:1px solid var(--line);border-radius:999px;padding:4px;backdrop-filter:blur(14px)}.seg button{border:0;background:transparent;padding:8px 14px;border-radius:999px;cursor:pointer;color:var(--dim);font-size:14px}.seg button.on{background:#ffffff1f;color:var(--ink)}#sunread{display:flex;gap:12px;font-size:12px;color:var(--ink);background:var(--glass);border:1px solid var(--line);border-radius:999px;padding:4px 12px!important;backdrop-filter:blur(14px);font-variant-numeric:tabular-nums;text-shadow:0 1px 8px rgba(0,0,0,.7);padding-right:8px}#modes .tools{display:flex;gap:6px}#modes .tools button{border:1px solid var(--line);background:var(--glass);border-radius:999px;padding:5px 11px;font-size:12px;color:var(--dim);cursor:pointer;backdrop-filter:blur(14px)}#modes .tools button:hover{color:var(--ink)}#modes .tools button.on{color:var(--sun2);border-color:#ffb54a73}#hours,#point{position:fixed;right:16px;top:140px;width:min(380px,calc(100vw - 32px));background:var(--glass);border:1px solid var(--line);border-radius:var(--r);padding:16px;z-index:4}#point{inset:auto auto 150px 16px;width:min(440px,calc(100vw - 32px))}#hours h3,#point h3{margin:0 0 10px;font-size:15px;font-weight:600}.ranges{display:flex;flex-wrap:wrap;gap:6px}.ranges button{border:1px solid var(--line);background:transparent;border-radius:999px;padding:6px 11px;font-size:13px;cursor:pointer;color:var(--dim)}.ranges button.on{background:#ffb54a29;border-color:#ffb54a80;color:var(--sun2)}#rangeNote{color:var(--dim);font-size:12.5px;margin:10px 0 12px;min-height:1.2em}.legend .bar{height:10px;border-radius:6px;background:linear-gradient(90deg,#08103a,#2a1f85 25%,#b82e61,#ff8519 75%,#ffeb8c)}.legend .ticks{display:flex;justify-content:space-between;font-size:11px;color:var(--dim);margin-top:4px;font-variant-numeric:tabular-nums}.classes{list-style:none;padding:0;margin:12px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;font-size:12.5px;color:var(--dim)}.classes b{color:var(--ink);font-weight:600;margin-right:4px}.classes i{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--c);margin-right:6px;vertical-align:-1px}#progress{height:3px;margin-top:14px;background:#ffffff14;border-radius:3px;overflow:hidden}#progress div{height:100%;width:0;background:linear-gradient(90deg,var(--sun),var(--sun2));transition:width .15s}#point .close{position:absolute;right:10px;top:8px;border:0;background:transparent;font-size:22px;color:var(--dim);cursor:pointer}#pointSub{color:var(--dim);font-size:12.5px;margin:-4px 0 10px}#cal{width:100%;display:block;border-radius:8px}.calkey{display:flex;gap:14px;font-size:11.5px;color:var(--dim);margin:6px 0 8px}.calkey i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}.k-sun{background:#ffc35c}.k-shade{background:#3b4a73}.k-night{background:#11131d;border:1px solid rgba(255,255,255,.12)}#pointStats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}#pointStats div{background:#ffffff0d;border-radius:10px;padding:8px 10px}#pointStats b{display:block;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}#pointStats span{font-size:11.5px;color:var(--dim)}#pointStats .wide{grid-column:1 / -1;font-size:12.5px;color:var(--dim);line-height:1.45}#pointStats .wide b{display:inline;font-size:inherit;color:var(--ink)}#dock{position:fixed;left:50%;transform:translate(-50%);bottom:16px;width:min(980px,calc(100vw - 32px));background:var(--glass);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;z-index:5;display:flex;flex-direction:column;gap:8px}#dock .row{display:grid;grid-template-columns:34px 1fr 150px;align-items:center;gap:12px}.play{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#ffffff0f;cursor:pointer;font-size:12px;color:var(--sun2)}.play.on{background:var(--sun);color:#1a1206}.track{position:relative;height:30px;border-radius:9px;cursor:pointer;touch-action:none}.track .sky{position:absolute;inset:0;border-radius:9px}.track .marks{position:absolute;inset:0;pointer-events:none;font-size:10.5px;color:#ffffffbf}.track .marks span{position:absolute;top:50%;transform:translate(-50%,-50%);white-space:nowrap;text-shadow:0 1px 4px rgba(0,0,0,.8)}.track .knob{position:absolute;top:-3px;bottom:-3px;width:4px;margin-left:-2px;border-radius:3px;background:#fff;box-shadow:0 0 0 3px #ffb54a73,0 0 16px #ffc878e6;pointer-events:none}.months{position:absolute;inset:0;display:flex;border-radius:9px;overflow:hidden;background:#ffffff0d}.months span{flex:1;font-size:11px;color:var(--dim);display:flex;align-items:center;justify-content:center;border-left:1px solid rgba(255,255,255,.06)}.months span:first-child{border-left:0}.months canvas{position:absolute;inset:0;width:100%;height:100%}.readout{display:flex;flex-direction:column;line-height:1.15;font-variant-numeric:tabular-nums}.readout b{font-size:18px;font-weight:600}.readout span{font-size:11.5px;color:var(--dim)}#hint{position:fixed;left:50%;transform:translate(-50%);bottom:118px;font-size:12.5px;color:var(--dim);text-shadow:0 1px 8px rgba(0,0,0,.9);pointer-events:none;transition:opacity 1s;white-space:nowrap}#hint b{color:var(--ink);font-weight:600}#loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;gap:14px;background:#07080c8c;z-index:20;font-size:15px}.spin{width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.15);border-top-color:var(--sun);animation:sp .9s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}#credits{position:fixed;right:12px;bottom:4px;font-size:10px;color:var(--faint);z-index:3;pointer-events:auto;text-align:right;max-width:60vw}#credits a{color:inherit}#error{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);max-width:520px;background:var(--glass2);border:1px solid rgba(255,120,90,.4);border-radius:var(--r);padding:18px 20px;z-index:30;font-size:14px;line-height:1.5}#about{position:fixed;inset:0;background:#05060a99;z-index:40;display:flex;align-items:center;justify-content:center;padding:16px}#about .card{position:relative;max-width:640px;max-height:calc(100vh - 32px);overflow:auto;background:var(--glass2);border:1px solid var(--line);border-radius:var(--r);padding:22px 26px;font-size:14px;line-height:1.55;backdrop-filter:blur(16px)}#about h2{margin:0 0 6px;font-size:22px}#about h3{margin:18px 0 6px;font-size:15px;color:var(--sun2)}#about ul{margin:0;padding-left:18px}#about li{margin:4px 0;color:var(--dim)}#about li b,#about p b{color:var(--ink)}#about p{color:var(--dim);margin:6px 0}#about .small{font-size:12px;color:var(--faint);margin-top:16px}#about .close{position:absolute;right:12px;top:8px;border:0;background:transparent;font-size:24px;color:var(--dim);cursor:pointer}#caption{position:fixed;left:50%;transform:translate(-50%);bottom:150px;text-align:center;pointer-events:none;z-index:6;text-shadow:0 2px 18px rgba(0,0,0,.85),0 1px 3px rgba(0,0,0,.9);white-space:nowrap}#caption b{display:block;font-size:30px;font-weight:650;letter-spacing:.01em}#caption span{display:block;font-size:19px;color:#fff4e1eb;margin-top:4px}body.clean header#top,body.clean #modes,body.clean #hours,body.clean #point,body.clean #dock,body.clean #hint,body.clean #credits{display:none!important}@media (max-width: 760px){header#top{top:10px;left:10px;width:calc(100vw - 20px);gap:8px}.brand .tag{display:none}#modes{top:10px;right:10px}.seg button{padding:6px 10px;font-size:13px}#sunread{display:none}#hours,#point{inset:auto 10px 128px;width:auto;max-height:52vh;overflow:auto}#dock{bottom:10px;width:calc(100vw - 20px);padding:8px 10px}#dock .row{grid-template-columns:30px 1fr 86px;gap:8px}.play{width:30px;height:30px}.readout b{font-size:15px}#hint{display:none}nav#places{display:flex}nav#places button{padding:4px 10px;font-size:12px}#modes .tools{display:none}.months span{font-size:9.5px}#status{font-size:11.5px;padding:5px 9px}}
