:root{--navy:#182f40;--ink:#193346;--muted:#60727b;--paper:#f6f4ee;--warm:#ffb551;--line:#d9dcd7;--white:#fff}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #ea9740;outline-offset:3px}.top{height:73px;padding:0 max(4vw,22px);background:#fff;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:9px;font-size:20px;font-weight:850;letter-spacing:-.6px}.mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--navy);color:var(--warm);font-size:24px}.brand-sub{font-size:12px;font-weight:500;margin-left:10px;color:var(--muted);letter-spacing:0}.top-right{display:flex;align-items:center;gap:18px}.pill{font-size:11px;letter-spacing:1.3px;font-weight:800;color:#516775;border:1px solid var(--line);border-radius:30px;padding:8px 12px}.text-btn{border:0;background:none;color:var(--ink);font-size:13px;font-weight:700}.shell{max-width:1200px;margin:auto;padding:32px 28px 80px}.intro{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:0 0 28px}.kicker,.card-kicker{font-size:11px;font-weight:850;letter-spacing:1.65px;color:#aa691c}.intro h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.3rem,4.5vw,4.4rem);line-height:1.06;letter-spacing:-2.4px;margin:10px 0}.intro h1 em{color:#bf7626;font-weight:400}.intro p{font-size:17px;color:var(--muted);margin:0}.intro-stamp{font-family:Georgia,serif;font-size:4.3rem;line-height:.9;color:var(--navy);white-space:nowrap}.intro-stamp span{color:#bac5c9;font-size:2.2rem}.intro-stamp small{display:block;font:700 11px/2 ui-sans-serif,sans-serif;letter-spacing:2px;color:var(--muted)}.columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);gap:21px}.left,.right{min-width:0}.photo{height:236px;position:relative;overflow:hidden;border-radius:17px;margin-bottom:18px;background:#ced4d0}.photo img{width:100%;height:100%;object-fit:cover;display:block}.photo span{position:absolute;bottom:10px;left:12px;background:#10232bcc;color:white;font-size:10px;letter-spacing:1px;font-weight:800;padding:6px 8px;border-radius:3px}.card{background:var(--white);border:1px solid #e1e2dc;border-radius:17px;padding:24px;box-shadow:0 6px 18px #1a2d3806}.card+.card{margin-top:18px}.card h2{font:normal 2rem/1.14 Georgia,serif;letter-spacing:-.8px;margin:7px 0 18px}.field{margin:18px 0}.field-title{font-size:13px;font-weight:750;margin-bottom:8px}.seg{display:flex;gap:8px;flex-wrap:wrap}.seg button{border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 12px;border-radius:8px;font-size:14px}.seg button.selected{background:var(--navy);border-color:var(--navy);color:#fff}.primary,.outline{border-radius:9px;padding:13px 18px;font-weight:750;font-size:14px;min-height:46px}.primary{background:var(--navy);border:1px solid var(--navy);color:#fff}.primary span{margin-left:13px;color:var(--warm)}.outline{background:#fff;border:1px solid #a4b5bb;color:var(--ink)}.start-card .primary{width:100%;display:flex;justify-content:space-between;margin-top:24px}.fine{font-size:12px;color:var(--muted);margin:10px 0 0}.route{list-style:none;padding:0;margin:16px 0 0}.route li{display:flex;gap:14px;padding:10px 0;color:#71828a}.route li+li{border-top:1px solid #edf0ed}.route li.active{color:var(--ink)}.number{font-size:13px;font-weight:900;color:#aebcc1}.route li.active .number,.route li.done .number{color:#ba762d}.route b,.route small{display:block}.route b{font-size:15px}.route small{font-size:12px}.task-card{min-height:455px;display:flex;flex-direction:column}.task-meta{display:flex;justify-content:space-between;align-items:center;gap:10px}.progress-tag{font-size:10px;letter-spacing:1px;font-weight:850;color:#74858b}.task-card h2{font-size:clamp(2rem,3vw,2.85rem);margin:21px 0 12px}.task-desc{font-size:17px;color:#536875;margin:0 0 26px}.sample{background:#f2f5f2;border:1px solid #e5eae5;border-radius:11px;padding:16px;display:flex;gap:13px;align-items:center}.sample-icon{background:#d8e6df;border-radius:7px;color:#286b55;font-size:24px;font-weight:700;padding:6px 12px}.sample strong{font-size:15px}.sample p{font-size:13px;color:var(--muted);margin:3px 0}.task-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.assist{margin-top:auto;padding-top:26px;display:flex;align-items:center;justify-content:space-between;font-size:14px;color:var(--muted)}.assist button{border:0;background:none;color:#a45e15;font-weight:800}.note-card{background:#e9efea;border-color:#d9e4dc}.note-card p{font:normal 1.25rem/1.35 Georgia,serif;margin:13px 0}.note-card span{font-size:13px;color:var(--muted)}dialog{border:0;border-radius:17px;padding:27px;width:min(510px,calc(100% - 24px));color:var(--ink);max-height:85vh;overflow:auto}dialog::backdrop{background:#102a38a8}.x{float:right;border:0;background:#edf1ef;color:var(--ink);width:32px;height:32px;border-radius:50%;font-size:22px;line-height:1}.dialog-title{font:normal 2rem/1.15 Georgia,serif;margin:10px 0 14px}.dialog-option{width:100%;display:block;text-align:left;background:#f5f7f4;border:1px solid var(--line);border-radius:10px;padding:13px;margin:9px 0}.dialog-option strong,.dialog-option small{display:block}.dialog-option small{font-size:12px;color:var(--muted);margin-top:3px}.result-box{padding:18px;background:#edf2ed;border-radius:12px;margin:16px 0}.hanzi{font-size:33px;font-weight:800;color:var(--navy);margin:0}.pinyin{color:#a25d15;font-weight:700}.label{font-size:11px;letter-spacing:1px;font-weight:800;color:var(--muted)}textarea{width:100%;min-height:100px;border:1px solid var(--line);border-radius:10px;padding:12px;resize:vertical}.inline-note{font-size:12px;color:var(--muted)}.choice-row{display:flex;gap:8px;flex-wrap:wrap}.choice-row button{padding:9px 12px;border:1px solid var(--line);background:white;border-radius:8px}.choice-row button.selected{background:var(--navy);color:white}.story-card{background:#eaf0e8;padding:20px;border-radius:12px}.story-card .story-line{border-top:1px solid #cddbd1;padding:10px 0}.story-card .story-line:first-child{border:0}.story-card small{color:var(--muted)}.story-card strong{display:block}.status{min-height:21px;font-size:13px;color:#a45e15;margin:8px 0}.hidden{display:none!important}@media(max-width:800px){.shell{padding:22px 16px 65px}.columns{grid-template-columns:1fr}.intro-stamp{display:none}.photo{height:185px}.left{display:contents}.photo{order:2}.start-card{order:1}.route-card{order:4}.right{display:contents}.task-card{order:3}.note-card{order:5}.top{padding:0 16px}.pill{display:none}.brand-sub{display:none}.intro h1{font-size:2.65rem}.card{padding:20px}.task-card{min-height:390px}}@media print{header,.intro,.left,.task-card,.note-card,dialog .x,dialog button{display:none!important}dialog[open]{position:static;max-height:none;width:100%;max-width:none}.story-card{break-inside:avoid}}

.route li{display:block;padding:0}.route li button{width:100%;display:flex;gap:14px;align-items:center;text-align:left;border:0;background:transparent;padding:12px 4px;color:inherit;border-radius:8px}.route li button:hover{background:#f2f5f2}.route li.active button{background:#f5f7f1}.route li button>span:nth-child(2){flex:1}.route-arrow{font-size:18px;color:#aa691c}.route li.done:not(.active){color:#526a5c}@media(max-width:800px){.route-card{order:2}.photo{order:4}}

.location-card{margin-bottom:18px}.location-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.location-fields label{font-size:13px;font-weight:750}.location-fields select{display:block;width:100%;margin-top:7px;min-height:46px;border:1px solid #bac8c6;border-radius:9px;background:#fff;color:var(--ink);padding:9px;font-size:15px}.location-hint{font-size:14px;margin:15px 0 6px;color:#526975}.location-card>a{color:#a45e15;font-size:13px;font-weight:800}.photo.no-photo{height:155px;background:var(--navy);display:flex;align-items:center;justify-content:center;color:#fff}.photo.no-photo img{display:none}.photo.no-photo::before{content:attr(data-place);font:normal clamp(1.5rem,3vw,2.5rem)/1.2 Georgia,serif;text-align:center;padding:18px}.photo.no-photo span{display:none}@media(max-width:800px){.location-card{order:1}.start-card{order:2}.route-card{order:3}.task-card{order:4}.photo{order:5}.location-fields{grid-template-columns:1fr}}

.catalog-count{font-size:13px;color:var(--muted);margin:-9px 0 17px;font-weight:650}
#languageSelect{min-width:122px;max-width:160px;border:1px solid #bac8c6;border-radius:8px;background:#fff;color:var(--ink);padding:8px 10px;font:600 13px ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}#languageSelect:focus-visible{outline:3px solid #ea9740;outline-offset:3px}@media(max-width:800px){#languageSelect{min-width:112px;max-width:130px}.top .brand{font-size:18px}.top-right{gap:8px}}@media(max-width:360px){.top .brand{font-size:16px}#languageSelect{min-width:105px}}
/* Place-specific visual clues and saved-story postcard */
.scene-card{display:grid;grid-template-columns:minmax(230px,300px) minmax(0,1fr);align-items:stretch;min-height:300px;margin:0 0 18px;background:#fff;border:1px solid #e0e2dc;border-radius:17px;overflow:hidden;box-shadow:0 6px 18px #1a2d3806}.scene-image{min-height:300px;background-color:#f4f0e6;background-repeat:no-repeat;image-rendering:auto}.scene-panel{padding:20px 22px;display:flex;flex-direction:column;min-width:0}.scene-panel h3{font:normal 1.55rem/1.12 Georgia,'PingFang SC',serif;margin:7px 0 9px;letter-spacing:-.4px}.scene-panel p{font-size:13px;line-height:1.45;color:#526975;margin:0 0 8px}.scene-cues{display:grid;gap:5px;margin:4px 0 8px}.scene-cues button{display:flex;align-items:center;gap:9px;width:100%;min-height:37px;text-align:left;color:var(--ink);background:#f5f5ef;border:1px solid #e6e8e0;border-radius:8px;padding:5px 8px;font:700 12px/1.3 ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.scene-cues button:hover,.scene-cues button:focus-visible{background:#e9f0e9;border-color:#b2c5b7}.scene-cues b{color:#a45e15;font-size:11px;min-width:18px}.scene-cues button span:first-of-type{flex:1}.scene-arrow{color:#a45e15;font-size:15px}.scene-panel small{margin-top:auto;color:#89918b;font-size:9px;letter-spacing:.5px;text-transform:uppercase}.scene-card .card-kicker{font-size:10px;letter-spacing:1.2px}
#storyDialog{width:min(850px,calc(100% - 24px));padding:22px}.postcard{display:grid;grid-template-columns:38% minmax(0,1fr);background:#f4f0e6;border:1px solid #d9d8ce;border-radius:12px;overflow:hidden;min-height:370px;box-shadow:0 12px 30px #1a2d3812}.postcard-picture{position:relative;background:#ebe6da}.postcard-picture>div{width:100%;height:100%;min-height:370px;background-color:#f4f0e6;background-repeat:no-repeat}.postcard-picture small{position:absolute;bottom:12px;left:12px;right:12px;display:block;width:max-content;max-width:calc(100% - 24px);background:#f4f0e6e6;padding:6px 8px;color:#536365;font-size:9px;letter-spacing:.7px}.postcard-message{padding:25px 27px 18px;background:linear-gradient(135deg,#f8f5ec,#f3efe4);display:flex;flex-direction:column}.postcard-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #c9c9bd;padding-bottom:12px;margin-bottom:25px;color:#8c826e;font:700 10px/1 ui-sans-serif,sans-serif;letter-spacing:2px}.postcard-top span:last-child{font-size:25px;color:#bd7743}.postcard-message .dialog-title{font-size:clamp(1.65rem,3vw,2.25rem);margin:6px 0 17px}.postcard-message .story-card{background:transparent;border-top:1px solid #d0cfc1;border-bottom:1px solid #d0cfc1;border-radius:0;padding:5px 0;margin-bottom:18px}.postcard-message .story-line{border-color:#d8d5c8}.postcard-message .story-line strong{font-size:14px;line-height:1.45;font-weight:600}.postcard-bottom{margin-top:auto;padding-top:12px;color:#a76e3e;font-size:11px;letter-spacing:.6px}.postcard-actions{display:flex;gap:9px;flex-wrap:wrap}
@media(max-width:800px){.scene-card{order:2;grid-template-columns:minmax(0,1fr);min-height:0}.scene-image{height:240px;min-height:240px}.scene-panel{padding:18px}.scene-cues{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.scene-cues button{align-items:flex-start;min-height:61px}.scene-cues button .scene-arrow{display:none}.start-card{order:3}.route-card{order:4}.task-card{order:5}.note-card{order:6}}
@media(max-width:560px){.scene-cues{grid-template-columns:1fr}.scene-cues button{align-items:center;min-height:37px}.postcard{grid-template-columns:1fr}.postcard-picture>div{height:220px;min-height:220px}.postcard-message{padding:22px}.postcard-top{margin-bottom:17px}}
@media print{#storyDialog{width:100%;padding:0;border:0;border-radius:0}.postcard{box-shadow:none;break-inside:avoid}.postcard-actions,#storyDialog>.inline-note{display:none!important}.postcard-picture>div{-webkit-print-color-adjust:exact;print-color-adjust:exact}.postcard-message{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
#storyDialog{position:relative;padding-top:52px}#closeStory{position:absolute;right:18px;top:12px;float:none}@media print{#storyDialog{padding:0}#closeStory{display:none!important}}
/* Editable task deck */
#mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}#mode button{text-align:left;min-height:48px}.catalog-open{width:100%;margin-top:14px}.route li{position:relative;padding-bottom:8px}.route li button[data-task]{padding-right:82px}.route li .swap-task{position:absolute;right:4px;top:16px;width:auto;padding:6px 8px;border:1px solid #c9d4d0;border-radius:7px;background:#fff;color:#8a531d;font-size:12px;font-weight:750}.catalog-list{display:grid;gap:9px;margin-top:18px}.catalog-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;border:1px solid #dce5dc;background:#fff;border-radius:10px;padding:12px;color:var(--ink)}.catalog-item:hover:not(:disabled){border-color:#a9753c;background:#fcf8ef}.catalog-item:disabled{opacity:.5;cursor:default}.catalog-item span{display:grid;gap:3px}.catalog-item strong{font-size:15px}.catalog-item small{font-size:13px;color:#566d77}.catalog-item em{font-size:12px;font-style:normal;color:#98652d}.catalog-item b{font-size:12px;color:#965a1c;white-space:nowrap}.catalog-item.chosen{border-color:#c99251;background:#fffaf0}#helpDialog{width:min(620px,calc(100% - 24px))}#deckPhoto{max-width:100%}
.left{display:flex;flex-direction:column}.left .location-card{order:1}.left .start-card{order:2}.left .scene-card{order:3}.left .route-card{order:4}.left .scene-card{margin-top:18px}@media(max-width:800px){.left{display:contents}.start-card{order:2}.scene-card{order:3}.route-card{order:4}.task-card{order:5}}
.catalog-heading{position:sticky;top:-27px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;padding:10px 0;border-bottom:1px solid var(--line)}.catalog-heading h2{margin:0;font-size:clamp(1.4rem,3vw,2rem)}.catalog-heading .outline{white-space:nowrap}
.greeting-section{display:grid;grid-template-columns:minmax(0,310px) minmax(0,1fr);gap:24px;align-items:center;padding:18px;margin-bottom:22px;border:1px solid #d8ddd3;border-radius:14px;background:#f7f4eb}.greeting-preview-wrap{background:#ebe6d8;border-radius:10px;overflow:hidden;box-shadow:0 10px 24px #1a2d3820;min-height:220px}.greeting-preview-wrap img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}.greeting-preview-wrap img:not([src]){visibility:hidden}.greeting-controls h2{font:normal 2rem/1.15 Georgia,'PingFang SC',serif;margin:0 0 10px}.greeting-controls p{color:#566b71}.greeting-buttons{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.greeting-buttons button:disabled{opacity:.5;cursor:wait}@media(max-width:560px){.greeting-section{grid-template-columns:1fr}.greeting-preview-wrap{width:min(100%,310px);margin:auto}.greeting-controls h2{font-size:1.6rem}.greeting-buttons button{flex:1}}
@media print{.greeting-section{display:none!important}}
.sound-memory{margin-top:18px;padding:15px;border:1px solid #d9e4dc;background:#f2f6f1;border-radius:10px;color:#526a63;font-size:14px}.audio-recorder{display:grid;gap:15px}.audio-recorder #audioStatus{color:#7c522d;font-weight:700}.audio-links{display:flex;flex-wrap:wrap;gap:9px}.saved-audio{display:grid;gap:10px}.saved-audio audio{width:100%;max-width:430px}.story-audio{padding:18px;margin:18px 0;background:#f1f6f1;border:1px solid #d9e4dc;border-radius:10px}.story-audio h3{margin:0 0 12px;font-size:1.2rem}.story-audio p{font-size:13px;color:#647572}.audio-recorder #finishSound{justify-self:start}
@media print{.story-audio{display:none!important}}
