@font-face{font-family:Bricolage;src:url(/fonts/bricolage-latin-wght.woff2) format("woff2-variations");font-weight:200 800;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215}@font-face{font-family:Bricolage;src:url(/fonts/bricolage-latin-ext-wght.woff2) format("woff2-variations");font-weight:200 800;font-display:swap;unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson;src:url(/fonts/atkinson-latin-400.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122,U+2212}@font-face{font-family:Atkinson;src:url(/fonts/atkinson-latin-700.woff2) format("woff2");font-weight:700;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122,U+2212}@font-face{font-family:Atkinson;src:url(/fonts/atkinson-latin-ext-400.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-02AF,U+1E00-1EFF,U+20A0-20C0,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson;src:url(/fonts/atkinson-latin-ext-700.woff2) format("woff2");font-weight:700;font-display:swap;unicode-range:U+0100-02AF,U+1E00-1EFF,U+20A0-20C0,U+2C60-2C7F,U+A720-A7FF}:root{--sky-top: #0e1433;--sky-low: #1d2a5c;--ground: #080c1e;--ink: #eaedff;--ink-2: #a3abd9;--ink-3: #6f78a8;--line: rgba(163, 171, 217, .18);--panel: rgba(234, 237, 255, .05);--o2: #5cf2b0;--n2: #b98cff;--red: #ff6f8e;--amber: #ffcf70;--lvl-none: #4a5285;--lvl-text-none: #a3abd9;--lvl-low: #4f8fb8;--lvl-possible: #44c7b0;--lvl-good: #5cf2b0;--lvl-excellent: #c7ff7a;--f-display: "Bricolage", "Atkinson", system-ui, sans-serif;--f-body: "Atkinson", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif;--step--1: .875rem;--step-0: 1rem;--step-1: 1.25rem;--step-2: 1.563rem;--step-3: 2.441rem;--gutter: 16px;--radius-s: 10px;--radius-l: 22px;--tabbar: 64px;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;background:var(--ground);color:var(--ink);font:400 var(--step-0)/1.5 var(--f-body);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}:lang(ja),:lang(zh),:lang(ko),:lang(uk){--f-display: system-ui, sans-serif;--f-body: system-ui, sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--o2);outline-offset:3px;border-radius:6px}.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--ground);padding:8px 12px;z-index:10}.skip:focus{left:8px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}#app{max-width:560px;margin:0 auto;min-height:100dvh;position:relative;padding-bottom:calc(var(--tabbar) + env(safe-area-inset-bottom))}.top{position:absolute;inset:0 0 auto;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(env(safe-area-inset-top) + 10px) var(--gutter) 0}.place-btn{display:inline-flex;align-items:center;gap:4px;min-height:44px;background:none;border:0;padding:0 4px;font:600 var(--step-1)/1.2 var(--f-display);letter-spacing:-.01em;max-width:70vw;text-shadow:0 1px 12px rgba(14,20,51,.9)}.place-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status{font-size:var(--step--1);color:var(--ink-2);text-align:right}.sky{position:relative;height:min(62vh,520px);min-height:380px;background:linear-gradient(180deg,var(--sky-top) 0%,var(--sky-low) 100%);overflow:hidden}.sky canvas{position:absolute;inset:0;width:100%;height:100%}.sky .horizon{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:72px;color:var(--ground)}.sky-readout{position:absolute;left:var(--gutter);right:var(--gutter);bottom:86px;display:grid;gap:4px}.score{display:flex;align-items:baseline;gap:10px;font:700 clamp(6.5rem,34vw,9.5rem)/.82 var(--f-display);letter-spacing:-.055em;font-variation-settings:"wdth" 85;font-variant-numeric:tabular-nums;text-shadow:0 2px 40px rgba(14,20,51,.7)}.score small{font:500 var(--step-0)/1 var(--f-body);letter-spacing:0;color:var(--ink-2)}.level{font:600 var(--step-2)/1.15 var(--f-display);letter-spacing:-.015em;margin:6px 0 0}.reason{color:var(--ink-2);margin:0;max-width:34ch}.score-help{background:none;border:0;color:var(--ink-3);padding:0;width:28px;height:28px;align-self:center}.ground{padding:8px var(--gutter) 24px;display:grid;gap:28px;grid-template-columns:minmax(0,1fr)}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 10px}.section-head h2{font:600 var(--step-1)/1.2 var(--f-display);margin:0;letter-spacing:-.01em}.section-head .meta{color:var(--ink-2);font-size:var(--step--1)}.best{font:500 var(--step-1)/1.35 var(--f-body);margin:0}.best b{color:var(--o2);font-weight:700}.hours{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(30px,1fr);gap:3px;align-items:end;height:132px;overflow-x:auto;scrollbar-width:none;padding-bottom:22px;position:relative}.hours::-webkit-scrollbar{display:none}.hour{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;background:none;border:0;padding:0}.hour .bar{border-radius:4px 4px 2px 2px;min-height:3px;background:var(--lvl-none);transition:filter .15s}.hour[aria-pressed=true] .bar{outline:2px solid var(--ink);outline-offset:1px}.hour .t{position:absolute;bottom:-20px;left:50%;transform:translate(-50%);font-size:.75rem;color:var(--ink-3);white-space:nowrap}.hour .v{font-size:.7rem;color:var(--ink-2);text-align:center;margin-bottom:2px;font-variant-numeric:tabular-nums}.hour.day .bar{background:repeating-linear-gradient(135deg,rgba(255,207,112,.35) 0 3px,transparent 3px 6px)}.hour.midnight:before{content:"";position:absolute;left:-2px;top:0;bottom:-4px;border-left:1px dashed var(--line)}.hour-detail{color:var(--ink-2);font-size:var(--step--1);margin:8px 0 0;min-height:1.5em}.factors{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border-radius:var(--radius-l);overflow:hidden}.factor{background:var(--ground);padding:14px 14px 16px;display:grid;gap:2px;align-content:start}.factor .name{color:var(--ink-2);font-size:var(--step--1)}.factor .val{font:600 var(--step-2)/1.1 var(--f-display);font-variant-numeric:tabular-nums}.factor .sub{color:var(--ink-3);font-size:var(--step--1)}.factor.limit .val{color:var(--amber)}.callout{border:1px solid var(--line);border-radius:var(--radius-l);padding:16px;display:grid;gap:10px;background:radial-gradient(120% 140% at 100% 0%,rgba(185,140,255,.12),transparent 60%)}.callout h2{font:600 var(--step-1)/1.2 var(--f-display);margin:0}.callout p{margin:0;color:var(--ink-2)}.spot-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.spot-list li{display:flex;justify-content:space-between;gap:12px}.spot-list .s{font:700 var(--step-1)/1 var(--f-display);color:var(--o2);font-variant-numeric:tabular-nums}.btn{text-decoration:none;min-height:48px;padding:0 20px;border-radius:999px;border:0;background:var(--o2);color:#062417;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.small{min-height:40px;padding:0 14px;font-size:var(--step--1)}.btn:disabled{opacity:.5;cursor:default}.linkish{background:none;border:0;padding:0;color:var(--o2);text-decoration:underline;text-underline-offset:3px}.foot{color:var(--ink-3);font-size:.8rem;margin:0}.page{padding:calc(env(safe-area-inset-top) + 64px) var(--gutter) 24px;display:grid;gap:28px;grid-template-columns:minmax(0,1fr)}.page h1{font:650 var(--step-3)/1.05 var(--f-display);letter-spacing:-.03em;margin:0}.page p.lead{color:var(--ink-2);margin:-16px 0 0;max-width:46ch}.globe-wrap{position:relative;aspect-ratio:1;touch-action:none;cursor:grab}.globe-wrap canvas{width:100%;height:100%;display:block}.legend{display:flex;align-items:center;gap:10px;font-size:var(--step--1);color:var(--ink-2)}.legend .ramp{flex:1;height:8px;border-radius:4px;background:linear-gradient(90deg,rgba(92,242,176,.15),var(--o2) 45%,var(--amber) 75%,var(--red))}.chart{width:100%;height:auto;display:block;overflow:visible}.chart text{fill:var(--ink-3);font-size:11px;font-family:var(--f-body)}.chart .grid{stroke:var(--line)}.kp-legend{display:flex;gap:16px;font-size:var(--step--1);color:var(--ink-2)}.kp-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}.explain{color:var(--ink-2);font-size:var(--step--1);margin:8px 0 0;max-width:52ch}.sw-row{display:grid;grid-template-columns:1fr auto;align-items:end;gap:4px 12px}.sw-row .now{font:600 var(--step-2)/1 var(--f-display);font-variant-numeric:tabular-nums}.sw-row .now small{font:400 var(--step--1) var(--f-body);color:var(--ink-2)}.sw-row svg{grid-column:1 / -1}.group{display:grid;gap:2px}.group h2{font:600 var(--step-1)/1.2 var(--f-display);margin:0 0 10px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:6px 0;border-bottom:1px solid var(--line)}.row label,.row .lbl{flex:1}.row .hint{display:block;color:var(--ink-3);font-size:var(--step--1)}select,input[type=search],input[type=number]{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-s);min-height:44px;padding:0 12px}input[type=range]{width:100%;accent-color:var(--o2)}.switch{-webkit-appearance:none;appearance:none;width:48px;height:28px;border-radius:999px;background:var(--lvl-none);position:relative;cursor:pointer;flex:none;transition:background .15s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--ink);transition:transform .15s}.switch:checked{background:var(--o2)}.switch:checked:after{transform:translate(20px)}.place-row button.icon{background:none;border:0;width:44px;height:44px;color:var(--ink-2)}.place-row .cur{color:var(--o2)}.pro-chip{font-size:.75rem;font-weight:700;color:#1b0d33;background:var(--n2);border-radius:999px;padding:2px 8px;vertical-align:2px;margin-left:6px}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:5;display:grid;grid-template-columns:repeat(4,1fr);max-width:560px;margin:0 auto;padding-bottom:env(safe-area-inset-bottom);background:#080c1eeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line)}.tabs a{height:var(--tabbar);display:grid;place-items:center;align-content:center;gap:2px;color:var(--ink-3);text-decoration:none;font-size:.75rem}.tabs svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.tabs a[aria-current=page]{color:var(--ink)}.tabs a[aria-current=page] svg{stroke:var(--o2)}.sheet{width:min(560px,100%);max-width:100%;max-height:92dvh;margin:auto auto 0;padding:0;border:0;border-radius:var(--radius-l) var(--radius-l) 0 0;background:#121a3d;color:var(--ink);overflow:auto}.sheet::backdrop{background:#04061099}.sheet[open]{animation:rise .24s cubic-bezier(.2,.8,.2,1)}@keyframes rise{0%{transform:translateY(40px);opacity:0}}.sheet-inner{padding:20px var(--gutter) calc(24px + env(safe-area-inset-bottom));display:grid;gap:16px}.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.sheet-head h2{font:650 var(--step-2)/1.1 var(--f-display);margin:0;letter-spacing:-.02em}.close{background:var(--panel);border:0;width:40px;height:40px;border-radius:50%;display:grid;place-items:center}.results{list-style:none;margin:0;padding:0}.results button{width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:12px 0;min-height:56px}.results small{display:block;color:var(--ink-3)}.pro-hero{font:650 var(--step-3)/1.02 var(--f-display);letter-spacing:-.035em;margin:0}.benefits{list-style:none;padding:0;margin:0;display:grid;gap:12px}.benefits li{display:grid;grid-template-columns:22px 1fr;gap:10px}.benefits svg{width:22px;height:22px;stroke:var(--o2);fill:none;stroke-width:2}.plans{display:grid;gap:8px}.plan{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:var(--radius-s);padding:14px;cursor:pointer}.plan:has(input:checked){border-color:var(--o2);background:#5cf2b012}.plan input{accent-color:var(--o2);width:18px;height:18px}.plan .price{font-weight:700;font-variant-numeric:tabular-nums}.plan .note{display:block;font-size:var(--step--1);color:var(--ink-2)}.fine{color:var(--ink-3);font-size:.8rem;margin:0}.toast{position:fixed;left:50%;bottom:calc(var(--tabbar) + 16px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--ink);color:var(--ground);padding:10px 16px;border-radius:999px;font-weight:700;z-index:20;max-width:calc(100% - 32px)}.empty{display:grid;gap:12px;justify-items:start;padding:24px 0}.night-filter{position:fixed;inset:0;pointer-events:none;z-index:50;background:#ff2a00;mix-blend-mode:multiply;display:none}.night-red .night-filter{display:block}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(min-width:600px){body{background:radial-gradient(80% 60% at 50% 0%,#121a3d,var(--ground))}#app{border-inline:1px solid var(--line)}}.benefits li.hl span{color:var(--o2);font-weight:700}
