.quick-start{margin:0 0 22px}.quick-kicker,.choice-caption,.route-label{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.69rem;letter-spacing:.055em;text-transform:uppercase;color:var(--muted);margin:0 0 9px}.quick-row{display:flex;flex-wrap:wrap;gap:7px}.quick{border:1px solid rgba(206,255,63,.36);background:rgba(206,255,63,.04);color:#e4e8df;border-radius:999px;padding:8px 11px;font-size:.78rem;cursor:pointer;transition:background .18s ease,color .18s ease}.quick:hover{background:var(--acid);color:var(--ink)}.result-card{padding:18px 19px 17px}.result-card-tools{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}.share-trigger{border:1px solid rgba(206,255,63,.55);background:rgba(206,255,63,.07);color:var(--paper);padding:6px 8px;font-size:.66rem;white-space:nowrap;cursor:pointer}.share-trigger:hover{background:var(--acid);color:var(--ink)}.share-trigger span{color:var(--acid)}.share-trigger:hover span{color:inherit}.share-panel{margin-top:12px;padding:11px;border:1px solid rgba(206,255,63,.35);background:rgba(10,11,12,.8)}.share-panel[hidden]{display:none}.share-panel p{margin:0 0 9px;color:#aeb1ac;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.62rem;letter-spacing:.04em;text-transform:uppercase}.share-panel>div{display:flex;flex-wrap:wrap;gap:7px}.share-panel button,.share-panel a{border:1px solid rgba(243,240,233,.25);background:transparent;color:var(--paper);padding:7px 8px;font-size:.7rem;cursor:pointer}.share-panel button:hover,.share-panel a:hover{border-color:var(--acid);color:var(--acid)}.share-panel>span{display:block;min-height:15px;margin-top:8px;color:var(--acid);font-size:.69rem}.route-overview{display:grid;grid-template-columns:1fr 30px 1fr 30px 1fr;align-items:start;margin:15px 0 14px}.route-node{min-width:0}.route-node b{display:flex;align-items:center;justify-content:center;width:23px;height:23px;border-radius:50%;background:var(--acid);color:var(--ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.67rem;margin-bottom:6px}.route-node span{display:block;color:#e1e4df;font-size:.7rem;line-height:1.18;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-link{padding:10px 5px 0;text-align:center}.route-link i{display:block;height:1px;background:rgba(206,255,63,.55)}.route-link span{display:block;color:#a6aaa4;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.58rem;margin-top:4px}.decision-bar{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:13px}.choice-caption{margin:0}.choice-fit{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.62rem;text-transform:uppercase;color:var(--acid);text-align:right}.plan-switcher{display:flex;gap:7px;margin:9px 0 12px}.plan-switcher button{flex:1;border:1px solid var(--line);background:transparent;color:#b9bdb7;padding:8px 7px;font-size:.7rem;cursor:pointer;line-height:1.12}.plan-switcher button.is-active{color:var(--ink);background:var(--paper);border-color:var(--paper);font-weight:800}.plan-list{margin-top:13px}.plan-list li{grid-template-columns:49px 1fr;gap:9px}.result-actions{display:flex;flex-wrap:wrap;gap:7px;border-top:1px solid var(--line);margin-top:15px;padding-top:13px}.result-actions button{border:1px solid rgba(243,240,233,.24);background:transparent;color:var(--paper);padding:7px 9px;font-size:.72rem;cursor:pointer}.result-actions button:hover{border-color:var(--acid);color:var(--acid)}@media(max-width:480px){.result-card-tools{gap:6px}.share-trigger{font-size:.62rem;padding:6px}.route-overview{grid-template-columns:1fr 22px 1fr 22px 1fr}.route-node span{font-size:.63rem}.route-link{padding-left:3px;padding-right:3px}.route-link span{font-size:.53rem}.plan-switcher button{font-size:.63rem;padding:8px 4px}.result-actions button{font-size:.68rem;padding:7px}}
.plan-list li{grid-template-columns:49px 1fr auto}.step-cost{padding-top:2px;color:var(--paper);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem;white-space:nowrap}.step-cost.is-free{color:var(--acid)}.budget-fit{margin-top:14px;padding-top:11px;border-top:1px solid var(--line)}.budget-fit-row{display:flex;justify-content:space-between;gap:12px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.64rem;letter-spacing:.04em;text-transform:uppercase;color:#b9bdb7}.budget-fit-row span:last-child{color:var(--acid)}.budget-fit-bar{height:3px;margin-top:8px;background:rgba(243,240,233,.12)}.budget-fit-bar i{display:block;height:100%;width:0;background:var(--acid);transition:width .35s ease,background .2s ease}.budget-fit.is-over .budget-fit-row span:last-child{color:var(--coral)}.budget-fit.is-over .budget-fit-bar i{background:var(--coral)}.budget-fix{margin-top:9px;border:1px solid var(--coral);background:rgba(255,125,85,.08);color:var(--paper);padding:6px 9px;font-size:.7rem;cursor:pointer}.budget-fix:hover{background:var(--coral);color:var(--ink)}.budget-fix[hidden]{display:none}.budget-hint{transition:color .2s ease}.budget-fit+.result-actions{margin-top:12px}@media(max-width:480px){.plan-list li{grid-template-columns:44px 1fr auto;gap:8px}.budget-fit-row{font-size:.58rem}}
/* Result card: floats over the photo, nudged left and past its bottom edge */
.result-pane{--card-x:clamp(-44px,-2.6vw,-20px);--card-y:60px;--pane-pad:22px;display:flex;align-items:flex-end;justify-content:flex-end;padding:var(--pane-pad);overflow:visible;margin-bottom:calc(var(--card-y) - var(--pane-pad))}
.scene-frame{position:absolute;inset:0;overflow:hidden;z-index:-2}
.result-card{position:relative;left:auto;right:auto;bottom:auto;width:min(100%,420px);transform:translate(var(--card-x),var(--card-y));background:rgba(17,18,19,.86);box-shadow:0 30px 70px rgba(0,0,0,.55)}
/* Share: primary button + popover with share methods */
.result-card-tools{position:relative;gap:10px}
.share-trigger{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--acid);background:var(--acid);color:var(--ink);padding:10px 14px;font-size:.8rem;font-weight:800;line-height:1;transition:background .18s ease,transform .18s ease}
.share-trigger svg{width:16px;height:16px;flex:none}
.share-trigger span,.share-trigger:hover span{color:inherit}
.share-trigger:hover,.share-trigger[aria-expanded="true"]{background:#e0ff75;border-color:#e0ff75;color:var(--ink);transform:translateY(-1px)}
.share-trigger:focus-visible{outline:2px solid var(--paper);outline-offset:3px}
.share-trigger.is-nudged{animation:share-nudge 1.3s ease-out 2}
@keyframes share-nudge{0%{box-shadow:0 0 0 0 rgba(206,255,63,.75)}75%,100%{box-shadow:0 0 0 16px rgba(206,255,63,0)}}
.share-panel{position:absolute;top:calc(100% + 12px);right:0;z-index:6;width:min(318px,calc(100vw - 56px));margin:0;padding:15px;border:1px solid rgba(206,255,63,.65);background:#141517;box-shadow:0 24px 56px rgba(0,0,0,.6)}
.share-panel:before{content:"";position:absolute;top:-6px;right:26px;width:10px;height:10px;background:#141517;border-left:1px solid rgba(206,255,63,.65);border-top:1px solid rgba(206,255,63,.65);transform:rotate(45deg)}
.share-panel .share-panel-title{margin:0 0 12px;color:var(--acid);font-size:.66rem;letter-spacing:.06em}
.share-panel .share-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.share-panel .share-option{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-height:78px;padding:12px 6px 10px;border:1px solid rgba(243,240,233,.22);background:rgba(243,240,233,.04);color:var(--paper);font-size:.74rem;font-weight:750;text-align:center;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}
.share-panel .share-option svg{width:22px;height:22px;color:var(--acid);transition:color .18s ease}
.share-panel .share-option:hover,.share-panel .share-option:focus-visible{background:var(--acid);border-color:var(--acid);color:var(--ink);outline:0;transform:translateY(-2px)}
.share-panel .share-option:hover svg,.share-panel .share-option:focus-visible svg{color:var(--ink)}
.share-panel .share-option.is-done{border-color:var(--acid);color:var(--acid)}
.share-panel>span{margin-top:10px;font-size:.72rem}
@media(max-width:850px){.result-pane{--card-x:0px;--card-y:40px}.result-card{width:100%}}
@media(max-width:480px){.result-pane{--card-y:30px;--pane-pad:13px}.share-trigger{font-size:.74rem;padding:9px 11px}.share-panel .share-option{min-height:70px;font-size:.68rem}}
@media(prefers-reduced-motion:reduce){.share-trigger.is-nudged{animation:none}.share-panel .share-option:hover{transform:none}}
/* Layout: intro + controls on the left, plan on the right (desktop);
   intro → Adjust plan → plan (phone), so the plan reads as the answer to the controls */
.holly-shell{grid-template-areas:"intro result" "adjust result";row-gap:0}
.planner-intro{grid-area:intro;align-self:end;position:relative;z-index:1}
.planner-pane{grid-area:adjust;align-self:start}
.result-pane{grid-area:result;align-self:center}
.adjust-toggle{display:none}
.plan-dock{display:none}
@media(max-width:850px){
.holly-shell{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "adjust" "result";row-gap:0;padding-top:26px;min-height:auto}
.planner-intro{align-self:auto}
.holly-title{font-size:clamp(2.6rem,11vw,3.6rem)}
.lead{margin:16px 0 18px;font-size:.98rem;line-height:1.5}
.quick-start{margin:0 0 20px}
.quick-row{flex-wrap:wrap;gap:8px}
.quick{min-height:44px;padding:0 15px;font-size:.84rem}
.planner-pane{margin-top:18px}
.result-pane{margin-top:22px}
.adjust-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:62px;padding:12px 16px;border:1px solid var(--line);background:rgba(243,240,233,.03);color:var(--paper);text-align:left;cursor:pointer}
.adjust-toggle b{display:block;font-size:1rem;font-weight:800;letter-spacing:-.02em}
.adjust-toggle small{display:block;margin-top:4px;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.66rem;letter-spacing:.04em;text-transform:uppercase;line-height:1.35}
.adjust-toggle i{position:relative;flex:none;width:34px;height:34px;border-radius:50%;background:var(--acid)}
.adjust-toggle i:before,.adjust-toggle i:after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;margin:-1px 0 0 -7px;background:var(--ink);transition:transform .2s ease}
.adjust-toggle i:after{transform:rotate(90deg)}
.planner-pane.is-open .adjust-toggle{border-color:rgba(206,255,63,.6)}
.planner-pane.is-open .adjust-toggle i:after{transform:rotate(0)}
.planner-controls{display:none;border-top:0}
.planner-pane.is-open .planner-controls{display:block;padding-top:4px}
/* touch targets ≥ 44px */
.choice{min-height:44px;padding:0 16px;font-size:.88rem}
.choice-row{gap:9px}
.plan-switcher button,.result-actions button,.share-trigger,.budget-fix{min-height:44px}
.result-actions button{padding:0 12px}
.primary-action,.secondary-action{min-height:50px}
.header-location{min-height:44px}
/* budget slider: big thumb, filled track */
.budget-wrap{flex-wrap:wrap;gap:2px 16px}
.budget-range{-webkit-appearance:none;appearance:none;width:100%;height:44px;margin:0;background:transparent;cursor:pointer;--fill:40%}
.budget-range:focus-visible{outline:2px solid var(--paper);outline-offset:2px}
.budget-range::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(to right,var(--acid) var(--fill),rgba(243,240,233,.18) var(--fill))}
.budget-range::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;margin-top:-12px;border-radius:50%;background:var(--acid);border:4px solid var(--ink);box-shadow:0 0 0 1px var(--acid)}
.budget-range::-moz-range-track{height:6px;border-radius:3px;background:rgba(243,240,233,.18)}
.budget-range::-moz-range-progress{height:6px;border-radius:3px;background:var(--acid)}
.budget-range::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--acid);border:4px solid var(--ink);box-shadow:0 0 0 1px var(--acid)}
.budget-hint{width:100%}
/* sticky plan dock */
.plan-dock{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:40;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:8px 8px 8px 14px;border:1px solid rgba(206,255,63,.45);background:rgba(17,18,19,.95);box-shadow:0 16px 40px rgba(0,0,0,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:translateY(calc(100% + 30px));visibility:hidden;transition:transform .28s ease,visibility 0s linear .28s}
.plan-dock.is-visible{transform:none;visibility:visible;transition:transform .28s ease}
.plan-dock-info{min-width:0}
.plan-dock-info strong{display:block;overflow:hidden;font-size:.86rem;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap}
.plan-dock-info span{display:block;margin-top:3px;color:var(--acid);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.64rem;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.plan-dock.is-over .plan-dock-info span{color:var(--coral)}
.plan-dock button{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 13px;font-size:.8rem;font-weight:800;cursor:pointer}
.plan-dock-see{border:1px solid var(--line);background:transparent;color:var(--paper)}
.plan-dock-share{border:1px solid var(--acid);background:var(--acid);color:var(--ink)}
.plan-dock-share svg{width:16px;height:16px}
.plan-dock.is-updated{animation:dock-pulse .7s ease-out}
@keyframes dock-pulse{0%{box-shadow:0 0 0 0 rgba(206,255,63,.55),0 16px 40px rgba(0,0,0,.55)}100%{box-shadow:0 0 0 14px rgba(206,255,63,0),0 16px 40px rgba(0,0,0,.55)}}
body[data-page="home"] .holly-footer{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:380px){.plan-dock button{padding:0 10px;font-size:.74rem}}
@media(prefers-reduced-motion:reduce){.plan-dock,.plan-dock.is-visible{transition:none}.plan-dock.is-updated{animation:none}}
/* Beta: plans without hand-picked places yet + email capture */
.result-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.beta-pill{display:inline-flex;align-items:center;padding:2px 6px;border:1px solid var(--coral);color:var(--coral);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.6rem;font-weight:700;letter-spacing:.08em;line-height:1.3;text-transform:uppercase}
.beta-pill[hidden]{display:none}
.beta-capture{margin-top:14px;padding:13px;border:1px solid rgba(255,125,85,.45);background:rgba(255,125,85,.06)}
.beta-capture[hidden]{display:none}
.beta-capture-head{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;color:var(--paper);font-size:.82rem;line-height:1.35}
.beta-capture-head .beta-pill{flex:none;margin-top:1px}
.beta-form{display:flex;flex-wrap:wrap;gap:7px}
.beta-form input[type=email]{flex:1 1 170px;min-width:0;min-height:40px;padding:0 11px;border:1px solid rgba(243,240,233,.25);background:rgba(10,11,12,.7);color:var(--paper);font:inherit;font-size:.82rem}
.beta-form input[type=email]:focus{outline:0;border-color:var(--acid)}
.beta-form button{flex:1 1 auto;min-height:40px;padding:0 12px;border:0;background:var(--acid);color:var(--ink);font-size:.78rem;font-weight:800;cursor:pointer}
.beta-form button:hover{background:#e0ff75}
.beta-form button[disabled]{opacity:.6;cursor:wait}
.beta-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.beta-capture-note{margin:8px 0 0;color:#aeb1ac;font-size:.7rem;line-height:1.4}
.beta-capture-note a{color:var(--paper);text-decoration:underline}
.beta-capture.is-error .beta-capture-note{color:var(--coral)}
.beta-capture.is-done .beta-capture-note{color:var(--acid);font-size:.8rem}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:850px){.beta-form input[type=email],.beta-form button{min-height:46px}.beta-form input[type=email]{font-size:1rem}}
.plan-list strong a{color:inherit;text-decoration:underline;text-decoration-color:rgba(206,255,63,.55);text-decoration-thickness:1px;text-underline-offset:3px}
.plan-list strong a:hover{color:var(--acid)}
.partner-tag{display:inline-block;margin-left:4px;padding:1px 5px;border:1px solid var(--line);color:var(--muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.55rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;vertical-align:2px}
