:root{--ink:#25272a;--muted:#5b5d5e;--paper:#fff0d3;--cream:#fff0d3;--orange:#e84438;--line:#bcb29e;--shadow:4px 6px 0 #25272a26}
body{background:#b9c8c5}
.app-shell,.topbar{background:var(--paper)}
.topbar{border-bottom:1.5px solid var(--ink)}
.brand span{color:#315fa8;border-color:#315fa8}
.top-action{color:var(--ink)}
.bottom-nav{background:#fff0d3}
.bottom-nav button.active{background:#315fa8;color:#fff7e8}
.bottom-nav button+button{border-color:#b9b09d}
.eyebrow,.note-label,.day-title .script,.text-link,.timeline-body .place-hint{color:var(--orange)}
.hero{background:#315fa8}
.hero-photo-main{border-color:#fff4df;box-shadow:9px 11px 0 #16295077}
.hero-photo-side{border-color:#fff4df;box-shadow:7px 9px 0 #16295077}
.hero-photo-main:after{content:'';position:absolute;z-index:3;width:108px;height:34px;top:-24px;left:24%;background:url('assets/masking-tape.png') center/contain no-repeat;transform:rotate(8deg);filter:drop-shadow(1px 2px 1px #1a27442c)}
.hero-sticker{background:url('assets/torn-paper.png') center/100% 100% no-repeat;color:#e84438;box-shadow:none;padding:28px 23px 24px;text-shadow:1px 1px 0 #fff8e7}
.hero h1,.hero-content p{color:#fff0d3;text-shadow:4px 4px 0 #1f3c71}
.hero-label{background:#fff0d3;color:#25272a}
.hero-date{background:#e84438;color:white}
.home-intro{border-color:#25272a}
.home-intro span,.intro-preview{color:#d53e36}
.intro-preview{border-bottom-color:#e84438}
.paper-card{background:url('assets/torn-paper.png') center/100% 100% no-repeat;border:0;box-shadow:none}
.paper-card:before{top:-13px;width:115px;height:41px;border:0;background:url('assets/masking-tape.png') center/contain no-repeat;clip-path:none;transform:translateX(-50%) rotate(-5deg)}
.today-card{padding:38px 31px 29px;margin:-2px -14px -8px}
.timeline-sheet{padding:42px 31px 34px;margin:-4px -14px -10px}
.card-topline{color:#315fa8}
.mini-row{border-color:#b8afa0}
.mini-time,.timeline-item .time{color:#d64137}
.mini-chevron{color:#315fa8}
.quick-grid{border-color:#25272a}
.quick-button{background:#f2ce42;color:#25272a}
.quick-button+button{background:#315fa8;color:#fff8eb}
.quick-button+button span{color:#e8eaff}
.quick-button span{color:#473e2e}
.flight-card{background:#fff4dc;border:1px solid #315fa8;border-left:7px solid #315fa8;box-shadow:4px 4px 0 #315fa83b}
.flight-card span{color:#315fa8}
.flight-card p{color:#5b5d5e}
.round-arrow{background:#315fa8}
.sample-badge{background:#f2ce42;border-color:#d3a91e}
.timeline-track:before{border-color:#e84438}
.photo-sticker{box-shadow:5px 7px 0 #315fa838}
.photo-sticker:nth-child(2):before{content:'';position:absolute;width:95px;height:28px;top:-14px;left:12%;background:url('assets/masking-tape.png') center/contain no-repeat;transform:rotate(-6deg);z-index:2}
.map-tip{background:#fff0d3;border-color:#25272a}
.route-marker .pin{border-color:#e84438;color:#d83932;background:#fff7e4;box-shadow:0 2px 0 #315fa8,0 4px 12px #16243d4a}
.route-marker .pin:after{background:#e84438}
.route-tooltip{border-color:#315fa8}
.place-sheet{background:#fff4df;border-color:#25272a;box-shadow:5px 6px 0 #315fa87a}
.primary{background:#315fa8;color:#fff8e9}
.secondary{background:#f2ce42;color:#25272a}
.map-list small{border-color:#e84438;color:#d83932}
.album-cover{border-color:#25272a}
.empty-album{background:#fff4dc;border-color:#315fa8}
.album-number{color:#e84438}
.info-block{background:#fff6e2;border-color:#315fa8;box-shadow:4px 4px 0 #315fa83d}
.info-block h2{color:#315fa8}
.admin-notice{background:#f2ce4270;border-left-color:#e84438}
.admin-form .switch-row{background:#fff7e7}
.detail-modal{background:#fff0d3;border-top-color:#e84438}
.detail-close{background:#fff0d3}
.intro{background:#315fa8}
.intro:before{opacity:.22}
.intro-paper{background:url('assets/torn-paper.png') center/100% 100% no-repeat;box-shadow:none;width:min(90vw,400px);min-height:530px;padding:47px 43px 34px;color:#25272a}
.intro-paper:before{top:9px;width:121px;height:39px;border:0;background:url('assets/masking-tape.png') center/contain no-repeat}
.intro-kicker{color:#315fa8;margin-top:13px}
.intro-destination{background:#f2ce42;box-shadow:inset 2px 2px 0 #bf9a2685}
.intro-front{background:url('assets/torn-strip.png') center/100% 100% no-repeat;clip-path:none;border:0;box-shadow:none;inset:-8px -14px;cursor:default}
.intro-front span{color:#25272a}
.intro-back{color:#e84438}
.intro-status{color:#315fa8}
.intro.is-revealed .intro-status{color:#d83e35}
.intro-button{background:#315fa8}
.intro-skip{color:#315fa8}
.type-switch{background:#315fa8}
.type-switch a.selected{background:#f2ce42}
.toast{background:#315fa8}
