:root{--ink:#242b24;--muted:#5f675b;--paper:#f2ead7;--cream:#f2ead7;--orange:#ba4b30;--line:#bcb39e;--shadow:5px 6px 0 #242b241d}
body{background:#b6b49d}
.app-shell{background:var(--paper);box-shadow:0 15px 65px #18241f45}
.app-shell:before{opacity:.45}
.topbar{height:66px;padding:0 20px;border-bottom:1px solid var(--ink);background:#f4ecd9}
.brand{font-family:'Bebas Neue',sans-serif;font-size:1.65rem;letter-spacing:.04em;font-weight:400;line-height:1}
.brand span{font-family:'Noto Sans KR',sans-serif;font-size:.6rem;letter-spacing:.09em;border-left:1px solid var(--ink);padding-left:8px;margin-left:6px;vertical-align:4px;color:var(--ink);font-weight:800}
.top-action{border:0;border-bottom:1px solid var(--ink);background:transparent;border-radius:0;padding:7px 0;font-size:.8rem}
.top-action span{margin-left:5px}
.bottom-nav{height:calc(68px + env(safe-area-inset-bottom));background:#ede4d0;border-top:1px solid var(--ink);backdrop-filter:none}
.bottom-nav button{align-items:flex-start;text-align:left;padding-left:12px;gap:1px;color:#565b4e;font-size:.84rem}
.bottom-nav button+button{border-left:1px solid #c8bea8}
.bottom-nav button.active{background:#283b32;color:#f6e9cb}
.nav-index{font-family:'Bebas Neue',sans-serif;font-size:.83rem;letter-spacing:.04em}
.page{padding-left:20px;padding-right:20px}
.eyebrow{color:var(--orange);font-family:'Bebas Neue',sans-serif;font-size:.94rem;letter-spacing:.12em}
h1{font-size:2.1rem;line-height:1.22;letter-spacing:-.065em}
h2{letter-spacing:-.06em}
.hero{height:410px;margin:0 -20px 0;background:#274239;overflow:visible;isolation:isolate;color:#f9eccf}
.hero:after{display:none}
.hero-photo{position:absolute;inset:auto;box-shadow:6px 7px 0 #1119;background-repeat:no-repeat}
.hero-photo-main{top:22px;left:18px;width:70%;height:294px;background-image:url('assets/kyoto-trip.png');background-position:left center;background-size:300% 100%;transform:rotate(-3deg);border:7px solid #ece2c7;border-bottom-width:25px}
.hero-photo-side{top:78px;right:12px;width:37%;height:194px;background-image:url('assets/kyoto-trip.png');background-position:center center;background-size:300% 100%;transform:rotate(8deg);border:6px solid #eee6d4;border-bottom-width:17px}
.hero-sticker{position:absolute;right:23px;top:18px;background:#edb838;color:#213a33;padding:13px 16px 11px;font:1.06rem/1 'Bebas Neue',sans-serif;letter-spacing:.09em;transform:rotate(9deg);z-index:2;box-shadow:3px 5px 0 #0003}
.hero-content{bottom:22px;left:22px;right:20px;z-index:2}
.hero-label{background:#efe4c8;color:#273a32;box-shadow:none;transform:rotate(-3deg);font-family:'Bebas Neue',sans-serif;font-weight:400;letter-spacing:.09em;font-size:.91rem;padding:6px 10px}
.hero h1{font-family:'Bebas Neue',sans-serif;font-size:5.6rem;line-height:.79;letter-spacing:.02em;color:#f3dfb4;text-shadow:3px 3px 0 #172d27;margin:16px 0 6px}
.hero p{font-size:1.02rem;color:#fff2cf;letter-spacing:-.03em}
.hero-date{position:absolute;bottom:-14px;right:17px;z-index:4;background:#b74e34;color:white;padding:9px 12px;font-family:'Bebas Neue',sans-serif;letter-spacing:.08em;font-size:1.05rem;transform:rotate(-4deg)}
.home-intro{display:flex;align-items:end;justify-content:space-between;gap:13px;padding:29px 0 23px;border-bottom:2px solid var(--ink)}
.home-intro span{font-size:.84rem;font-weight:800;color:var(--orange);white-space:nowrap}
.home-intro p{margin:0;font-size:.82rem;text-align:right;font-weight:700}
.note-label{font-family:'Bebas Neue',sans-serif;font-size:1rem;letter-spacing:.08em;color:var(--orange);margin:21px 0 12px}
.paper-card{border:1px solid var(--ink);border-radius:0;background:#fff9e9;box-shadow:6px 6px 0 #d7c7a6}
.paper-card:before{height:16px;width:70px;background:#d8b68bd9;top:-9px;border:1px solid #b89062;clip-path:none;transform:translateX(-50%) rotate(-4deg)}
.today-card{padding:23px 18px 14px;transform:rotate(-1deg)}
.card-topline{display:flex;justify-content:space-between;color:var(--orange);font-family:'Bebas Neue',sans-serif;font-size:.95rem;letter-spacing:.08em;margin-bottom:6px}
.today-card h2{font-size:1.37rem;margin:0 0 15px}
.mini-row{border-top:1px dashed #b5aa95;padding:11px 0}
.mini-time{color:var(--orange);font-size:.85rem}
.mini-title{font-size:.88rem}
.mini-chevron{color:var(--ink)}
.quick-grid{gap:0;margin:26px 0 0;border:1px solid var(--ink)}
.quick-button{position:relative;background:#e0bb55;color:#293a31;border:0;border-radius:0;min-height:111px;padding:15px;font-size:.99rem}
.quick-button+button{background:#7da8a2;border-left:1px solid var(--ink)}
.quick-button span{font-family:'Bebas Neue',sans-serif;font-size:.92rem;letter-spacing:.08em;margin:0 0 17px;color:#3e5147}
.quick-button b{position:absolute;right:14px;bottom:13px;font-weight:400;font-size:1.4rem}
.flight-card{background:#dcd3bc;border:1px solid var(--ink);border-radius:0;margin-top:22px;padding:15px 17px}
.flight-card span{font-family:'Bebas Neue',sans-serif;color:var(--orange);display:block;letter-spacing:.1em;font-size:.88rem;margin-bottom:4px}
.flight-card strong{font-size:1rem}
.flight-card p{color:#4e5c50}
.round-arrow{border-radius:0;background:var(--ink);height:38px;width:38px;font-size:1.2rem}
.section-head{border-bottom:1px solid var(--ink);padding-bottom:9px;margin-top:30px}
.section-head h2{font-size:1.28rem}
.text-link{color:var(--orange);font-size:.8rem}
.page-intro{padding-top:23px;border-bottom:2px solid var(--ink);margin-bottom:13px}
.page-intro h1{font-size:2rem;margin:4px 0 9px}
.tabs{gap:0;padding:0 0 17px}
.tabs button{border:1px solid var(--ink);border-right:0;border-radius:0;background:#e7ddc6;color:var(--ink);padding:10px 14px;min-height:44px}
.tabs button:last-child{border-right:1px solid var(--ink)}
.tabs button.active{background:#293d34;border-color:var(--ink);color:white}
.day-title{margin:7px 0 18px}
.day-title .script{font-family:'Bebas Neue',sans-serif;font-size:3.65rem;color:var(--orange);line-height:.9;letter-spacing:.02em}
.day-title strong{font-size:.88rem}
.sample-badge{background:#d6b353;border:1px solid #9d803b;color:#272c20;border-radius:0;font-size:.73rem;transform:rotate(3deg)}
.timeline-sheet{padding:25px 19px 9px}
.timeline-item{min-height:86px}
.timeline-track:after{background:#b7a78b}
.timeline-track:before{border-color:var(--orange);border-radius:0;width:7px;height:7px;margin-top:7px;transform:rotate(45deg)}
.timeline-body strong{font-size:1rem}
.timeline-body .place-hint{color:var(--orange)}
.photo-strip{margin-top:25px;gap:4px}
.photo-sticker{height:140px;flex-basis:42%;padding:6px 6px 22px;box-shadow:4px 6px 0 #2d34242e}
.map-header{padding:21px 20px 0}
.map-header h1{margin-bottom:13px}
.map-wrap{height:calc(100dvh - 287px);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.map-tip{left:12px;right:auto;top:12px;border:1px solid var(--ink);border-radius:0;background:#f7eed8;box-shadow:3px 3px 0 #2225;font-size:.76rem;padding:9px 11px}
.pin{border-radius:0;transform:none;width:44px;height:35px;background:#b94c34;border:2px solid #fff5d9;box-shadow:3px 4px 0 #263b32a6;color:white;font-size:.7rem;font-weight:800}
.pin span{transform:none;font-size:.7rem}
.place-sheet{left:10px;right:10px;bottom:10px;border:1px solid var(--ink);border-radius:0;background:#fff9e9;padding:13px;box-shadow:5px 6px 0 #27332d66}
.grab{display:none}
.sheet-thumb{border-radius:0;width:73px;height:75px}
.sheet-title{font-size:1.08rem}
.sheet-meta{font-size:.73rem;max-width:245px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.primary,.secondary{border:1px solid var(--ink);border-radius:0;padding:11px 12px}
.primary{background:#2b4036}
.secondary{background:#e9d6ad}
.sheet-actions{margin-top:12px}
.map-list{padding:18px 20px}
.map-list button{border-color:#bdb29d;font-size:.9rem}
.map-list small{display:inline-block;border:1px solid var(--orange);color:var(--orange);font-size:.7rem;padding:2px 4px;margin-right:8px}
.album-cover{margin:0 -20px 23px;height:290px;border-bottom:5px solid var(--ink)}
.album-cover .photo{opacity:1}
.album-cover:after{background:linear-gradient(transparent 35%,#14241fdb)}
.album-cover .words{left:19px;bottom:22px}
.album-cover h1{font-family:'Bebas Neue',sans-serif;font-size:3.7rem;letter-spacing:.02em;line-height:.92}
.empty-album{border:1px solid var(--ink);border-radius:0;background:#e5d9bd;padding:25px 18px;text-align:left}
.empty-album h2{font-size:1.13rem}
.album-number{font-family:'Bebas Neue',sans-serif;font-size:2rem;color:var(--orange)}
.preview-grid{gap:12px}
.preview-grid button{box-shadow:4px 5px 0 #28372b33}
.preview-image{height:145px}
.info-block{border:1px solid var(--ink);border-radius:0;background:#fff9e9;box-shadow:4px 4px 0 #d3c6a9}
.info-block h2{color:var(--orange)}
.admin-form input,.admin-form textarea,.admin-form select,.admin-form .switch-row,.admin-notice{border-radius:0}
.admin-notice{border-left:3px solid var(--orange);background:#e5d5b4}
.admin-form .switch-row{border:1px solid var(--ink);background:#fff9e9}
.detail-modal{border-radius:0;max-height:90dvh;border-top:5px solid var(--orange)}
.detail-close{border:1px solid var(--ink);border-radius:0;background:#f4ead3}
.detail-hero{height:230px}
.intro{background:#28463c}
.intro:before{opacity:.25;filter:none}
.intro-paper{background:#f4e7c7;box-shadow:12px 13px 0 #142d25,0 20px 60px #0005;min-height:470px}
.intro-paper:before{background:#ccae72;border:1px solid #ae8b4e}
.intro-kicker{font-family:'Bebas Neue',sans-serif;letter-spacing:.15em;font-size:1rem}
.intro-paper h1{font-size:2.55rem}
.intro-paper h1 b{display:inline-block;background:#d9b648;color:#273b32;padding:1px 7px;transform:rotate(-3deg)}
.intro-paper h1 b.reveal{background:#b94e34;color:#fff3d9}
.intro-polaroid{box-shadow:5px 6px 0 #263b3245}
.intro-button{border-radius:0;background:#293e34}
.toast{border-radius:0}
@media(min-width:700px){.app-shell,.bottom-nav{border-radius:0}}
