/* FearCast / After Dark. One visual system; no stacked legacy skins. */
:root{color-scheme:dark;--bg:#100e1b;--panel:#1b1828;--line:#3b344d;--text:#fbf5f5;--muted:#c0b6cc;--acid:#d8b7ff;--orange:#ffb4a5;--yellow:#f0ce99;--rose:#ffb5bc;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}*{box-sizing:border-box}html{background:var(--bg);scroll-padding-bottom:110px}body{margin:0;color:var(--text);background:radial-gradient(ellipse at 90% 0,#36224355,transparent 45%),var(--bg);font-size:15px;line-height:1.5;min-height:100svh;-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}button,select,summary{cursor:pointer}button,input,select,a{touch-action:manipulation}button{min-height:44px;border:1px solid var(--line);background:#292235;border-radius:12px;padding:9px 13px;transition:background .18s,transform .18s}button:active{transform:scale(.97)}button:disabled{cursor:default;opacity:.45}a{color:var(--acid);text-decoration:none}a:hover{text-decoration:underline}a.textlink{display:inline-flex;align-items:center;min-height:44px;font-weight:650;font-size:13px}input,select{min-height:44px;background:#1b1727;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:16px;max-width:100%}input:focus-visible,button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible,[tabindex="0"]:focus-visible{outline:3px solid var(--rose);outline-offset:3px}input[type=range]{appearance:none;-webkit-appearance:none;background:transparent;border:0;width:100%;height:44px;margin:0;padding:0;accent-color:var(--rose)}input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:9px;background:linear-gradient(90deg,#8d75b2,#edb3ce)}input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:28px;height:28px;margin-top:-11px;border-radius:50%;background:#f8e4f7;border:3px solid #7b598f;box-shadow:0 2px 12px #0005}input[type=range]::-moz-range-track{height:6px;border-radius:9px;background:#a78dc4}input[type=range]::-moz-range-thumb{width:23px;height:23px;border-radius:50%;background:#f8e4f7;border:3px solid #7b598f}[hidden]{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.app-header{max-width:1080px;margin:auto;display:flex;align-items:center;gap:20px;padding:calc(14px + env(safe-area-inset-top)) 24px 14px}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:850;letter-spacing:2px;color:var(--text)}.brand:hover{text-decoration:none}.sigil{display:grid;place-items:center;font:italic 800 23px Georgia,serif;letter-spacing:-3px;color:var(--rose);width:33px;height:34px;border:1px solid #8b647b;border-radius:10px;background:linear-gradient(135deg,#543748,#211929);box-shadow:inset 0 1px #ffffff38}.app-location{font-size:10px;letter-spacing:2px;color:var(--muted)}.settings-button{margin-left:auto;font-size:21px;width:44px;padding:0;background:transparent}.app-main{max-width:1032px;margin:auto;padding:0 20px calc(120px + env(safe-area-inset-bottom))}.datebar{display:flex;gap:10px;align-items:center;border-block:1px solid var(--line);padding:12px 0}.datebar>div{flex:1;min-width:0}.datebar label{display:block;font-size:10px;letter-spacing:1.8px;color:var(--muted);font-weight:750}.datebar select{padding:0 18px 0 0;background:transparent;border:0;font-weight:700;max-width:100%;min-height:36px}.datebar .pill{max-width:150px;white-space:normal}.button{background:var(--acid);color:#20162f;font-size:13px;font-weight:750;border-color:transparent}.button.secondary{color:var(--text);background:#ffffff09;border-color:var(--line)}.status-strip{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);min-height:44px}.status-strip button{margin-left:auto;font-size:12px;background:transparent;border:0;padding:0 5px;color:var(--acid)}.status-mark{width:6px;height:6px;border-radius:50%;background:#9ad6bd;flex-shrink:0}.status-mark.is-warning{background:var(--orange)}.notice{padding:12px;border:1px solid var(--orange);border-radius:12px}.app-screen{outline:0;animation:screen-in .24s ease-out}.mode-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:6px 0 0}h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(32px,5vw,46px);font-weight:400;letter-spacing:-1.6px;line-height:1.15;margin:8px 0 16px}h1 span{color:var(--rose)}h2{font-size:19px;font-weight:700;letter-spacing:-.5px;line-height:1.3;margin:0}h3{font-size:16px;line-height:1.3;margin:0}.mode-switch,.tabs{display:flex;gap:2px;background:#07071177;padding:3px;border:1px solid var(--line);border-radius:16px}.mode-switch button,.tabs button{background:transparent;border:0;border-radius:12px;font-size:13px;min-height:40px;padding:7px 13px;color:var(--muted)}.mode-switch [aria-pressed=true],.tabs .active{background:#44324f;color:#fff2fa;box-shadow:inset 0 1px #ffffff1c}#modeNote{margin:0 0 14px}.mini{font-size:10px;font-weight:750;letter-spacing:1.8px;color:var(--muted)}.next-move{display:flex;gap:15px;align-items:center;padding:20px;border:1px solid #876078;border-radius:20px;background:radial-gradient(ellipse at 0 0,#87556a60,transparent 70%),linear-gradient(115deg,#342135,#201a2d);box-shadow:inset 0 1px #f5d2e235;margin:0 0 14px;position:relative;overflow:hidden}.next-move:before{content:"";position:absolute;top:0;left:20px;right:20px;height:1px;background:linear-gradient(90deg,transparent,#efd1e4,transparent)}.next-content{flex:1;min-width:0}.next-content .mini{color:#edbfd2}.next-content strong{display:block;font-size:20px;line-height:1.25;margin-top:7px;letter-spacing:-.35px}.next-content p{font-size:13px;color:#dbc5d9;margin:7px 0 0}.go-circle{flex-shrink:0;border-radius:50%;width:46px;height:46px;font-size:24px;background:linear-gradient(135deg,#ffffff29,#ffffff05);border-color:#b69aaf;box-shadow:inset 0 1px #fff5}.dashboard{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.card{min-width:0;padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:20px}.card-top,.section-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.pill{font-size:11px;line-height:1.4;border:1px solid #554665;border-radius:8px;padding:4px 7px;color:#e3c9f7;background:#b998e20a}.itinerary,.timeline,.field-note{grid-column:1/-1}.itinerary{padding-bottom:10px}.plan-stop{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding:8px 0}.complete-stop{width:44px;flex-shrink:0;padding:0;border-radius:50%;font-variant-numeric:tabular-nums;font-size:12px;background:#241e32;color:var(--acid)}.is-done .complete-stop{background:#2b453d;border-color:#8eae9e;color:#bdf4d8}.is-done .stop-name{color:#b6abbe}.is-done .stop-name:first-line{text-decoration:line-through}.stop-name{flex:1;min-width:0;background:none;border:0;text-align:left;padding:5px 0;font-size:14px;font-weight:650;line-height:1.35}.stop-name small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}.move-stop{padding:0;width:44px;background:none;flex-shrink:0}.fine{font-size:12px;line-height:1.6;color:var(--muted)}.fine a,.method a{text-decoration:underline;text-underline-offset:3px}.muted{font-size:13px;color:var(--muted);line-height:1.55}.timeline h2{font:400 28px/1.25 Georgia,serif;margin-top:4px}.chart-key{display:flex;justify-content:space-between;gap:8px;margin-top:20px;font-size:11px;color:var(--muted)}.chart-key i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--rose);margin-right:4px}.chart{height:auto;min-height:254px;width:100%;margin:4px 0 0;user-select:none}.chart svg{display:block;width:100%;height:254px;overflow:visible}.arrival{border-top:1px solid var(--line);padding-top:15px}.arrival label,.scenario-control label{display:flex;justify-content:space-between;gap:8px;font-size:14px}.arrival strong,.scenario-control strong{color:var(--rose);font-variant-numeric:tabular-nums}.arrival>span{display:block;font-size:14px;font-weight:650;color:var(--text)}#arrivalAfter{margin:6px 0 0}.chart-method{margin-top:16px}.scenario-control{padding-top:15px}.scenario-control button{font-size:12px}.crowd-main{margin-top:19px}.big{font-size:58px;line-height:1.15;font-weight:350;letter-spacing:-3px;font-variant-numeric:tabular-nums;margin:8px 0}.big small{font-size:17px;letter-spacing:0;margin-left:6px;color:var(--muted)}.severity{font-size:13px;color:var(--orange)}.meter{background:#30263c;height:4px;overflow:hidden;border-radius:4px;margin-top:18px}.meter i{display:block;height:100%;background:linear-gradient(90deg,#b29be9,#e9a8ba);transition:width .24s}.tags{display:flex;flex-wrap:wrap;gap:6px}.tags span{font-size:10px;border:1px solid #4b405a;border-radius:6px;padding:3px 6px;color:var(--muted)}.weather-icon{color:var(--acid);font-size:25px}.weather-peek>.mini{margin-top:15px}.weather-peek p,.field-note p{font-size:13px;color:var(--muted)}.weather-stats{display:flex;gap:20px;margin:15px 0 0}.weather-stats small{display:block;font-size:9px;letter-spacing:.6px;color:var(--muted)}.weather-stats strong{display:block;font-size:18px}.field-note h2{margin-top:9px}.date-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:20px}.date-tile{text-align:left;padding:18px;background:var(--panel);border-radius:16px}.date-tile.selected{border-color:var(--acid);background:#382941}.date-tile .day{font-size:11px;letter-spacing:1px;color:var(--muted)}.date-tile .date{font-family:Georgia,serif;font-size:35px;margin:9px 0}.date-tile .date small{font:11px -apple-system,sans-serif;color:var(--muted);margin-left:6px}.date-tile .estimate{font-size:12px;color:var(--rose)}.tile-meter{height:3px;background:#30283b;margin:12px 0}.tile-meter i{display:block;height:100%}.date-tile .foot{font-size:10px;line-height:1.4;color:var(--muted)}#calendar,#queues,#weather{padding-top:10px}.browse-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:20px 0}.searchbox{flex:1;min-width:200px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:12px;background:#191524;padding:0 12px}.searchbox span{font-size:23px;color:var(--acid)}.searchbox input{width:100%;min-width:0;border:0;padding:9px 0;background:transparent}.filter-button,#queueSort{font-size:13px}.filter-button[aria-pressed=true]{border-color:var(--acid);background:#48334f}.queue-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.house-card{min-width:0;position:relative;border:1px solid var(--line);border-radius:17px;background:#1e192b;overflow:hidden;transition:border-color .2s}.house-card:hover{border-color:#94749d}.house-open{display:flex;width:100%;padding:0;border:0;background:none;border-radius:0;min-height:155px;text-align:left;align-items:stretch}.house-open:focus-visible{outline-offset:-4px}.house-poster{flex:0 0 30%;min-width:0;position:relative;overflow:hidden;background:#12101d;isolation:isolate}.house-poster img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.house-poster:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,#fff1,transparent 40%,#fff0);pointer-events:none}.house-open:hover img{transform:scale(1.06)}.unknown-art{display:grid;place-items:center;height:100%;font:22px Georgia,serif;color:var(--muted)}.house-info{min-width:0;flex:1;padding:16px 49px 16px 14px;display:flex;flex-direction:column;justify-content:center}.house-title{font-size:16px;font-weight:650;line-height:1.3;margin:0 0 13px;overflow-wrap:break-word}.house-meta{display:flex;flex-direction:column;gap:5px}.waitnum{font-size:27px;font-weight:450;line-height:1.1;color:#edc8f6;font-variant-numeric:tabular-nums}.waitnum small{font-size:10px;letter-spacing:0;color:var(--muted);margin-left:5px}.house-state{font-size:11px;color:var(--muted);line-height:1.3}.favorite-button{position:absolute;top:8px;right:5px;width:44px;height:44px;padding:0;border:0;background:transparent;font-size:25px;color:#d2b9df}.favorite-button[aria-pressed=true]{color:#ffb6c2}.empty{padding:18px;border:1px dashed var(--line);border-radius:14px;font-size:13px;color:var(--muted);grid-column:1/-1}.chart .empty{margin-top:24px}.weather-scene{position:relative;isolation:isolate;overflow:hidden;border:1px solid #76638f;border-radius:22px;background:radial-gradient(ellipse at 90% 10%,#756ba04a,transparent 60%),linear-gradient(135deg,#30223f,#191e32);margin:20px 0}.scene-content{position:relative;padding:25px;max-width:75%}#sceneTemp{font-size:64px;line-height:1.2;letter-spacing:-3px;font-weight:300;margin:12px 0}#sceneCondition{font-size:22px;font-weight:650;line-height:1.3}#sceneDetail{font-size:13px;color:#d1c4dd;line-height:1.6}.sky-art{position:absolute;inset:0;z-index:-1;pointer-events:none}.sky-moon{position:absolute;right:9%;top:40px;width:84px;height:84px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#f4e6ef,#bda0d0);box-shadow:0 0 65px #eac7ef30}.sky-cloud{position:absolute;right:3%;top:85px;width:160px;height:60px;background:#ad9cba33;border-radius:60%;filter:blur(12px);animation:cloud-drift 12s ease-in-out infinite alternate}.c2{right:10%;top:115px;animation-delay:-7s}.sky-clear .sky-cloud{opacity:0}.sky-rainy .sky-rain,.sky-storm .sky-rain{position:absolute;inset:0;background:repeating-linear-gradient(105deg,transparent 0 45px,#b7b0d529 46px 47px,transparent 48px 80px);opacity:.3;animation:rain 1.1s linear infinite}.sky-storm .sky-moon{opacity:.15}.weather-scene.is-empty .sky-art,.weather-scene.is-empty #sceneTemp{display:none}.weather-scene.is-empty .scene-content{max-width:none;padding:18px}.weather-scene.is-empty #sceneCondition{font-size:18px;margin-top:8px}.weather-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.weather-detail{padding:17px;border:1px solid var(--line);border-radius:14px;background:var(--panel);min-width:0}.weather-detail strong{display:block;font-size:25px;margin-top:8px}.weather-detail p{font-size:11px;color:var(--muted);margin:6px 0 0}.weather-hours{display:flex;overflow-x:auto;gap:9px;padding:4px 0 13px;margin:15px 0;scroll-snap-type:x proximity}.hour{flex:1 0 99px;scroll-snap-align:start;padding:14px 10px;border:1px solid var(--line);border-radius:14px;text-align:center;background:var(--panel)}.hour .time{font-size:12px;color:var(--muted)}.hour .symbol{font-size:24px;color:var(--acid);margin:8px 0}.hour .temp{font-size:26px}.hour .rain{color:#d2c1ed;font-size:12px;margin:5px 0}.hour .wind,.hour .extra{font-size:11px;color:var(--muted)}.bottom-tabs{position:fixed;z-index:30;bottom:calc(10px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:grid;grid-template-columns:repeat(4,1fr);gap:4px;width:min(440px,calc(100% - 24px));border:1px solid #9c859f88;border-radius:25px;background:linear-gradient(140deg,#4d3c57dd,#211d30ed);backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%);box-shadow:inset 0 1px #fff5,0 10px 40px #0009;padding:5px}.bottom-tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:58px;background:transparent;border-color:transparent;border-radius:20px;color:#cdc0d7;font-size:11px;padding:5px}.bottom-tabs button[aria-selected=true]{color:#fff2fa;border-color:#dcb7d64d;background:linear-gradient(135deg,#ac7d9b55,#c4a5ee22);box-shadow:inset 0 1px #fff4}.bottom-tabs svg{width:22px;height:22px}.sheet{width:min(650px,calc(100% - 24px));max-height:86svh;margin:auto;border:1px solid #756281;border-radius:24px;background:#201b2d;color:var(--text);padding:24px;overflow:auto;overscroll-behavior:contain;box-shadow:0 30px 100px #0009}.sheet::backdrop{background:#080510b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.sheet-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.sheet-top h2{font:30px Georgia,serif;letter-spacing:-1px}.close-sheet{padding:0;width:44px;flex-shrink:0;font-size:28px}.sheet h3{margin:16px 0 8px}.dashboard-controls{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.dashboard-controls button{font-size:12px}.dashboard-controls [aria-pressed=true]{border-color:#b597cd;background:#473252}.order-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:7px 0;font-size:13px}.order-row button{font-size:12px}.app-settings{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0}.app-settings p{margin:5px 0}.app-settings h3{margin:0}.setting-toggle{font-size:12px;flex-shrink:0}.feed-health,.diagnostics{font:12px/1.7 ui-monospace,SFMono-Regular,monospace;white-space:pre-wrap;overflow-wrap:anywhere;color:#d1bfdc;margin:14px 0}.diagnostics{font-family:inherit;color:var(--muted)}details{border-top:1px solid var(--line);padding-top:12px;margin-top:16px}summary{min-height:44px;display:list-item;list-style-position:inside;font-size:13px;font-weight:650;padding:9px 0}.method{margin-top:30px}.method h2{margin:10px 0}.method p{font-size:13px;color:var(--muted);line-height:1.7}.method-content{margin-top:20px}.house-sheet .house-poster{width:100%;height:220px;border-radius:14px}.house-sheet .house-poster img{object-fit:cover;object-position:center 45%}.art-note{font-size:11px;color:var(--muted)}.detail-title{font:32px/1.15 Georgia,serif;letter-spacing:-.8px;margin:18px 0}.detail-body{font-size:14px;color:var(--muted)}.detail-wait{display:flex;gap:20px;justify-content:space-between;align-items:center;border-block:1px solid var(--line);padding:17px 0}.detail-wait small{font-size:11px;color:var(--muted)}.detail-wait strong{display:block;font-size:26px;color:var(--acid)}.detail-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:13px}.detail-actions a{display:inline-flex;align-items:center;min-height:44px}.textbutton{font-size:13px;color:var(--acid);background:transparent}form{display:flex;gap:12px;align-items:end;margin:15px 0;flex-wrap:wrap}form label{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:12px;color:var(--muted)}form label:first-child{flex:1 1 100%}form input{width:120px}form select{width:100%}body[data-mode=park] .next-move{border-color:#91b9a3;background:linear-gradient(115deg,#283a39,#211c30)}body[data-mode=park] .next-content .mini{color:#b3dfc5}
@keyframes screen-in{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes cloud-drift{to{transform:translateX(20px)}}@keyframes rain{to{transform:translateY(20px)}}
@media(max-width:650px){.app-header{padding-inline:16px;gap:10px}.app-location{display:none}.app-main{padding-inline:14px}.datebar{gap:6px;flex-wrap:wrap}.datebar>div{flex-basis:calc(100% - 154px)}.datebar .pill{display:none}.datebar .button{font-size:12px;padding:8px 10px}.datebar select{font-size:15px}.brand{font-size:19px}.mode-switch button{padding:6px 11px}.next-move{padding:16px}.next-content strong{font-size:18px}.dashboard{grid-template-columns:1fr;gap:12px}.card{padding:18px}.card-top .pill{font-size:10px}.crowd-main{display:grid;grid-template-columns:1fr auto;align-items:baseline;margin-top:15px}.crowd-main .mini{grid-column:1/-1}.big{font-size:54px}.crowd-main .severity{font-size:13px}.crowd .tags{display:none}.crowd .muted{margin-bottom:0}.weather-peek{display:grid;grid-template-columns:1fr 1fr;column-gap:12px}.weather-peek .card-top,.weather-peek>.mini,.weather-peek>.textlink{grid-column:1/-1}.weather-peek .big{grid-column:1;font-size:39px!important;align-self:center}.weather-peek>p{grid-column:1;margin:0}.weather-peek .weather-stats{grid-column:2;grid-row:3/5;flex-direction:column;gap:8px;margin:10px 0 0;align-self:center;padding-left:8px;border-left:1px solid var(--line)}.weather-peek .big small{font-size:13px}.weather-peek .textlink{margin-top:5px}.queue-grid{grid-template-columns:1fr}.house-open{min-height:144px}.house-info{padding-left:12px}.house-title{font-size:15px}.date-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.date-tile{padding:13px 10px}.date-tile .foot{font-size:9px}.date-tile .estimate{font-size:11px}.section-top h1{font-size:34px}.searchbox{flex-basis:100%}.browse-controls{margin-top:15px}.weather-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scene-content{max-width:100%;padding:22px}#sceneDetail{max-width:90%}.sky-moon{opacity:.3;right:7%}.sheet{padding:20px 17px}.sheet-top h2{font-size:27px}.detail-title{font-size:28px}.weather-stats small{font-size:9px}.timeline h2{font-size:27px}.app-settings{flex-wrap:wrap}.scenario-control label{font-size:13px}.chart-key{font-size:10px}.fine{font-size:12px}}
@media(max-width:359px){.datebar>div{flex-basis:100%}.datebar .button{flex:1}.mode-row h1{font-size:29px}.date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.house-poster{flex-basis:27%}.house-info{padding-right:43px}.house-title{font-size:14px}.card{padding:15px}.chart-key{flex-wrap:wrap}.mode-switch button{padding-inline:9px}.next-content strong{font-size:17px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.no-motion *,.no-motion *::before,.no-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}

.chart.is-empty{min-height:0;margin:12px 0 16px}.chart.is-empty .empty{margin-top:0}

/* Brief, action-linked feedback; all respect the global reduced-motion rules. */
#refresh.is-syncing::before{content:"";display:inline-block;width:12px;height:12px;margin-right:6px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:sync-turn .8s linear infinite}
.plan-stop.just-completed .complete-stop{animation:complete-pop .34s cubic-bezier(.2,.8,.2,1)}
.sheet[open]{animation:sheet-enter .22s ease-out}
.house-open:focus-visible .house-poster img{transform:scale(1.06)}
@keyframes sync-turn{to{transform:rotate(360deg)}}
@keyframes complete-pop{0%{transform:scale(.82)}55%{transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes sheet-enter{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}

/* RC4: compact content-first shell, retaining 44px controls. */
.app-header{padding-top:calc(4px + env(safe-area-inset-top));padding-bottom:4px;gap:10px}.brand{font-size:16px;letter-spacing:1.4px}.sigil{width:28px;height:29px;font-size:20px}.settings-button{font-size:20px}.datebar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;padding:6px 0;border-top:0}.datebar>.pill{display:none}.datebar>div{min-width:0}.datebar select{min-height:44px;font-size:15px}.datebar #saveNight{width:44px;min-height:44px;padding:0;font-size:0}.datebar #saveNight::after{content:'☆';font-size:23px}.datebar #saveNight[aria-pressed=true]::after{content:'★';color:var(--rose)}.status-strip{min-height:32px;font-size:11px;gap:6px}.status-strip button{min-height:32px;font-size:11px;padding:0 10px}.app-main{padding-bottom:calc(100px + env(safe-area-inset-bottom))}#calendar,#queues,#weather{padding-top:6px}.section-top h1{font-size:28px;margin:4px 0;letter-spacing:-.9px}#queues>.section-top{flex-wrap:nowrap;gap:10px}#queues .tabs button{min-height:44px;padding:7px 12px}.tabs{border-radius:13px}.tabs button{border-radius:10px}#queueStatus{font-size:12px;margin:6px 0 10px}.browse-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:10px 0 12px}.searchbox{grid-column:1/-1;min-width:0}.filter-button{text-align:left}#queueSort{max-width:160px}.house-open{min-height:116px}.house-poster{flex-basis:27%}.house-info{padding-block:12px}.house-title{margin-bottom:9px}.house-state{font-size:10px}.queue-grid{gap:9px}.bottom-tabs{bottom:calc(6px + env(safe-area-inset-bottom));width:min(420px,calc(100% - 16px));padding:3px;gap:2px;border-radius:19px;box-shadow:inset 0 1px #fff3,0 4px 14px #0006}.bottom-tabs button{min-height:48px;border-radius:15px;font-size:10px;gap:1px;padding:3px}.bottom-tabs svg{width:19px;height:19px}.mode-row h1{font-size:29px;margin:5px 0 10px}.next-move{padding:14px;margin-top:6px}.weather-scene{margin:12px 0}.scene-content{padding:18px;max-width:100%}#sceneTemp{font-size:50px;padding-right:80px;margin:8px 0;letter-spacing:-2px}#sceneCondition{font-size:18px}#sceneDetail{font-size:12px;max-width:none;margin:8px 0 0;line-height:1.5}#currentWeather{font-size:12px;margin:8px 0}.weather-hours{margin:8px 0;padding-bottom:5px}.hour{flex-basis:88px;padding:10px 8px}.hour .extra{display:none}.weather-glyph{position:absolute;right:16px;top:22px;width:94px;height:82px;color:#e7dbf3;overflow:visible}.weather-glyph>*{display:none}.sky-clear .glyph-moon,.sky-cloudy .glyph-cloud,.sky-fog .glyph-cloud,.sky-fog .glyph-fog,.sky-rainy .glyph-cloud,.sky-rainy .glyph-rain,.sky-storm .glyph-cloud,.sky-storm .glyph-bolt,.sky-snow .glyph-cloud,.sky-snow .glyph-snow{display:block}.glyph-cloud{animation:weather-float 6s ease-in-out infinite}.glyph-rain{animation:weather-drizzle 1.4s ease-in-out infinite}.glyph-snow{animation:weather-float 3s ease-in-out infinite}.sky-art{z-index:0}.scene-content{z-index:1}.weather-scene.is-empty .scene-content{padding:16px}.weather-scene.is-empty .sky-art{display:none}.sky-neutral .weather-glyph{display:none}@keyframes weather-float{50%{transform:translateY(-3px)}}@keyframes weather-drizzle{0%,100%{opacity:.6;transform:translateY(-2px)}50%{opacity:1;transform:translateY(3px)}}
@media(min-width:651px){.browse-controls{grid-template-columns:minmax(0,1fr) auto auto}.searchbox{grid-column:auto}.weather-glyph{right:26px;width:112px;height:98px}.house-title{font-size:16px}}
@media(max-width:359px){.datebar>div{width:auto}.datebar .button{padding-inline:8px}.section-top h1{font-size:26px}#queues .tabs button{padding-inline:10px}.weather-glyph{right:8px;width:76px}#sceneTemp{font-size:43px;padding-right:65px}}

/* RC6: fixed-scale mobile canvas and custom spectral signal identity. */
html{touch-action:pan-x pan-y;-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}body{width:100%;max-width:100%;overflow-x:clip;touch-action:pan-x pan-y}.app-header,.app-main{width:100%;min-width:0}.app-screen,section,.section-top{min-width:0}.brand{min-height:44px;gap:9px;flex-shrink:0;letter-spacing:0}.brand-mark{display:block;width:36px;height:36px;flex-shrink:0}.brand-word{font-size:18px;font-weight:850;letter-spacing:-.55px;line-height:1}.brand-word>span{color:#d7b6e9;font-weight:650;letter-spacing:.2px}.brand:hover .brand-mark{filter:brightness(1.12)}.status-strip>#statusShort{min-width:0;overflow-wrap:anywhere}.datebar select{width:100%}.app-header{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.app-main{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.sheet{max-width:calc(100% - 24px)}
@media(max-width:650px){input:not([type=range]),select,.datebar select,#queueSort{font-size:16px}.app-location{display:none}#queueSort{max-width:170px}.bottom-tabs{max-width:calc(100% - 16px - env(safe-area-inset-left) - env(safe-area-inset-right))}}

/* RC7 — content scrolls in its own region; navigation never covers it. */
:root{--panel:#211d31;--line:#ffffff20;--glass:linear-gradient(145deg,#ffffff14,#ffffff05);--glass-edge:#ffffff2d}
body{height:100vh;height:100dvh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;background:radial-gradient(ellipse at 5% 0,#57345455,transparent 55%),radial-gradient(ellipse at 100% 65%,#4d477033,transparent 55%),#100e1b}
.app-header{background:#171320b3;border-bottom:1px solid #ffffff0c;max-width:none;padding-block:calc(4px + env(safe-area-inset-top)) 4px;z-index:2}.app-header .app-location{margin-left:auto}.settings-button{margin-left:auto}.app-main{height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding-bottom:24px;scroll-padding-bottom:20px;scrollbar-width:thin}.bottom-tabs{position:relative;inset:auto;left:auto;bottom:auto;transform:none;margin:5px auto calc(5px + env(safe-area-inset-bottom));width:min(460px,calc(100% - 20px));border-color:#ffffff36;background:linear-gradient(125deg,#77658255,#342d46bb);box-shadow:inset 0 1px #ffffff60,inset 0 -1px #ffffff0a,0 3px 12px #0004;backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%);border-radius:22px}.bottom-tabs button{min-height:48px;transition:background .25s,box-shadow .25s,transform .2s}.bottom-tabs button[aria-selected=true]{background:linear-gradient(145deg,#e1c3ea33,#a28eb91c);border-color:#efd6ee55;box-shadow:inset 0 1px #fff8,0 2px 8px #0b061822}.bottom-tabs button[aria-selected=true] svg{animation:nav-settle .35s ease-out}.datebar{border-bottom-color:#ffffff15}.status-strip{font-size:10px;min-height:34px;gap:6px}.status-strip #statusShort{flex:1}.status-strip button{font-size:10px}.status-mark.is-updating{background:var(--acid);animation:status-breathe 1.3s ease-in-out infinite}.mode-row{margin:12px 0}.mode-row h1{font-size:30px;margin:0}.dashboard{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card{background:var(--glass),#211c2cbb;border:1px solid var(--glass-edge);box-shadow:inset 0 1px #ffffff14,0 8px 24px #08051130;border-radius:22px;padding:18px}.crowd,.weather-peek{grid-column:auto}.crowd .card-top,.weather-peek .card-top{gap:5px}.crowd h2,.weather-peek h2{font-size:14px}.crowd .card-top{display:block}.crowd #modelBadge{display:block;width:fit-content;font-size:9px;margin-top:6px;border:0;padding:0;background:none;color:var(--muted)}.crowd-main{display:block;margin-top:12px}.crowd-main>.mini,.weather-peek>.mini{display:none}.crowd .big,.weather-peek .big{font-size:35px!important;letter-spacing:-1.5px;line-height:1.2}.crowd .big small,.weather-peek .big small{font-size:11px;margin-left:3px}.crowd .severity{font-size:11px}.crowd .meter{margin-top:14px}.weather-peek{display:block}.weather-peek .weather-icon{display:none}.weather-peek>p{font-size:11px;margin:6px 0}.weather-peek .weather-stats{display:flex;flex-direction:row;gap:12px;border:0;padding:0;margin:10px 0}.weather-peek .weather-stats small{font-size:8px;letter-spacing:0}.weather-peek .weather-stats strong{font-size:15px}.weather-peek .textlink{font-size:11px;margin-top:4px}.timeline{padding:18px}.timeline .mini{display:none}.timeline h2{font:650 18px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:-.4px;margin:0}.chart-key{margin-top:14px}.arrival{padding-top:12px}.arrival>span{font-size:13px}#arrivalAfter{font-size:11px}.chart-method summary{font-size:12px}.house-card{background:linear-gradient(115deg,#ffffff10,#ffffff04),#211b2c;border-color:#ffffff22;box-shadow:inset 0 1px #ffffff0d}.house-info{padding-top:14px;padding-bottom:14px}.house-open{min-height:124px}.house-open:active{transform:none;background:#ffffff08}.house-open img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}.house-card:focus-within{border-color:#d6b7e99c}.searchbox{background:#ffffff05;border-color:#ffffff22}.section-label{font-size:12px;font-weight:650;color:var(--muted);margin:22px 0 8px;letter-spacing:.2px}
/* Continuous weather: scene, readable hourly rows, then all metrics. */
.weather-scene{background:radial-gradient(ellipse at 90% 0,#8b75a452,transparent 65%),linear-gradient(145deg,#3e2b4d,#1a1d32);border-color:#c2a6db44;box-shadow:inset 0 1px #ffffff40,0 10px 30px #09061533;border-radius:24px;margin-top:12px}.scene-content{padding:22px;min-height:208px}.scene-content>.mini{font-size:9px;letter-spacing:1.2px;color:#ded0e9}#sceneTemp{font-size:51px;padding-right:86px;margin:13px 0 9px}#sceneCondition{font-size:18px;max-width:100%}#sceneDetail{max-width:none;color:#d6c8e3;font-size:11px;line-height:1.5}.weather-glyph{width:108px;height:96px;right:14px;top:36px;filter:drop-shadow(0 5px 15px #0e061933)}.sky-art:before,.sky-art:after{content:"";position:absolute;inset:0;pointer-events:none}.sky-clear .sky-art:before{background:radial-gradient(circle at 12% 20%,#fff9 0 1px,transparent 2px),radial-gradient(circle at 50% 14%,#fff8 0 1px,transparent 2px),radial-gradient(circle at 90% 72%,#fff8 0 1px,transparent 2px);animation:sky-shimmer 5s ease-in-out infinite}.sky-cloudy .sky-art:before,.sky-fog .sky-art:before{background:radial-gradient(ellipse at 70% 30%,#d9cae22b,transparent 45%),radial-gradient(ellipse at 20% 90%,#d9cae21a,transparent 55%);animation:mist-pass 14s ease-in-out infinite alternate}.sky-rainy .sky-art:after,.sky-storm .sky-art:after{inset:-40px;background:repeating-linear-gradient(110deg,transparent 0 30px,#bfcde518 31px 32px,transparent 33px 64px);animation:weather-fall 1.6s linear infinite}.sky-storm .sky-art:before{background:radial-gradient(ellipse at 80% 10%,#e8d5ff33,transparent 70%);animation:sky-shimmer 7s ease-in-out infinite}.sky-snow .sky-art:after{background:radial-gradient(circle,#fff9 0 1px,transparent 2px);background-size:45px 45px;animation:weather-fall 5s linear infinite}.glyph-cloud{animation:cloud-sway 7s ease-in-out infinite}.glyph-moon{animation:moon-breathe 7s ease-in-out infinite}.glyph-rain{animation:weather-drizzle 1.2s linear infinite}.weather-hours{display:flex;flex-direction:column;overflow:visible;gap:0;padding:0;margin:0;border-block:1px solid #ffffff1c}.hour{flex:none;display:grid;grid-template-columns:54px 28px 1fr 65px 55px;gap:7px;align-items:center;text-align:left;border:0;border-bottom:1px solid #ffffff12;border-radius:0;background:transparent;padding:12px 2px;min-width:0}.hour:last-child{border-bottom:0}.hour .time{font-size:12px}.hour .symbol{font-size:20px;margin:0;text-align:center}.hour .temp{font-size:23px}.hour .rain{font-size:11px;margin:0;text-align:right}.hour .wind{font-size:10px;text-align:right}.hour .extra{display:none}.weather-detail-grid{margin:20px 0 12px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.weather-detail{background:var(--glass);border-color:#ffffff24;box-shadow:inset 0 1px #ffffff12;padding:16px}.weather-detail p{display:none}.weather-detail .mini{font-size:9px;letter-spacing:.7px}.weather-detail strong{font-size:25px}.sky-neutral .sky-art:before,.sky-neutral .sky-art:after{display:none}
/* Full poster, dedicated scroll area, controls outside the artwork. */
.house-sheet{width:min(820px,calc(100% - 20px));max-height:90vh;max-height:90dvh;padding:14px;border-radius:26px;background:linear-gradient(145deg,#363044ee,#201b2ff5);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);overflow:hidden}.house-sheet[open]{display:flex;flex-direction:column}.house-sheet .sheet-top{flex:none;margin:0 0 12px}.house-sheet #houseDetail{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 3px 6px}.house-sheet .house-poster{width:100%;height:auto;max-height:none;border-radius:16px;flex:none;background:#100d17}.house-sheet .house-poster img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:center;transform:none}.house-sheet .house-poster:after{display:none}.detail-copy{padding:5px 5px 0}.detail-title{font-size:27px;margin:18px 0 10px}.detail-body{font-size:13px;line-height:1.6;margin:10px 0}.detail-wait{padding:13px 0}.detail-wait strong{font-size:30px}.detail-actions{gap:8px;margin-top:14px}.detail-actions button{flex:1}.detail-actions a{font-size:11px;order:3;width:100%;justify-content:center}.sheet{border-color:#cab6de66;box-shadow:inset 0 1px #ffffff44,0 20px 70px #0007}.app-screen{animation:screen-in .32s cubic-bezier(.2,.8,.2,1)}
@keyframes nav-settle{0%{transform:translateY(3px) scale(.92)}60%{transform:translateY(-2px) scale(1.05)}100%{transform:none}}@keyframes status-breathe{50%{opacity:.35;box-shadow:0 0 8px #d8b7ff88}}@keyframes sky-shimmer{50%{opacity:.35}}@keyframes mist-pass{to{transform:translateX(22px)}}@keyframes weather-fall{to{transform:translateY(32px)}}@keyframes cloud-sway{50%{transform:translate(-4px,-3px)}}@keyframes moon-breathe{50%{opacity:.75;transform:translateY(-2px)}}
@media(min-width:651px){.app-header{padding-inline:max(24px,calc((100% - 1000px)/2))}.dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}.crowd .big,.weather-peek .big{font-size:48px!important}.house-sheet #houseDetail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}.detail-title{margin-top:0}.detail-copy{padding-top:8px}.weather-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hour{grid-template-columns:85px 45px 1fr 100px 100px}.weather-glyph{right:40px;width:130px;height:115px}}
@media(max-width:359px){.card{padding:13px}.dashboard{gap:9px}.crowd .big,.weather-peek .big{font-size:30px!important}.weather-peek .weather-stats{gap:6px}.hour{grid-template-columns:45px 23px 1fr 60px 45px;gap:4px}.hour .temp{font-size:21px}.weather-glyph{width:85px;right:8px}#sceneTemp{font-size:44px;padding-right:65px}.scene-content{padding:17px}}

/* RC8: matching summaries and contextual premium admission. */
.dashboard{align-items:stretch}.crowd,.weather-peek{align-self:stretch;margin-bottom:0;display:flex;flex-direction:column}.crowd .meter,.weather-peek>.textlink{margin-top:auto}.crowd .meter{margin-bottom:0}.weather-peek>.textlink{padding-top:12px}.crowd-main{padding-bottom:16px}
.premium-night>.chart-key,.premium-night>#chart,.premium-night>.arrival,.premium-night>.chart-method{display:none}#premiumInfo p{font-size:13px;line-height:1.6}#premiumInfo .fine{font-size:11px}
.ticket-settings{padding-block:18px;border-bottom:1px solid var(--line)}.ticket-fields{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.ticket-fields label{font-size:12px;display:flex;flex-direction:column;gap:6px;min-width:0}.ticket-fields input,.ticket-fields select{width:100%;min-width:0;min-height:44px;font-size:16px}.ticket-calendar{display:flex;align-items:center;gap:12px;margin:8px 0 16px}.ticket-calendar>span{flex:1}.ticket-calendar button{min-height:44px;font-size:12px}.ticket-calendar button[aria-pressed=true]{background:#d4b6f2;color:#20152d}.coverage{display:block;font-size:10px;margin-top:8px;color:var(--muted)}.coverage.included{color:#b4e8cf}.coverage:empty{display:none}#weatherRefreshState{margin:6px 0;color:var(--muted)}
@media(max-width:380px){.ticket-fields{grid-template-columns:1fr}}

/* RC9 — one movable glass lens, with pointer-driven scrubbing. */
.settings-button{width:44px;height:44px;display:grid;place-items:center;border-color:#ffffff20;background:linear-gradient(145deg,#ffffff0d,#ffffff03);border-radius:14px;color:#d9c7e9;box-shadow:inset 0 1px #ffffff18}.settings-button svg{width:22px;height:22px}.settings-button circle{fill:#292236}.settings-button:active{background:#ffffff18}
.bottom-tabs{isolation:isolate;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.bottom-tabs button{z-index:1;position:relative;touch-action:none;background:transparent;box-shadow:none}.bottom-tabs button[aria-selected=true]{background:transparent;border-color:transparent;box-shadow:none}.tab-lens{position:absolute;pointer-events:none;z-index:0;left:4px;top:4px;width:calc(25% - 5px);height:48px;border-radius:18px;border:1px solid #f5e4ff65;background:radial-gradient(ellipse at 25% 0,#fff4,transparent 65%),linear-gradient(135deg,#dbc5ed38,#d4b6e51a);box-shadow:inset 0 1px 1px #fff9,inset 0 -1px 1px #ffffff22,0 3px 9px #0d081f44;backdrop-filter:blur(12px) saturate(170%);-webkit-backdrop-filter:blur(12px) saturate(170%);transition:left .28s cubic-bezier(.2,.8,.2,1),width .28s,transform .28s,box-shadow .2s;will-change:left,transform}.bottom-tabs.is-scrubbing .tab-lens{transition:transform .08s;box-shadow:inset 0 1px 2px #fffc,inset 0 -1px 2px #ffffff66,0 4px 18px #08031266}.bottom-tabs.is-scrubbing button{color:var(--muted)}.bottom-tabs.is-scrubbing button.is-preview{color:#fff;transform:translateY(-2px)}

/* Stable scroll geometry: avoid toolbar-driven resize and anchor feedback. */
body{height:100svh}.app-main{height:auto;margin-block:0;align-self:stretch;overflow-anchor:none;overscroll-behavior-y:none;touch-action:pan-y;-webkit-overflow-scrolling:auto}.app-screen{animation:screen-fade .22s ease-out}@keyframes screen-fade{from{opacity:.6}to{opacity:1}}

/* RC10: Safari-friendly settings sizing. A two-column row cannot fit a native
   iOS date input beside long pass names on a phone. Contain layout, not text. */
#aboutDialog.sheet {
  box-sizing: border-box;
  max-width: calc(100vw - 24px);
  max-width: calc(100dvw - 24px);
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
}
#aboutDialog .ticket-settings,
#aboutDialog .ticket-fields,
#aboutDialog .ticket-fields > label,
#aboutDialog .ticket-fields input,
#aboutDialog .ticket-fields select {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}
#aboutDialog .ticket-fields input,
#aboutDialog .ticket-fields select {
  display: block;
  width: 100%;
}
#aboutDialog .ticket-settings { overflow-wrap: anywhere; }
@media (max-width: 650px) {
  #aboutDialog .ticket-fields { grid-template-columns: minmax(0, 1fr); }
}


/* RC11: iOS Safari's date input internal editing element can exceed CSS width.
   The user sees a bounded fixed-height field. The real native control remains
   positioned on top to keep VoiceOver, keyboard, and the native date picker. */
#aboutDialog .date-control {
  display: block;
  position: relative;
  inline-size: 100%;
  min-inline-size: 0;
  max-inline-size: 100%;
  block-size: 52px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #1b1727;
  overflow: hidden;
  isolation: isolate;
}
#aboutDialog .date-control__value {
  box-sizing: border-box;
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 30px 0 12px;
  font-size: 16px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
}
#aboutDialog .date-control__value.is-empty { color: var(--muted); }
#aboutDialog .date-control::after {
  content: '▾';
  position: absolute;
  right: 13px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--acid);
  opacity: .85;
  pointer-events: none;
}
#aboutDialog .date-control > input[type=date] {
  position: absolute !important;
  inset: 0 !important;
  box-sizing: border-box !important;
  display: block !important;
  inline-size: 100% !important;
  block-size: 100% !important;
  min-inline-size: 0 !important;
  min-block-size: 0 !important;
  max-inline-size: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  opacity: 0 !important;
  cursor: pointer;
  z-index: 2;
}
#aboutDialog .date-control:focus-within { outline: 2px solid var(--acid); outline-offset: 2px; }

/* RC12: mobile Home Screen install gateway. Desktop remains a normal website. */
.install-gate[hidden],.install-device-steps[hidden],.install-cta[hidden]{display:none!important}
html.install-locked,html.install-locked body{overflow:hidden!important;overscroll-behavior:none!important}
.install-gate{position:fixed;inset:0;z-index:99999;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;min-height:100svh;min-height:100dvh;padding:max(26px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(26px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:radial-gradient(ellipse at 46% 5%,#443254 0,transparent 46%),linear-gradient(160deg,#161123 0%,#0e0b16 60%,#09070e 100%);color:#f7f0fc;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-overflow-scrolling:touch}
.install-glow{position:fixed;pointer-events:none;inset:0;background:radial-gradient(ellipse at 50% 30%,#7c49802b,transparent 52%)}
.install-panel{box-sizing:border-box;position:relative;max-width:480px;width:100%;margin:0 auto;min-width:0;display:flex;flex-direction:column;align-items:stretch}
.install-topline,.install-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.install-topline{font-size:10px;font-weight:750;letter-spacing:1.2px;color:#e2cfed}.install-kicker{display:flex;align-items:center;gap:7px}.install-kicker i{display:inline-block;width:6px;height:6px;border-radius:100%;background:#ef9aac;box-shadow:0 0 9px #df6d96}.install-label{opacity:.65;text-align:right}
.install-art{align-self:center;width:126px;height:126px;margin:24px 0 15px;border-radius:29px;overflow:hidden;box-shadow:0 17px 43px #080612aa,0 0 38px #b27dc82c;border:1px solid #ffffff36;flex:none}
.install-art img{display:block;width:100%;height:100%;object-fit:cover}
.install-panel h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(38px,10vw,56px);font-weight:500;line-height:1.05;letter-spacing:-1.2px;text-align:center;margin:5px 0 12px}.install-panel h1 em{color:#d5a7e9;font-weight:400;font-style:normal}
.install-intro{font-size:14px;line-height:1.6;color:#cbc0d6;text-align:center;max-width:355px;align-self:center;margin:0 0 22px}
.install-device-steps{box-sizing:border-box;min-width:0;padding:18px 18px 16px;border:1px solid #e2c5f03b;background:linear-gradient(150deg,#30253db9,#1c1728c9);border-radius:24px;box-shadow:inset 0 1px #ffffff23,0 12px 30px #0003}
.install-step{display:flex;align-items:start;gap:15px;font-size:13.5px;line-height:1.55;padding:12px 0;border-top:1px solid #ffffff17}.install-step:first-of-type{border-top:0;padding-top:4px}.install-step:last-of-type{padding-bottom:4px}.install-step-num{flex:none;border-radius:10px;padding:5px 7px;font-size:10px;font-weight:800;line-height:1.3;letter-spacing:.3px;background:#bd86d523;color:#ecd4ff}.install-step strong{color:#fff;font-weight:700}.install-share{display:inline-block;width:20px;height:20px;vertical-align:middle;margin:0 3px;stroke:#e0b7f5;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none}
.install-small{font-size:11.5px;line-height:1.6;color:#bdb0c7;margin:15px 0 0}.install-small strong{color:#e7c9f6}
.install-cta{display:block;width:100%;min-height:48px;border-radius:14px;background:#d6aaf0;border:1px solid #efdbfa;color:#1d1229;font-size:15px;font-weight:800;margin:0 0 12px;cursor:pointer}.install-cta:focus-visible{outline:3px solid white;outline-offset:3px}
.install-foot{margin-top:24px;font-size:9px;letter-spacing:1.1px;color:#ab96b8;opacity:.85}
@media(max-width:359px){.install-gate{padding-inline:14px}.install-art{width:103px;height:103px;margin:15px 0 10px}.install-panel h1{font-size:37px}.install-device-steps{padding:13px}.install-step{font-size:12.5px;gap:10px}.install-intro{font-size:13px;margin-bottom:15px}}
@media(prefers-reduced-motion:reduce){.install-gate *, .install-gate *::before, .install-gate *::after{animation:none!important;transition:none!important}}

/* RC15: iOS Home Screen shell. Keep a normal-flow page and an opaque native
   status bar: black-translucent causes OS-level blur over header content on
   some iOS versions and misaligns the viewport. No JS height injection. */
html {height:100%; overflow:hidden; background:#100e1b;}
body {
  position:relative; inset:auto; height:100dvh; min-height:0;
  display:grid; grid-template-rows:auto minmax(0,1fr) auto;
  overflow:hidden;
}
@supports not (height:100dvh) {body{height:100vh;}}
@media (display-mode:standalone), (display-mode:fullscreen) {
  body{height:100vh; position:relative; inset:auto;}
}
html.fearcast-standalone body{height:100vh; position:relative; inset:auto;}
.app-main{height:auto; min-height:0; align-self:stretch; overflow-y:auto; overscroll-behavior-y:contain;}
.bottom-tabs{
  position:relative; left:auto; right:auto; top:auto; bottom:auto; inset:auto;
  transform:none; flex-shrink:0; margin:4px auto calc(8px + env(safe-area-inset-bottom));
}
body>.app-header {
  position:relative; isolation:isolate; background:#171320;
  border-bottom:1px solid #ffffff12; z-index:2;
  filter:none!important; -webkit-filter:none!important;
  backdrop-filter:none!important; -webkit-backdrop-filter:none!important;
  transform:none!important;
}
body>.app-header .brand, body>.app-header .brand-word,
body>.app-header .brand-mark, body>.app-header .settings-button {
  opacity:1; filter:none!important; -webkit-filter:none!important;
  backdrop-filter:none!important; -webkit-backdrop-filter:none!important;
  text-shadow:none!important; transform:none!important;
}
body>.app-header .brand-word{font-weight:800;letter-spacing:-.3px;}
body>.app-header .brand-mark{width:36px;height:36px;object-fit:cover;}
body>.app-header .settings-button svg{stroke-width:2;}
/* Use a deliberately solid status-bar sampling pixel, not a translucent overlay. */
.status-tint{position:fixed;z-index:1;top:0;left:0;width:1px;height:1px;background:#171320;pointer-events:none;}
.preferences-backup{margin:14px 0;padding:12px 0;border-bottom:1px solid var(--line)}
.preferences-backup summary{font-weight:700;cursor:pointer;padding-block:9px}
.preferences-backup .backup-actions{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}
.preferences-backup .backup-actions button{font-size:13px;min-height:44px}
#settingsBackupText{display:block;width:100%;max-width:100%;min-width:0;min-height:86px;resize:vertical;border:1px solid var(--line);background:#1b1727;border-radius:12px;padding:10px;font:12px/1.5 ui-monospace,monospace;color:#eee;overflow-wrap:anywhere}
#settingsBackupStatus{margin:10px 0;}

.lineup-hours {margin:0 0 14px;color:#d9c2ed;font-size:12px;line-height:1.4}
