@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700&family=Noto+Serif+KR:wght@600;700&display=swap');

:root { --forest:#1f4b3f; --deep:#173a32; --leaf:#638b73; --cream:#f7f5ee; --paper:#fffefa; --ink:#20312c; --muted:#6f7e78; --line:#dde4dd; --sun:#e7bd67; --shadow:0 16px 45px rgba(28,57,48,.12); }
* { box-sizing:border-box; }
html { background:#e8ece7; color:var(--ink); font-family:"Noto Sans KR",sans-serif; }
body { margin:0; min-height:100vh; background:var(--cream); overflow-x:hidden; }
button,a { -webkit-tap-highlight-color:transparent; }
button { font:inherit; }
.app-shell { min-height:100vh; max-width:720px; margin:0 auto; background:var(--cream); overflow:hidden; position:relative; }
.topbar { height:72px; padding:0 22px; display:flex; align-items:center; justify-content:space-between; position:relative; z-index:5; }
.brand { color:var(--forest); display:flex; align-items:center; gap:9px; font-weight:700; font-size:19px; text-decoration:none; }
.brand-mark { width:32px; height:32px; display:grid; place-items:center; border-radius:50% 50% 46% 54%; background:var(--forest); color:white; font-family:"Noto Serif KR",serif; }
.area-chip { display:inline-flex; align-items:center; gap:7px; padding:7px 11px; border:1px solid rgba(31,75,63,.15); border-radius:20px; font-size:11px; color:var(--forest); background:rgba(255,255,255,.55); }
.live-dot { width:6px;height:6px;border-radius:50%;background:#5e9a6d;box-shadow:0 0 0 4px rgba(94,154,109,.12); }
.hero { position:relative; padding:36px 24px 44px; min-height:402px; display:flex; align-items:flex-end; background:linear-gradient(180deg,#edf2e9 0%,#f7f5ee 100%); }
.hero-copy { position:relative;z-index:2; }
.eyebrow { color:var(--leaf); font-weight:700; letter-spacing:.09em; font-size:12px; margin:0 0 13px; }
.hero h1,.planner-content h1,.result-header h1 { font-family:"Noto Serif KR",serif; letter-spacing:-.055em; }
.hero h1 { font-size:35px;line-height:1.35;margin:0 0 16px;color:var(--deep); }
.intro { max-width:390px;font-size:14px;line-height:1.75;color:var(--muted);margin:0; }
.hero-art { position:absolute;inset:0;overflow:hidden;opacity:.82; }
.sun { position:absolute; width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,#f2d99a 0%,rgba(231,189,103,.2) 65%,transparent 67%);right:52px;top:24px; }
.mountain { position:absolute;left:-10%;width:120%;border-radius:50% 50% 0 0/100% 100% 0 0;transform:rotate(-2deg); }
.mountain-back { height:170px;top:125px;background:#b7cab7;clip-path:polygon(0 80%,18% 35%,34% 68%,51% 20%,68% 58%,83% 26%,100% 71%,100% 100%,0 100%); }
.mountain-front { height:145px;top:185px;background:#789a84;clip-path:polygon(0 70%,16% 28%,31% 66%,47% 38%,62% 75%,78% 22%,100% 60%,100% 100%,0 100%); }
.lake { position:absolute;top:275px;left:0;right:0;height:100px;background:linear-gradient(180deg,rgba(189,211,202,.88),rgba(239,242,233,.7));transform:skewY(-2deg); }
.lake i { display:block;height:1px;background:rgba(255,255,255,.75);margin:20px auto;width:54%; }
.choice-section { padding:30px 20px 40px;background:var(--paper);position:relative;z-index:3;margin-top:-10px;border-radius:24px 24px 0 0; }
.choice-grid { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:14px; }
.choice-card { min-width:0;border:1px solid var(--line);background:white;border-radius:15px;min-height:65px;text-align:left;padding:12px 13px;color:#34443f;font-size:13px;font-weight:600;display:flex;align-items:center;gap:9px;cursor:pointer;transition:.2s; }
.choice-card span { font-size:17px; }.choice-card:active,.choice-card:hover { border-color:#8cac99;transform:translateY(-1px);box-shadow:0 6px 18px rgba(31,75,63,.08); }
.primary-cta { width:100%;border:0;border-radius:18px;background:var(--forest);color:white;min-height:82px;padding:15px 16px;display:grid;grid-template-columns:34px 1fr 18px;align-items:center;text-align:left;gap:9px;cursor:pointer;box-shadow:0 12px 28px rgba(31,75,63,.22); }
.primary-cta strong { display:block;font-size:14px;margin-bottom:5px; }.primary-cta small { display:block;font-size:10px;color:#c9d8d1;font-weight:400; }.sparkle { width:31px;height:31px;display:grid;place-items:center;background:rgba(255,255,255,.12);border-radius:50%;color:#f0d18a; }
.landing-footer { display:flex;justify-content:space-between;padding:20px 24px 32px;background:var(--paper);font-size:10px;color:#98a19e;border-top:1px solid #edf0ec; }
.sr-only { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0); }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #d6ad5d;outline-offset:3px}

.planner-shell { background:linear-gradient(180deg,#f6f4ed,#eeeee5);padding-bottom:30px; }
.icon-button { width:38px;height:38px;border:1px solid var(--line);background:rgba(255,255,255,.7);border-radius:50%;font-size:18px;color:var(--forest);cursor:pointer; }.brand-text{font-family:"Noto Serif KR",serif;font-weight:700;color:var(--forest)}.step-label{font-size:12px;color:var(--muted)}
.progress { height:3px;background:#dfe5dd; }.progress span{display:block;height:100%;width:25%;background:var(--forest);transition:width .35s ease;}
.planner-content { padding:50px 22px 24px;min-height:560px; }.planner-content h1{font-size:29px;line-height:1.4;margin:0 0 10px;color:var(--deep)}.question-help{font-size:13px;color:var(--muted);margin:0 0 34px;}
.answer-list { display:grid;gap:11px; }.answer-button{width:100%;padding:16px 17px;border:1px solid var(--line);background:rgba(255,255,255,.88);border-radius:16px;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer;color:var(--ink);transition:.2s}.answer-button strong{display:block;font-size:14px;margin-bottom:4px}.answer-button small{display:block;color:#8a9691;font-size:11px}.answer-button i{font-style:normal;color:#92a29c}.answer-button:hover,.answer-button.selected{border-color:var(--leaf);box-shadow:0 8px 24px rgba(31,75,63,.08);transform:translateY(-1px)}
.thinking-note{margin:0 22px;padding:15px 17px;border-radius:15px;background:#e3eadf;display:flex;gap:12px;align-items:center;color:var(--forest)}.thinking-note>span{font-size:20px;color:#b08437}.thinking-note p{font-size:11px;line-height:1.65;margin:0}.thinking-note strong{font-size:12px}
.location-consent{padding:52px 22px 34px;min-height:610px;text-align:center}.location-consent[hidden]{display:none}.location-symbol{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 24px;border-radius:50%;background:#e1eadf;color:var(--forest);font-size:27px}.location-consent h1{font-family:"Noto Serif KR",serif;font-size:28px;line-height:1.45;letter-spacing:-.055em;color:var(--deep);margin:0 0 14px}.location-consent>p:not(.eyebrow):not(.location-feedback){max-width:360px;margin:0 auto 30px;color:var(--muted);font-size:12px;line-height:1.75}.location-use{max-width:430px;margin:0 auto}.location-skip{border:0;background:transparent;color:#74817c;padding:17px;font-size:12px;cursor:pointer}.location-feedback{min-height:22px;margin:2px 0 0;color:var(--leaf);font-size:11px}.location-status{margin:0;padding:9px 18px;background:#edf3ec;color:#587160;font-size:10px;line-height:1.5;border-bottom:1px solid #e1e9e1}.location-status[hidden]{display:none}

.result-shell{background:#f2f0e8;}.result-header{background:var(--forest);color:white;padding:0 22px 74px;position:relative;overflow:hidden}.result-header:after{content:"";position:absolute;width:270px;height:270px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-100px;bottom:-125px;box-shadow:0 0 0 35px rgba(255,255,255,.025),0 0 0 70px rgba(255,255,255,.018)}.result-header nav{height:72px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}.brand.light{color:white}.brand.light .brand-mark{background:white;color:var(--forest)}.area-chip.dark{color:#d9e4df;border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.06)}.light-text{color:#c9d8d1;margin-top:34px}.result-header h1{font-size:30px;line-height:1.42;margin:0 0 12px;max-width:420px;position:relative;z-index:2}.result-header>p:last-child{font-size:12px;line-height:1.7;color:#c9d8d1;margin:0;max-width:380px;position:relative;z-index:2}
.itinerary-wrap{padding:0 17px 44px;margin-top:-38px;position:relative;z-index:3}.date-row{height:72px;background:white;border-radius:18px 18px 0 0;border-bottom:1px solid #edf0ec;padding:0 18px;display:flex;align-items:center;justify-content:space-between}.date-row strong{font-family:"Noto Serif KR",serif;font-size:18px;margin-right:8px}.date-row div span{font-size:11px;color:var(--muted)}.weather-pill{font-size:10px;background:#f3f5ed;color:#587160;padding:7px 10px;border-radius:15px}
.itinerary-card{background:white;border-radius:0 0 18px 18px;box-shadow:var(--shadow);min-height:300px;padding:8px 18px 19px}.timeline{list-style:none;margin:0;padding:0}.timeline li{display:grid;grid-template-columns:45px 31px 1fr;gap:8px;min-height:150px;padding-top:24px}.time{font-size:12px;font-weight:700;color:var(--forest);padding-top:3px}.timeline-line{position:relative;display:flex;justify-content:center}.timeline-line:after{content:"";position:absolute;width:1px;background:#d8e2dc;top:25px;bottom:-27px}.timeline li:last-child .timeline-line:after{display:none}.timeline-line span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#e5eee7;color:var(--forest);font-size:10px;font-weight:700;z-index:1}.timeline article{padding-bottom:20px}.category{font-size:10px;color:var(--leaf);font-weight:700}.timeline h2{font-family:"Noto Serif KR",serif;font-size:18px;margin:4px 0 7px;color:var(--deep)}.timeline p{font-size:11px;line-height:1.65;color:var(--muted);margin:0 0 10px}.why{display:inline-block;padding:6px 9px;border-radius:8px;background:#f4f6ef;color:#587160;font-size:9px;font-weight:600}
.weather-notice{margin:0;padding:10px 18px;background:#f8f2df;color:#786a47;font-size:10px;line-height:1.5;border-bottom:1px solid #eee8d7}.weather-notice[hidden]{display:none}
.operational-map-section{background:white;padding:18px;border-bottom:1px solid #edf0ec}.map-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:11px}.map-heading h2{font-family:"Noto Serif KR",serif;font-size:17px;color:var(--deep);margin:0}.map-legend{font-size:9px;color:#74827c}.map-context-note{margin:0 0 10px;padding:9px 11px;border-radius:10px;background:#f8f2df;color:#786a47;font-size:10px;line-height:1.5}.map-context-note[hidden],.map-empty[hidden],.operational-map[hidden]{display:none}.operational-map{height:285px;border:1px solid #dfe6df;border-radius:15px;overflow:hidden;background:#eef1eb;isolation:isolate}.map-empty{height:100px;display:grid;place-items:center;text-align:center;border-radius:15px;background:#f5f6f1;color:var(--muted);font-size:10px}.map-disclaimer{margin:9px 1px 0;color:#87918d;font-size:9px;line-height:1.5}.hapcheoni-marker-wrap{background:transparent;border:0}.hapcheoni-marker{display:grid;place-items:center;width:32px;height:32px;border:3px solid white;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);background:var(--forest);color:white;box-shadow:0 5px 13px rgba(22,58,48,.28);font-size:12px;font-weight:800}.hapcheoni-marker b{transform:rotate(45deg);font:inherit}.hapcheoni-marker.is-closing{background:#9b7432}.leaflet-popup-content-wrapper{border-radius:13px;box-shadow:0 8px 28px rgba(31,58,49,.16)}.leaflet-popup-content{margin:13px 15px}.map-popup{min-width:170px;color:var(--ink)}.map-popup strong{font-family:"Noto Serif KR",serif;font-size:13px}.map-popup p{margin:5px 0 0;font-size:10px;line-height:1.5;color:var(--muted)}.map-popup .popup-quality{display:inline-block;padding:2px 6px;border-radius:8px;background:#eef1e8;color:#6e796c}.timeline li{cursor:pointer;border-radius:12px;transition:background .2s,box-shadow .2s}.timeline li:focus{outline:2px solid #9bb3a5;outline-offset:2px}.timeline li.is-map-active{background:#f4f7f1;box-shadow:0 0 0 1px #dce7dc}.timeline li.is-map-active .timeline-line span{background:var(--forest);color:white}
.distance{display:block;color:#6f827a;font-size:9px;font-weight:600;margin:-2px 0 9px}
.reason-box{display:flex;gap:12px;margin:16px 2px;padding:16px;background:#e4e9dc;border-radius:15px;color:#38564a}.reason-box>span{color:#b08335;font-size:18px}.reason-box p{font-size:11px;line-height:1.65;margin:0}.reason-box strong{font-size:12px}.change-button{width:100%;height:54px;border:1px solid #bdc9c1;background:transparent;color:var(--forest);font-weight:700;border-radius:15px;cursor:pointer}.change-button span{font-size:18px;margin-right:7px}.start-over{display:block;text-align:center;margin-top:18px;color:#75827d;font-size:11px;text-decoration:none}.loading{min-height:290px;display:grid;place-content:center;text-align:center;color:var(--muted);font-size:11px}.loading span{width:34px;height:34px;border-radius:50%;border:3px solid #e3e9e4;border-top-color:var(--forest);animation:spin .8s linear infinite;margin:auto}.error{text-align:center;padding:70px 10px;color:#9a584e;font-size:12px}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:721px){body{padding:24px}.app-shell{min-height:calc(100vh - 48px);border-radius:24px;box-shadow:0 20px 70px rgba(27,51,43,.14)}.hero{padding-left:48px}.choice-section{padding-left:48px;padding-right:48px}.planner-content{padding-left:55px;padding-right:55px}.thinking-note{margin-left:55px;margin-right:55px}.itinerary-wrap{padding-left:45px;padding-right:45px}}
@media(max-width:370px){.hero h1{font-size:28px;overflow-wrap:anywhere}.intro{overflow-wrap:anywhere}.choice-card{font-size:11px;padding-left:9px;padding-right:9px}.result-header h1{font-size:26px}.runtime-toolbar{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.route-fact{display:block;margin:-2px 0 9px;color:#315f55;font-size:9px;font-weight:700}.route-fact.is-fallback{color:#7c817a;font-weight:500}
.operational-map-section[hidden]{display:none}.limited-options{text-align:center;padding:42px 9px 34px}.limited-symbol{width:45px;height:45px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;background:#e6ece2;color:var(--forest);font-size:22px}.limited-options h2{font-family:"Noto Serif KR",serif;color:var(--deep);font-size:20px;line-height:1.45;margin:0 0 13px}.limited-options>p{color:var(--muted);font-size:12px;line-height:1.75;margin:0 auto 12px;max-width:380px}.limited-options .data-gap{padding:8px 10px;border-radius:9px;background:#f4f3ed;color:#7c796d;font-size:10px}.next-actions{display:grid;gap:9px;margin-top:23px}.next-actions button,.next-actions a{min-height:48px;border-radius:14px;display:grid;place-items:center;text-decoration:none;font-size:12px;font-weight:700;cursor:pointer}.next-actions button{border:0;background:var(--forest);color:white}.next-actions a{border:1px solid #bdc9c1;color:var(--forest);background:white}
.runtime-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;background:#f7f8f3;border-bottom:1px solid #e6e9e3;color:#718078;font-size:9px}.runtime-toolbar button{flex:0 0 auto;border:1px solid #bdc9c1;border-radius:12px;background:white;color:var(--forest);padding:8px 10px;font-size:9px;font-weight:700;cursor:pointer}.runtime-alert{background:#f3f5ec;padding:20px 18px;border-bottom:1px solid #dfe6dd}.runtime-alert[hidden],.runtime-simulation[hidden]{display:none}.runtime-alert h2{font-family:"Noto Serif KR",serif;color:var(--deep);font-size:20px;margin:5px 0 9px}.runtime-alert>p{color:var(--muted);font-size:11px;line-height:1.7;margin:0 0 14px}.runtime-diff{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:14px}.runtime-diff>div{padding:11px;border-radius:11px;background:white}.runtime-diff strong{display:block;color:var(--forest);font-size:10px;margin-bottom:6px}.runtime-diff span{display:block;color:var(--muted);font-size:9px;line-height:1.55}.runtime-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.runtime-actions button{min-height:44px;border-radius:13px;font-size:11px;font-weight:700;cursor:pointer}.runtime-actions button:first-child{border:0;background:var(--forest);color:white}.runtime-actions button:last-child{border:1px solid #bdc9c1;background:white;color:var(--forest)}.runtime-simulation{padding:13px 18px;background:#302f2b;color:white}.runtime-simulation strong{font-size:10px}.runtime-simulation div{display:flex;gap:5px;overflow-x:auto;margin-top:8px;padding-bottom:2px}.runtime-simulation button{flex:0 0 auto;border:1px solid #66645e;background:#46443f;color:white;border-radius:9px;padding:7px 9px;font-size:8px;cursor:pointer}.progress-button{border:0;background:#edf2e9;color:var(--forest);border-radius:9px;padding:6px 8px;font-size:9px;font-weight:700;cursor:pointer}
.runtime-simulation>p{margin:7px 0 0;color:#cfcec8;font-size:9px;line-height:1.5}.runtime-simulation.is-loading button{opacity:.55;pointer-events:none}.runtime-simulation .demo-error{color:#ffb7aa}.runtime-simulation .demo-success{color:#bfe3c3}
.demo-change-experience{padding:14px 18px;background:white;border-bottom:1px solid #e5e9e3}.demo-change-experience[hidden],.demo-rain-prompt[hidden],.demo-change-transition[hidden],.runtime-reasoning[hidden]{display:none}.demo-change-trigger{border:0;background:transparent;color:#65776e;padding:5px 0;font-size:10px;font-weight:700;text-decoration:underline;text-decoration-color:#c8d2cc;text-underline-offset:4px;cursor:pointer}.demo-rain-prompt{margin-top:10px;padding:14px;border-radius:13px;background:#f4f6f1}.demo-rain-prompt p{margin:0 0 11px;color:var(--deep);font-size:12px;line-height:1.6}.demo-rain-prompt button{min-height:42px;border:0;border-radius:12px;background:var(--forest);color:white;padding:0 15px;font-size:11px;font-weight:700;cursor:pointer}.demo-change-transition{display:grid;justify-items:center;gap:9px;padding:18px 5px 6px;text-align:center}.demo-change-transition span{color:#718078;font-size:9px;font-weight:700}.demo-change-transition strong{font-family:"Noto Serif KR",serif;color:var(--deep);font-size:22px}.demo-change-transition i{color:#91a197;font-style:normal;font-size:16px}.demo-change-transition p{margin:0;color:#50645b;font-size:11px;line-height:1.65}.runtime-reasoning{display:grid;gap:8px;margin:0 0 15px}.runtime-reasoning>div{display:grid;grid-template-columns:52px minmax(0,1fr);gap:9px;padding:10px 11px;border-radius:10px;background:white}.runtime-reasoning strong{color:#718078;font-size:9px}.runtime-reasoning span{color:var(--deep);font-size:10px;font-weight:700}
.lodging-candidates{margin:18px 0 4px;padding:16px;border-radius:14px;background:#f4f3ed}.lodging-candidates h3{margin:0 0 6px;color:var(--deep);font-size:15px}.lodging-candidates>p{margin:0 0 12px;color:var(--muted);font-size:10px;line-height:1.6}.lodging-candidates article{display:grid;gap:3px;padding:9px 0;border-top:1px solid #dde1d7}.lodging-candidates strong{font-size:12px;color:var(--forest)}.lodging-candidates span{font-size:9px;color:var(--muted)}
.marker-restaurant .hapcheoni-marker{background:#7b5d3e}.marker-cafe .hapcheoni-marker{background:#8a6f83}.marker-accommodation .hapcheoni-marker{background:#526b86}
.marker-golf .hapcheoni-marker{background:#527050}.marker-camping .hapcheoni-marker,.marker-glamping .hapcheoni-marker{background:#80684b}.marker-water_leisure .hapcheoni-marker{background:#477d8c}.marker-experience .hapcheoni-marker{background:#8a6451}.marker-event .hapcheoni-marker{background:#765777}.leisure-candidates small{font-size:9px;line-height:1.5;color:#786a47}
.concierge-input{margin-bottom:22px;padding:19px;border:1px solid #dce4dc;border-radius:18px;background:rgba(255,255,255,.86);box-shadow:0 9px 25px rgba(31,75,63,.06)}.concierge-input h2{font-family:"Noto Serif KR",serif;font-size:19px;line-height:1.45;color:var(--deep);margin:5px 0 12px}.concierge-input textarea{width:100%;min-height:88px;resize:vertical;border:1px solid #d8e1da;border-radius:13px;background:#fbfcf8;padding:13px;color:var(--ink);font:inherit;font-size:12px;line-height:1.65}.concierge-input>button{width:100%;min-height:47px;margin-top:9px;border:0;border-radius:13px;background:var(--forest);color:white;font-size:12px;font-weight:700;cursor:pointer}.concierge-feedback{margin:9px 1px 0;color:#8d5a50;font-size:10px}.concierge-feedback[hidden],.concierge-confirm[hidden]{display:none}.concierge-confirm{margin-top:12px;padding:13px;border-radius:12px;background:#edf2e9}.concierge-confirm p{margin:0 0 10px;color:#496158;font-size:11px;line-height:1.6}.concierge-confirm div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.concierge-confirm button{min-height:39px;border-radius:11px;font-size:10px;font-weight:700;cursor:pointer}.concierge-confirm button:first-child{border:0;background:var(--forest);color:white}.concierge-confirm button:last-child{border:1px solid #bac8bf;background:white;color:var(--forest)}.choice-divider{display:flex;align-items:center;gap:10px;margin:0 0 14px;color:#929c97;font-size:9px}.choice-divider:before,.choice-divider:after{content:"";height:1px;background:#e1e5df;flex:1}.concierge-followup{padding:12px 18px;background:white;border-bottom:1px solid #e5e9e3}.concierge-followup label{display:block;margin-bottom:7px;color:#61736b;font-size:10px;font-weight:700}.concierge-followup>div{display:grid;grid-template-columns:1fr auto;gap:7px}.concierge-followup input{min-width:0;border:1px solid #d7e0d9;border-radius:11px;padding:10px 11px;font-size:10px}.concierge-followup button{border:0;border-radius:11px;background:var(--forest);color:white;padding:0 12px;font-size:9px;font-weight:700;cursor:pointer}.concierge-followup p{margin:7px 1px 0;color:#587160;font-size:9px}.concierge-followup p[hidden]{display:none}
.voice-input{display:flex;align-items:center;gap:10px;margin:8px 0 2px}.voice-input[hidden],.voice-feedback[hidden]{display:none}.voice-input button{flex:0 0 auto;min-width:104px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #b9c9c0;border-radius:12px;background:white;color:var(--forest);font-size:11px;cursor:pointer}.voice-input button>.voice-dot{width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#edf2e9;color:#a45b50;font-size:8px}.voice-input button.is-listening{border-color:#7c9c89;background:#edf3ed}.voice-input button.is-listening>.voice-dot{animation:voicePulse 1.2s ease-in-out infinite}.voice-input p{margin:0;color:#7d8a84;font-size:8px;line-height:1.5}.voice-feedback{margin:7px 1px 0;color:#587160;font-size:9px;line-height:1.5}@keyframes voicePulse{50%{box-shadow:0 0 0 6px rgba(164,91,80,.12)}}
.voice-input button .voice-bars{width:0;height:24px;display:flex;align-items:center;gap:2px;overflow:hidden;opacity:0;transform:scaleX(.98);transform-origin:left center;transition:width .18s ease,opacity .18s ease}.voice-input button .voice-bars i{display:block;flex:0 0 3px;height:22px;border-radius:3px;background:#527565;transform:scaleY(.2);transform-origin:center bottom;will-change:transform}.voice-input button .voice-bars.is-listening{width:28px;opacity:1;margin-left:2px;animation:voiceBarsBreathe 1.15s ease-in-out infinite alternate}.voice-bars.is-listening i:nth-child(1){animation:voiceBounce1 .52s cubic-bezier(.34,.08,.38,1) -.19s infinite}.voice-bars.is-listening i:nth-child(2){animation:voiceBounce2 .67s cubic-bezier(.4,0,.2,1) -.43s infinite}.voice-bars.is-listening i:nth-child(3){animation:voiceBounce3 .43s cubic-bezier(.3,.02,.25,1) -.11s infinite}.voice-bars.is-listening i:nth-child(4){animation:voiceBounce4 .74s cubic-bezier(.4,0,.18,1) -.58s infinite}.voice-bars.is-listening i:nth-child(5){animation:voiceBounce5 .58s cubic-bezier(.32,.04,.26,1) -.34s infinite}.voice-bars.is-listening i:nth-child(6){animation:voiceBounce6 .81s cubic-bezier(.4,0,.2,1) -.67s infinite}.concierge-input textarea.is-voice-listening::placeholder{color:transparent}@keyframes voiceBounce1{0%{transform:scaleY(.25)}28%{transform:scaleY(.75)}57%{transform:scaleY(.35)}82%{transform:scaleY(1)}100%{transform:scaleY(.25)}}@keyframes voiceBounce2{0%{transform:scaleY(.45)}24%{transform:scaleY(1)}52%{transform:scaleY(.25)}79%{transform:scaleY(.65)}100%{transform:scaleY(.45)}}@keyframes voiceBounce3{0%{transform:scaleY(.2)}31%{transform:scaleY(.6)}63%{transform:scaleY(1)}86%{transform:scaleY(.4)}100%{transform:scaleY(.2)}}@keyframes voiceBounce4{0%{transform:scaleY(.65)}27%{transform:scaleY(.3)}55%{transform:scaleY(.9)}81%{transform:scaleY(.2)}100%{transform:scaleY(.65)}}@keyframes voiceBounce5{0%{transform:scaleY(.3)}23%{transform:scaleY(.85)}54%{transform:scaleY(.45)}83%{transform:scaleY(1)}100%{transform:scaleY(.3)}}@keyframes voiceBounce6{0%{transform:scaleY(.5)}29%{transform:scaleY(.25)}58%{transform:scaleY(.75)}84%{transform:scaleY(.35)}100%{transform:scaleY(.5)}}@keyframes voiceBarsBreathe{from{transform:scaleX(.98)}to{transform:scaleX(1.02)}}@keyframes voiceGentleBounce1{0%,100%{transform:scaleY(.45)}50%{transform:scaleY(.8)}}@keyframes voiceGentleBounce2{0%,100%{transform:scaleY(.55)}50%{transform:scaleY(.75)}}@keyframes voiceGentleBounce3{0%,100%{transform:scaleY(.48)}50%{transform:scaleY(.78)}}@media(prefers-reduced-motion:reduce){.voice-input button .voice-bars.is-listening{animation:none!important;transform:scaleX(1)}.voice-bars.is-listening i{animation-name:voiceGentleBounce1!important;animation-duration:1.1s!important;animation-timing-function:ease-in-out!important;animation-iteration-count:infinite!important;animation-play-state:running!important}.voice-bars.is-listening i:nth-child(2),.voice-bars.is-listening i:nth-child(5){animation-name:voiceGentleBounce2!important;animation-duration:1.3s!important;animation-delay:-.45s!important}.voice-bars.is-listening i:nth-child(3),.voice-bars.is-listening i:nth-child(6){animation-name:voiceGentleBounce3!important;animation-duration:.95s!important;animation-delay:-.7s!important}.voice-bars.is-listening i:nth-child(4){animation-delay:-.25s!important}}
.item-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.item-actions small{color:#866f48;font-size:8px}.navigation-button,.map-navigation-button{min-height:34px;border:1px solid #9db3a7;border-radius:10px;background:white;color:var(--forest);padding:6px 11px;font-size:9px;font-weight:700;cursor:pointer}.map-navigation-button{width:100%;margin-top:8px}.navigation-sheet{position:fixed;inset:0;z-index:1000;display:grid;align-items:end;justify-items:center}.navigation-sheet[hidden]{display:none}.navigation-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(17,38,32,.46)}.navigation-panel{position:relative;width:min(720px,100%);padding:24px 22px max(24px,env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:var(--paper);box-shadow:0 -18px 55px rgba(17,38,32,.2)}.navigation-panel h2{font-family:"Noto Serif KR",serif;color:var(--deep);font-size:21px;margin:5px 0 7px}.navigation-panel>p{color:var(--muted);font-size:11px;line-height:1.6}.navigation-close{position:absolute;right:18px;top:16px;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:white;color:var(--forest);font-size:20px;cursor:pointer}.navigation-warning{display:grid;gap:4px;margin:14px 0;padding:12px;border-radius:12px;background:#f7f0df;color:#725f3c}.navigation-warning[hidden]{display:none}.navigation-warning strong{font-size:11px}.navigation-warning span,.navigation-warning label{font-size:9px}.navigation-warning label{display:flex;align-items:center;gap:7px;margin-top:5px}.navigation-warning input{width:18px;height:18px}.navigation-providers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px}.navigation-providers button{min-height:48px;border:1px solid #b8c8bf;border-radius:13px;background:white;color:var(--forest);font-size:11px;font-weight:700;cursor:pointer}.navigation-providers button.is-remembered{box-shadow:0 0 0 2px #d7b76e inset}.navigation-providers button:disabled{opacity:.45;cursor:not-allowed}.navigation-privacy{margin:12px 0 0!important;font-size:8px!important}.navigation-feedback{min-height:16px;margin:6px 0 0!important;color:#587160!important;font-size:9px!important}

/* Sprint 5A: existing intelligence, presented as one calm concierge journey. */
.understanding-title{display:block;margin-bottom:9px;color:var(--deep);font-family:"Noto Serif KR",serif;font-size:13px}.concierge-confirm .understanding-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:9px}.understanding-chips span{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border-radius:999px;background:white;color:#38564a;font-size:10px}.understanding-chips small{color:#75877e;font-size:8px}.concierge-confirm .confirmation-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.understanding-note{border-top:1px solid #dce5da;padding-top:9px}.demo-natural-entry .concierge-input{box-shadow:0 0 0 2px rgba(214,173,93,.32),0 9px 25px rgba(31,75,63,.06)}
.demo-guide{padding:13px 18px;background:#323c37;color:white;border-bottom:1px solid rgba(255,255,255,.08)}.demo-guide[hidden]{display:none}.demo-guide>span{font-size:9px;color:#d8c48f;font-weight:700}.demo-guide>div{display:flex;gap:6px;overflow-x:auto;margin-top:8px}.demo-guide a,.demo-guide strong,.demo-guide button{flex:0 0 auto;min-height:34px;display:flex;align-items:center;padding:0 10px;border-radius:10px;border:1px solid #68736d;background:#46514b;color:white;text-decoration:none;font-size:9px;font-weight:600}.demo-guide button{font:inherit;cursor:pointer}.demo-guide strong{background:#f3f0e5;color:var(--deep);border-color:#f3f0e5}
.live-context-strip{display:flex;align-items:center;gap:12px;padding:11px 18px;background:#fafbf7;border-bottom:1px solid #e6ebe4}.live-context-strip[hidden]{display:none}.live-context-strip>strong{flex:0 0 auto;color:var(--forest);font-size:10px}.live-context-strip>div{display:flex;min-width:0;gap:6px;overflow-x:auto}.live-context-strip span{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#edf2e9;color:#536b61;font-size:9px}.live-context-strip .context-location{background:#e8f0ed;color:#315f55}
.plan-reason{margin:0;padding:17px 18px;border-radius:0;background:#e4e9dc;border-bottom:1px solid #d9e0d4}.itinerary-story-heading{padding:24px 18px 10px;background:white}.itinerary-story-heading h2{font-family:"Noto Serif KR",serif;color:var(--deep);font-size:20px;margin:4px 0 0}.concierge-followup h2{font-family:"Noto Serif KR",serif;color:var(--deep);font-size:15px;margin:0 0 9px}.concierge-followup input{font-size:12px;min-height:42px}.concierge-followup button{min-height:42px;font-size:10px}.runtime-decision-feedback{margin:0;padding:11px 18px;background:#e8f0e5;color:#365b4c;font-size:10px;font-weight:700;border-bottom:1px solid #dce6da}.runtime-decision-feedback[hidden]{display:none}
.itinerary-card{border-radius:0 0 18px 18px}.timeline li{grid-template-columns:76px 31px minmax(0,1fr);min-height:0;padding-top:23px}.time{white-space:nowrap;font-size:11px}.timeline article{min-width:0;padding-bottom:16px}.category-pill{display:inline-flex;padding:4px 7px;border-radius:999px;background:#edf2e9;color:#315f55;font-size:9px;font-weight:700}.category-식사{background:#f3ece3;color:#735333}.category-카페{background:#f1ebf0;color:#765e70}.category-숙박{background:#e9eef3;color:#4e657d}.category-골프,.category-캠핑,.category-글램핑{background:#e9efe5;color:#4b684d}.category-수상{background:#e7f0f2;color:#376d79}.category-체험{background:#f2eae5;color:#765540}.category-행사{background:#f0e9f1;color:#6f4f70}.status-badge{display:inline-flex;margin:0 0 9px;padding:4px 7px;border:1px solid #dfe4dc;border-radius:999px;color:#66756e;background:#fafbf8;font-size:8px;font-weight:600}.status-badge.is-check{justify-self:start;margin:3px 0 0}.why{display:block;margin:0 0 9px;padding:9px 10px;line-height:1.55}.route-connector{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:38px;margin:0 0 0 84px;border-top:1px dashed #dce3dc;color:#62766c;font-size:9px}.route-connector span{color:#8da197;font-size:15px}.distance{margin-top:0}.operational-map-section{margin-top:16px;border-radius:18px;box-shadow:0 8px 25px rgba(31,75,63,.06)}
@media(max-width:430px){.itinerary-wrap{padding-left:12px;padding-right:12px}.result-header{padding-left:19px;padding-right:19px}.operational-map{height:245px}.runtime-diff{grid-template-columns:1fr}.runtime-actions button{min-height:48px}.choice-card,.primary-cta,.concierge-input>button{min-height:48px}}
@media(max-width:370px){.choice-section{padding-left:14px;padding-right:14px}.concierge-input{padding:15px}.concierge-input textarea{font-size:16px}.voice-input{align-items:center}.voice-input button{min-height:48px}.timeline li{grid-template-columns:66px 27px minmax(0,1fr);gap:5px}.time{font-size:10px}.timeline h2{font-size:16px}.itinerary-card{padding-left:12px;padding-right:12px}.route-connector{margin-left:69px}.operational-map{height:220px}.date-row{padding-left:14px;padding-right:14px}.weather-pill{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navigation-panel{padding-left:16px;padding-right:16px}.navigation-providers{grid-template-columns:1fr}.navigation-providers button{min-height:50px}}
.entity-information{margin-top:14px;padding:17px;border-radius:14px;background:#edf2e9;color:var(--ink)}.entity-information[hidden]{display:none}.entity-information h3{font-family:"Noto Serif KR",serif;color:var(--deep);font-size:18px;margin:3px 0 9px}.entity-information>p{font-size:11px;line-height:1.7;color:#50645b;margin:0 0 10px}.entity-facts{display:grid!important;grid-template-columns:1fr!important;gap:5px!important;margin:12px 0}.entity-facts span{font-size:9px;color:#65766e}.entity-actions{display:flex!important;flex-wrap:wrap;gap:7px!important;margin-top:14px}.entity-actions button{min-height:39px!important;padding:0 11px;border:1px solid #aebfb5!important;border-radius:11px!important;background:white!important;color:var(--forest)!important;font-size:9px!important;font-weight:700;cursor:pointer}.entity-results{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;margin-top:12px}.entity-results article{padding:10px;border-radius:10px;background:white}.entity-results strong{display:block;font-size:11px;color:var(--forest)}.entity-results small{font-size:8px;color:var(--muted)}
.entity-actions a{min-height:39px;padding:0 11px;border:1px solid #aebfb5;border-radius:11px;background:white;color:var(--forest);font-size:9px;font-weight:700;display:inline-flex;align-items:center;text-decoration:none}
.entity-resolution-confirm{margin-top:12px;padding:14px;border:1px solid #cfddd2;border-radius:12px;background:#f3f7f1}.entity-resolution-confirm[hidden]{display:none}.entity-resolution-confirm>strong{display:block;margin-bottom:11px;color:var(--deep);font-size:13px}.entity-resolution-confirm>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.entity-resolution-confirm button{min-height:41px;border-radius:11px;font-size:11px;font-weight:700;cursor:pointer}.entity-resolution-confirm button:first-child{border:0;background:var(--forest);color:white}.entity-resolution-confirm button:last-child{border:1px solid #bac8bf;background:white;color:var(--forest)}
.concierge-followup>div{grid-template-columns:minmax(0,1fr) auto;max-width:100%}.concierge-followup input{width:100%}
.app-shell{width:100%}.area-chip{min-width:0;max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.concierge-input{min-width:0;max-width:100%;overflow:hidden}.voice-input{min-width:0;max-width:100%;flex-wrap:wrap}.voice-input p{min-width:0;flex:1 1 170px;overflow-wrap:anywhere}.concierge-input textarea,.concierge-input>button{max-width:100%}
@media(max-width:720px){.app-shell{width:100vw;max-width:100vw}.choice-section,.hero,.topbar{max-width:100vw}.concierge-input{width:100%}}

/* Recording-first presentation canvas. Every rule is URL-gated by the server-rendered body class. */
@media(min-width:721px){
  html:has(body.presentation-mode){background:#dfe6df;scroll-behavior:smooth}
  body.presentation-mode{background:radial-gradient(circle at 50% 8%,#f4f6f1 0,#e5ebe5 62%,#dce4dd 100%)}
  .presentation-mode .app-shell{width:min(92vw,clamp(1080px,calc(43vw + 493px),1320px));max-width:1320px;min-height:calc(100vh - 48px);box-shadow:0 0 70px rgba(23,58,50,.13)}

  .presentation-mode .topbar{height:60px;padding:0 34px}
  .presentation-mode .brand{font-size:21px}.presentation-mode .brand-mark{width:36px;height:36px}
  .presentation-mode .area-chip{font-size:13px;padding:8px 13px}
  .presentation-mode .hero{min-height:282px;padding:24px clamp(42px,5vw,72px) 30px;align-items:flex-end}
  .presentation-mode .hero h1{font-size:42px;line-height:1.25;margin-bottom:10px}
  .presentation-mode .hero .eyebrow{font-size:13px;margin-bottom:8px}
  .presentation-mode .intro{max-width:620px;font-size:16px;line-height:1.6}
  .presentation-mode .sun{right:95px;top:10px}.presentation-mode .mountain-back{top:65px}.presentation-mode .mountain-front{top:118px}.presentation-mode .lake{top:205px}
  .presentation-mode .choice-section{padding:20px clamp(34px,4vw,60px) 22px;margin-top:-8px}
  .presentation-mode .concierge-input{padding:20px 24px;margin-bottom:14px}
  .presentation-mode .concierge-input h2{font-size:24px;margin:3px 0 9px}
  .presentation-mode .concierge-input textarea{min-height:72px;font-size:15px;padding:11px 14px}
  .presentation-mode .concierge-input>button{min-height:50px;font-size:15px}
  .presentation-mode .voice-input{margin-top:8px;flex-wrap:nowrap}
  .presentation-mode .voice-input button{min-width:164px;min-height:50px;font-size:15px}
  .presentation-mode .voice-input p,.presentation-mode .voice-feedback{font-size:11px}
  .presentation-mode .understanding-title{font-size:18px}
  .presentation-mode .understanding-chips span{padding:9px 13px;font-size:15px;border:1px solid #d3dfd6;box-shadow:0 3px 10px rgba(31,75,63,.05)}
  .presentation-mode .understanding-chips small{font-size:11px}
  .presentation-mode .concierge-confirm p{font-size:13px}.presentation-mode .concierge-confirm button{min-height:44px;font-size:13px}
  .presentation-mode .choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}
  .presentation-mode .choice-card{min-height:48px;font-size:14px;padding:8px 14px}
  .presentation-mode .primary-cta{min-height:64px}.presentation-mode .primary-cta strong{font-size:16px}.presentation-mode .primary-cta small{font-size:11px}.presentation-mode .landing-footer{padding:12px clamp(34px,4vw,60px) 14px}

  .presentation-mode.planner-page .app-shell{max-width:1320px}
  .presentation-mode .planner-content{padding:32px 54px 18px;min-height:0}
  .presentation-mode .planner-content h1{font-size:35px}.presentation-mode .question-help{font-size:15px;margin-bottom:22px}
  .presentation-mode .answer-list{gap:8px}.presentation-mode .answer-button{padding:12px 18px}.presentation-mode .answer-button strong{font-size:16px}.presentation-mode .answer-button small{font-size:12px}
  .presentation-mode .thinking-note{margin:0 54px;padding:12px 16px}.presentation-mode .location-consent{padding:32px 54px 24px;min-height:0}

  .presentation-mode.result-page .app-shell{max-width:1320px}
  .presentation-mode .result-header{padding:25px clamp(40px,5vw,72px) 27px}.presentation-mode .result-header h1{font-size:34px;max-width:650px}.presentation-mode .result-header>p{font-size:14px;max-width:620px}
  .presentation-mode .itinerary-wrap{padding:18px clamp(28px,4vw,54px) 34px}
  .presentation-mode .date-row,.presentation-mode .live-context-strip,.presentation-mode .plan-reason,.presentation-mode .concierge-followup,.presentation-mode .demo-change-experience,.presentation-mode .runtime-alert,.presentation-mode .runtime-decision-feedback{border-left:1px solid #e2e8e1;border-right:1px solid #e2e8e1}
  .presentation-mode .date-row{padding:12px 22px}.presentation-mode .weather-pill{font-size:12px}
  .presentation-mode .live-context-strip{padding:12px 22px;gap:16px}.presentation-mode .live-context-strip>strong{font-size:15px}.presentation-mode .live-context-strip span{font-size:13px;padding:7px 11px}
  .presentation-mode .plan-reason{padding:13px 22px}.presentation-mode .reason-box p{max-width:820px;font-size:12px}
  .presentation-mode .concierge-followup{padding:11px 22px}.presentation-mode .concierge-followup h2{font-size:18px;margin-bottom:7px}.presentation-mode .concierge-followup input{font-size:14px}.presentation-mode .concierge-followup button{font-size:13px;padding:0 18px}
  .presentation-mode .itinerary-story-heading{padding:18px 22px 8px}.presentation-mode .itinerary-story-heading h2{font-size:27px}
  .presentation-mode .itinerary-card{padding:0 22px 8px}.presentation-mode .timeline li{grid-template-columns:95px 34px minmax(0,1fr);padding-top:17px}.presentation-mode .timeline article{padding-bottom:11px}
  .presentation-mode .time{font-size:14px}.presentation-mode .timeline h2{font-size:22px;margin:5px 0}.presentation-mode .timeline article>p{font-size:13px}.presentation-mode .category-pill{font-size:11px}.presentation-mode .why{font-size:13px;padding:8px 11px;margin-bottom:7px}.presentation-mode .route-connector{min-height:30px;margin-left:103px;font-size:12px}
  .presentation-mode .navigation-button,.presentation-mode .progress-button{min-height:38px;font-size:12px}
  .presentation-mode .operational-map-section{margin-top:12px}.presentation-mode .map-heading{padding:16px 20px 10px}.presentation-mode .map-heading h2{font-size:22px}.presentation-mode .operational-map{height:310px}.presentation-mode .map-disclaimer{font-size:10px}
  .presentation-mode .demo-change-experience{padding:11px 22px}.presentation-mode .demo-change-trigger{font-size:14px}.presentation-mode .demo-rain-prompt{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 16px}.presentation-mode .demo-rain-prompt p{font-size:16px;margin:0}.presentation-mode .demo-rain-prompt button{font-size:14px;white-space:nowrap}
  .presentation-mode .demo-change-transition{padding:12px 5px 4px;gap:5px}.presentation-mode .demo-change-transition strong{font-size:27px}.presentation-mode .demo-change-transition p{font-size:14px}
  .presentation-mode .runtime-alert{padding:16px 22px}.presentation-mode .runtime-alert h2{font-size:28px;margin:3px 0 5px}.presentation-mode .runtime-alert>p{font-size:13px;line-height:1.55;margin-bottom:9px}
  .presentation-mode .runtime-reasoning{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.presentation-mode .runtime-reasoning>div{grid-template-columns:44px 1fr;padding:9px}.presentation-mode .runtime-reasoning strong{font-size:11px}.presentation-mode .runtime-reasoning span{font-size:13px}
  .presentation-mode .runtime-diff{position:relative;margin-bottom:10px}.presentation-mode .runtime-diff:after{content:"→";position:absolute;left:50%;top:50%;translate:-50% -50%;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--forest);color:white;font-size:14px}.presentation-mode .runtime-diff>div{padding:10px 15px}.presentation-mode .runtime-diff strong{font-size:13px}.presentation-mode .runtime-diff span{font-size:12px}.presentation-mode .runtime-actions button{min-height:46px;font-size:14px}
  .presentation-mode .runtime-decision-feedback{padding:14px 22px;font-size:15px}.presentation-mode .presentation-end-statement{padding:22px;text-align:center;color:#6b7b74;font-size:12px;line-height:1.7}.presentation-mode .presentation-end-statement strong{color:var(--forest);font-size:15px}
}

@media(min-width:721px) and (max-height:800px){
  .presentation-mode .topbar{height:52px}.presentation-mode .hero{min-height:238px;padding-top:15px;padding-bottom:22px}.presentation-mode .hero h1{font-size:37px}.presentation-mode .choice-section{padding-top:15px}.presentation-mode .concierge-input{padding-top:15px;padding-bottom:15px}.presentation-mode .concierge-input textarea{min-height:60px}.presentation-mode .choice-card{min-height:44px}
  .presentation-mode .result-header{padding-top:18px;padding-bottom:20px}.presentation-mode .itinerary-wrap{padding-top:12px}.presentation-mode .operational-map{height:270px}
}

/* Tall 16:9 recording frame: composed opening-screen vertical balance. */
@media(min-width:721px) and (min-height:951px){
  .presentation-mode.landing-page .topbar{height:66px}
  .presentation-mode .hero{min-height:320px;padding-top:30px;padding-bottom:36px}
  .presentation-mode .hero h1{font-size:46px;line-height:1.28;margin-bottom:14px}
  .presentation-mode .hero .eyebrow{margin-bottom:11px}
  .presentation-mode .choice-section{padding-top:26px;padding-bottom:28px}
  .presentation-mode .concierge-input{padding-top:24px;padding-bottom:24px;margin-bottom:20px}
  .presentation-mode .concierge-input h2{margin-bottom:13px}
  .presentation-mode .concierge-input textarea{min-height:92px;padding-top:14px;padding-bottom:14px}
  .presentation-mode .voice-input{margin-top:12px;margin-bottom:5px;gap:14px}
  .presentation-mode .voice-input button{min-height:56px;font-size:16px}
  .presentation-mode .voice-input button>.voice-dot{width:24px;height:24px}
  .presentation-mode .concierge-input>button{min-height:54px;margin-top:12px}
  .presentation-mode .choice-divider{margin-top:2px;margin-bottom:18px}
  .presentation-mode .choice-grid{gap:12px;margin-bottom:16px}
  .presentation-mode .choice-card{min-height:56px}
  .presentation-mode .primary-cta{min-height:70px}
}

/* Shared speech-session control used by initial and follow-up conversational inputs. */
.concierge-followup>div{grid-template-columns:minmax(0,1fr) auto auto}
.speech-session-button .voice-bars{width:0;height:24px;display:flex;align-items:center;gap:2px;overflow:hidden;opacity:0;transform:scaleX(.98);transform-origin:left center;transition:width .18s ease,opacity .18s ease}
.speech-session-button .voice-bars i{display:block;flex:0 0 3px;height:22px;border-radius:3px;background:#527565;transform:scaleY(.2);transform-origin:center bottom;will-change:transform}
.speech-session-button .voice-bars.is-listening{width:28px;opacity:1;margin-left:2px;animation:voiceBarsBreathe 1.15s ease-in-out infinite alternate}
.concierge-followup input.is-voice-listening::placeholder{color:transparent}
.followup-voice-button{min-height:42px!important;display:inline-flex;align-items:center;justify-content:center;gap:6px!important;border:1px solid #b9c9c0!important;background:white!important;color:var(--forest)!important;white-space:nowrap}
.followup-voice-button>.voice-dot{color:#a45b50;font-size:8px}.followup-voice-button.is-listening{background:#edf3ed!important;border-color:#7c9c89!important}
@media(prefers-reduced-motion:reduce){.speech-session-button .voice-bars.is-listening{animation:none!important;transform:scaleX(1)}}
@media(max-width:430px){.concierge-followup>div{grid-template-columns:1fr 1fr}.concierge-followup input{grid-column:1/-1}.concierge-followup button{min-height:44px}}

.economy-continuation{margin:22px 0;padding:24px;border:1px solid #dbe5dd;border-radius:20px;background:linear-gradient(145deg,#f7faf7,#eef5ef)}
.economy-continuation h2{margin:6px 0 8px;color:var(--forest);font-size:25px;line-height:1.35}.economy-continuation>p{color:#607069;font-size:13px}
.continuation-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:18px 0}.continuation-actions button{min-height:46px;border:1px solid #c9d8cd;border-radius:13px;background:white;color:var(--forest);font-weight:700;cursor:pointer}
.continuation-voice{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.continuation-voice input{min-width:0;border:1px solid #c9d8cd;border-radius:11px;padding:0 13px}.continuation-voice>button:last-child{border:0;border-radius:11px;padding:0 17px;background:var(--forest);color:white;font-weight:700}
#continuationFeedback{padding:10px 0;margin:0;color:#52645b}.continuation-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.continuation-card{padding:16px;border-radius:14px;background:white;border:1px solid #dbe5dd}.continuation-card>span{font-size:11px;color:#75877e}.continuation-card h3{margin:4px 0 10px;color:#243d34}.continuation-card p{font-size:12px;line-height:1.55;margin:6px 0}.continuation-card small{display:block;color:#7b6c55;font-size:11px;margin-top:7px}.continuation-card button{margin-top:10px;border:0;border-radius:9px;padding:9px 13px;background:#e4efe6;color:var(--forest);font-weight:700}
.presentation-mode .economy-continuation{padding:22px 28px}.presentation-mode .economy-continuation h2{font-size:28px}.presentation-mode .continuation-actions{grid-template-columns:repeat(6,minmax(0,1fr))}.presentation-mode .continuation-results{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:650px){.continuation-actions,.continuation-results{grid-template-columns:1fr 1fr}.continuation-voice{grid-template-columns:1fr 1fr}.continuation-voice input{grid-column:1/-1;min-height:44px}}

/* Sprint 5F: the landing page remains the stable conversational timeline. */
.conversation-stage{margin:18px 0;padding:22px;border:1px solid #d9e4dc;border-radius:18px;background:#f8faf6;scroll-margin-top:24px}.conversation-stage[hidden],.shell-result-stage[hidden]{display:none}.conversation-step{display:block;color:#6d8177;font-size:11px;font-weight:800;letter-spacing:.08em}.conversation-stage h2,.shell-result-heading h2{margin:6px 0 8px;color:var(--deep);font-family:"Noto Serif KR",serif;font-size:23px}.conversation-stage>p{margin:0 0 16px;color:#64756d;font-size:12px;line-height:1.6}.shell-quick-choices{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}.shell-quick-choices button,.shell-location-actions button{min-height:46px;padding:0 17px;border:1px solid #bdcec3;border-radius:13px;background:white;color:var(--forest);font-weight:800;cursor:pointer}.shell-quick-choices button:hover,.shell-location-actions button:first-child{background:var(--forest);color:white}.shell-answer-input{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin-top:14px}.shell-answer-input input{min-width:0;min-height:44px;padding:0 13px;border:1px solid #c9d8cd;border-radius:11px}.shell-answer-input>button:last-child{border:0;border-radius:11px;padding:0 16px;background:var(--forest);color:white;font-weight:700}.shell-location-actions{display:flex;flex-wrap:wrap;gap:9px}.shell-thinking-stage{position:relative;padding-left:58px}.shell-thinking-dot{position:absolute;left:24px;top:28px;width:16px;height:16px;border:3px solid #c9d8cd;border-top-color:var(--forest);border-radius:50%;animation:shellThinking .9s linear infinite}@keyframes shellThinking{to{transform:rotate(360deg)}}.shell-result-stage{background:#f2f0e8;scroll-margin-top:24px}.shell-result-heading{padding:26px 28px 12px}.shell-result-stage iframe{display:block;width:100%;min-height:720px;border:0;background:#f2f0e8}.shell-embedded-result{padding:0!important;background:#f2f0e8}.shell-embedded-result .result-shell{width:100%!important;max-width:none!important;min-height:0!important;border-radius:0!important;box-shadow:none!important}.shell-embedded-result .result-header{display:none}.shell-embedded-result .itinerary-wrap{margin-top:0;padding-top:0}.shell-embedded-result .date-row{margin-top:0}.shell-embedded-result .start-over,.shell-embedded-result #changeItinerary,.shell-embedded-result .presentation-end-statement{display:none}.shell-embedded-result .concierge-followup h2{font-size:0}.shell-embedded-result .concierge-followup h2:after{content:"합천이에게 계속 말씀해 주세요.";font-size:18px}.landing-page:has(.shell-result-stage:not([hidden])) .landing-footer{background:#f2f0e8}
@media(max-width:650px){.shell-answer-input{grid-template-columns:1fr 1fr}.shell-answer-input input{grid-column:1/-1}.conversation-stage{padding:18px}.shell-result-heading{padding:22px 18px 10px}}

/* Production-only PWA installation guidance. */
.install-guide{position:fixed;z-index:40;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));width:min(360px,calc(100vw - 32px));padding:20px;border:1px solid #d5e0d7;border-radius:18px;background:rgba(250,251,247,.98);box-shadow:0 12px 34px rgba(31,75,63,.16);color:#263f36}
.install-guide[hidden],.install-guide-steps[hidden]{display:none}.install-guide>strong{display:block;padding-right:28px;font-size:17px;line-height:1.4}.install-guide>p{margin:6px 0 0;color:#687970;font-size:13px;line-height:1.55}.install-guide-close{position:absolute;top:10px;right:10px;width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:#66786f;font-size:23px;line-height:1;cursor:pointer}.install-guide-close:hover,.install-guide-close:focus-visible{background:#e8efe9}.install-guide-steps{margin-top:13px;padding:12px 14px;border-radius:12px;background:#eef4ef;color:#435b50;font-size:13px;line-height:1.7}.install-guide-steps ol{margin:0;padding-left:20px}.install-guide-steps p{margin:0}.install-guide-status:empty{display:none}.install-guide-actions{display:flex;align-items:center;gap:8px;margin-top:16px}.install-guide-actions button{min-height:42px;padding:0 16px;border-radius:11px;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.install-guide-primary{border:0;background:var(--forest);color:white}.install-guide-later{border:1px solid #c8d6cc;background:white;color:var(--forest)}.install-guide-actions button:focus-visible{outline:3px solid rgba(48,106,86,.28);outline-offset:2px}.install-guide-actions button:disabled{opacity:.6;cursor:wait}
@media(max-width:430px){.install-guide{right:16px;bottom:max(12px,env(safe-area-inset-bottom));padding:18px}}
@media(prefers-reduced-motion:reduce){.install-guide,.install-guide *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
