/* Editorial system: warm paper, readable controls, content before decoration. */
:root {
  --bg:#f6f3ec; --paper:#fffef9; --ink:#213d34; --muted:#59675f;
  --line:#d9ddd4; --green:#214c3e; --soft:#e9eee7; --orange:#a06b50;
  --serif:'Noto Serif SC','Songti SC',SimSun,Georgia,serif;
  --ui:'Microsoft YaHei','PingFang SC',system-ui,sans-serif;
  --hand:'LXGW WenKai TC',KaiTi,'STKaiti',serif;
}
body {background:var(--bg);color:var(--ink);font:15px/1.7 var(--ui)}
button,input,select,textarea {font-family:var(--ui)}
button,a,input,select,textarea {-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {outline:2px solid #956046;outline-offset:4px}
.primary,.secondary,.nav-enter {min-height:46px;border-radius:5px;font-size:14px;letter-spacing:.02em}
.primary:hover {transform:none;box-shadow:0 3px 10px #213d3414}
.icon-button,.modal-close {min-width:44px;min-height:44px}
.text-button {font-size:14px;color:#355d49;min-height:44px}
.eyebrow,.editorial-eyebrow {color:var(--muted);font-size:11px;letter-spacing:.15em}
#journal-gate {max-width:1440px;padding-inline:clamp(24px,5vw,76px)}
.landing-nav {height:94px;border-color:var(--line)}
.landing-nav nav,.landing-nav nav button {font-size:14px;color:var(--muted)}
.wordmark {font-family:var(--serif);font-size:20px;letter-spacing:0}
.wordmark small {font:10px/1.4 var(--ui);letter-spacing:.13em;color:var(--muted)}
.editorial-hero {grid-template-columns:.95fr 1.1fr;gap:clamp(36px,5vw,72px);padding:52px 0 68px;min-height:650px}
.hero-copy {padding-bottom:18px}
.hero-copy h1 {font:500 clamp(38px,4.4vw,62px)/1.35 var(--serif);letter-spacing:-.03em;margin:22px 0 26px}
.hero-description {font-size:16px;line-height:1.95;color:var(--muted);max-width:32em}
.hero-assurance {font-size:12px;color:var(--muted);line-height:1.7}
.hero-preview {font-size:14px;color:var(--ink);min-height:46px}
.hero-vertical {display:none}
.hero-photo {border-radius:2px;box-shadow:0 12px 35px #213d3412}
.photo-overline {font-size:11px;letter-spacing:.1em}
.photo-caption small {font-size:11px;letter-spacing:.08em}
.photo-caption strong {font-size:30px}
.photo-caption>span {font-size:14px}
.hero-note {transform:rotate(2deg);background:var(--paper);border:1px solid #e5e0d5;box-shadow:0 10px 24px #293a2e12}
.hero-note:before {display:none}
.hero-note p {font:22px/1.9 var(--hand);color:var(--ink)}
.note-tabs,.note-signature,.note-open,.hero-note-label {font-size:12px;color:var(--muted)}
.hero-note-label {letter-spacing:.08em}
.chapter-strip {border-color:var(--line);padding-block:26px}
.chapter-strip strong {font-size:15px;color:var(--ink)}
.chapter-strip small {font-size:13px;color:var(--muted);line-height:1.7}
.chapter-number {color:#8b6450;font-family:var(--serif)}
.landing-closing p {font-size:16px;color:var(--muted)}
.landing-footer {color:var(--muted);font-size:12px}
/* Keep the atlas in view instead of filling the first screen with a dashboard. */
.sidebar {width:200px;background:#213d34;padding:30px 20px 22px}
.brand {gap:10px}.brand>span:last-child {font-family:var(--serif);font-size:23px}
.brand-mark {font:italic 35px/1 Georgia,serif;border:0;background:none;box-shadow:none;color:#f6f3ec}
.brand small {font-size:9px;letter-spacing:.15em}
.nav-label {font-size:12px;color:#c4cfc8;margin-top:34px}
.main-nav {margin-top:14px;gap:8px}
.nav-item {min-height:46px;font-size:14px;color:#d5dfd7;padding:12px}
.nav-item.active {background:#ffffff12;color:#fffef9}
.sidebar-quote {margin-top:32px;padding-top:22px;border-top:1px solid #ffffff20}
.quote-illustration {display:none}
.sidebar-quote p {font:18px/1.9 var(--serif);color:#dedfce}
.sidebar-quote>span {font-size:10px;color:#b4c4b9}
.sidebar-bottom button {font-size:12px;color:#d1dcd3;min-height:36px}
.local-label,.profile small {font-size:11px;color:#bdcec2}
.profile strong {font-size:13px;color:#f6f3ec}
main {margin-left:200px;padding:0 clamp(24px,3.3vw,58px);max-width:1800px}
.topbar {height:72px;border-color:var(--line)}
.breadcrumb,.today {font-size:12px;color:var(--muted)}
.share-button {font-size:13px}
.page-intro {padding:26px 0 12px}
.page-intro .eyebrow {font-size:10px}
.page-intro h1 {font:500 clamp(28px,3vw,40px)/1.4 var(--serif);margin:10px 0 8px;letter-spacing:-.025em}
.page-intro p {font-size:14px;color:var(--muted);margin:0}
.intro-doodle {display:none}
.couple-ribbon {font-size:13px;margin:0 0 16px;gap:9px;color:var(--muted)}
.paired-avatars i {height:27px;width:27px;font-size:12px}
.sync-status {font-size:12px;color:#46614f}
.stats {display:flex;align-items:center;gap:28px;padding:14px 0;margin:0;background:none;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;box-shadow:none}
.stats>div {padding:0;border:0;gap:8px;flex:0 1 auto}
.stats strong {font:500 24px/1.2 var(--serif);color:var(--ink)}
.stats small {display:inline;font-size:12px;color:var(--muted);margin-left:4px}
.stats em,.stats .stat-icon,.stats .stats-note {display:none}
.explore-toolbar {margin:22px 0 16px;gap:14px;flex-wrap:wrap}
.section-title h2 {font:500 22px/1.4 var(--serif);color:var(--ink)}
.filters {gap:8px;flex-wrap:wrap}
.search-world,.year-filter select,.search-box input[type=search] {font-size:13px;min-height:44px}
.search-box {border:1px solid #c6cfc5;background:#fffef9;min-height:44px}
.search-world {border-color:#c6cfc5;color:#2e503f;background:#e9eee7}
.globe-layout {display:grid;grid-template-columns:minmax(0,1.85fr) minmax(270px,1fr);gap:24px;align-items:stretch}
.globe-stage {min-height:520px}
.continuous-map-stage.globe-stage {border-radius:9px;box-shadow:inset 0 1px 0 #fffefa;background:radial-gradient(ellipse at 20% 15%,#fffdf7,#edf1ed 55%,#dce9ec)}
.continuous-map-stage .globe-stage-top {font-size:12px;color:#476355;top:12px;left:20px;right:12px}
.continuous-map-stage .globe-canvas {inset:56px 0 0}
.boundary-legend {font-size:11px;color:#40594c;background:#fffef9ed;border:1px solid #d8e1d8;border-radius:5px;padding:8px 10px;box-shadow:none;backdrop-filter:none}
.continuous-map .maplibregl-ctrl-group {border-radius:7px;padding:0;background:#fffef9f5;border:1px solid #d3dcd4;box-shadow:0 3px 10px #213d3410}
.continuous-map .maplibregl-ctrl-group button {width:42px;height:42px;border-radius:0}
.continuous-map .map-home {line-height:42px}
.continuous-map .maplibregl-ctrl-attrib,.continuous-map .maplibregl-ctrl-scale {font-size:11px;color:#40594c}
.memory-card {border:0;border-left:1px solid var(--line);border-radius:0;background:transparent;padding-left:24px;box-shadow:none}
.empty-journal {padding:32px 10px;align-items:flex-start;text-align:left;justify-content:center}
.empty-journal .empty-symbol {width:52px;height:52px;margin-bottom:22px;color:#667e68}
.empty-journal small {font-size:11px;letter-spacing:.12em;color:var(--muted)}
.empty-journal h3 {font:500 32px/1.55 var(--serif);margin:18px 0}
.empty-journal p {font-size:15px;line-height:1.9;color:var(--muted)}
.empty-journal>span:last-child {font-size:12px;color:var(--muted);line-height:1.8}
.empty-journal .primary {font-size:14px;margin:14px 0}
.journal-preview .memory-photo {border-radius:3px;height:245px}
.memory-content {padding:22px 0}
.memory-date,.memory-bottom,.photo-count {font-size:12px;color:var(--muted)}
.memory-title {font-size:17px}.memory-note {font:19px/1.9 var(--hand);color:var(--ink)}
.recent-section {margin-top:32px}.recent-grid {gap:20px}
.trip-card {border-radius:4px;box-shadow:none;border:1px solid var(--line);background:var(--paper)}
.trip-info strong {font-size:21px}.trip-info small,.trip-info p {font-size:12px;color:var(--muted)}
.empty p {font-size:14px;color:var(--muted)}
/* The notebook is the only surface that uses handwriting as a primary texture. */
#notebook-dialog {--notebook-paper:#fffdf5;font-family:var(--ui)}
#notebook-heading {font:500 26px/1.4 var(--serif)}
.notebook-contributors,.notebook-entry-meta,.notebook-photo-meta {font:13px/1.6 var(--ui);color:#5b6559;opacity:1}
.notebook-toolbar .notebook-contributors {color:#e5e9df}
.notebook-book {background:#365147;border-radius:5px 9px 9px 5px;box-shadow:0 3px 0 #243c31,0 12px 34px #15281f35}
.notebook-photo-page {background-image:linear-gradient(90deg,transparent 85%,#7d75620b 96%,#7d75622b 100%);background-size:100% 100%}
.notebook-writing-page {background-image:linear-gradient(90deg,#7d756227,transparent 11%);background-size:100% 100%}
.notebook-polaroid {transform:rotate(-1deg);box-shadow:0 4px 10px #3c36231a;padding:9px 9px 0}
.notebook-polaroid:hover {transform:rotate(0);box-shadow:0 5px 15px #3c362327}
.notebook-tape {display:none}
.notebook-postmark {border-width:1px;outline:0;transform:rotate(-5deg);color:#98674e}
.notebook-entry-title {font:500 30px/1.5 var(--serif)}
.notebook-note {font:20px/32px var(--hand);color:#364c3f}
.notebook-author-badge {font:13px/1.5 var(--ui);border-radius:3px;color:#36513e;background:#edf0e5}
.notebook-photo-caption {font-family:var(--hand)}
.notebook-photo-caption small,.notebook-photo-jot {font-size:12px;color:#5b6559}
.notebook-key-hint {opacity:.85;font-size:12px}
#notebook-dialog .notebook-actions button {font:13px/1.5 var(--ui);min-height:44px}
.notebook-page-button {width:44px;height:44px}
.auth-dialog {background:var(--paper);border:1px solid var(--line);border-radius:8px}
.auth-description,.auth-footnote {color:var(--muted)}
.auth-description {font-size:16px}.auth-footnote {font-size:12px}
#gate-form label {font-size:14px;color:var(--ink)}
#gate-form input,.entry-dialog input,.location-search input {font-size:16px;min-height:48px}
.entry-dialog label {font-size:14px;color:var(--ink)}
.dialog-lead,.field-hint,.photo-upload small,.dialog-footer small,.location-dialog>p,.location-result i {font-size:13px;line-height:1.7;color:var(--muted)}
.entry-dialog textarea {font:19px/1.8 var(--hand)}
.experience-description {font-size:15px;color:var(--muted)}
.experience-description>span,.experience-tip {font-size:12px;color:var(--muted)}
.destination-tabs button {font-size:14px;min-height:44px}
@media(max-width:1100px) and (min-width:681px){
 .sidebar{width:178px;padding-inline:15px}main{margin-left:178px;padding-inline:24px}
 .globe-layout{grid-template-columns:minmax(0,1.4fr) minmax(245px,1fr);gap:18px}
 .memory-card{padding-left:18px}.empty-journal h3{font-size:28px}.today{display:none}
 .editorial-hero{min-height:590px}.hero-note p{font-size:19px}
}
@media(max-width:900px) and (min-width:681px){
 .sidebar{width:78px;padding-inline:11px}main{margin-left:78px}
 .nav-item{font-size:0;padding:12px 0;gap:0}
}
@media(max-width:680px){
 #journal-gate{padding-inline:22px}.landing-nav{height:78px;gap:12px}.wordmark{font-size:16px}.wordmark small{font-size:8px}.wordmark-symbol{font-size:38px;width:36px}
 .nav-enter{font-size:12px;padding:9px 11px}.nav-enter>span{margin-left:9px}
 .editorial-hero{display:flex;flex-direction:column;gap:32px;min-height:0;padding:36px 0 52px;align-items:stretch}.hero-copy{padding:0}.hero-copy h1{font-size:40px;line-height:1.32;margin:18px 0 23px}
 .hero-description{font-size:15px;line-height:1.9}.hero-actions{gap:15px}.hero-assurance{font-size:11px}.hero-photo{height:360px}.hero-note{width:58%;right:-5px;bottom:-20px}.hero-note p{font-size:18px}.hero-note-label{font-size:10px}.note-signature,.note-tabs,.note-open{font-size:11px}.photo-caption strong{font-size:26px}
 .chapter-strip{padding-block:22px}.chapter-strip strong{font-size:14px}.chapter-strip small{font-size:12px}.landing-closing p{font-size:14px}
 .sidebar{height:68px;width:100%;padding:0 18px}.brand>span:last-child{font-size:20px}.brand-mark{font-size:29px}.nav-item{width:44px;height:44px;padding:11px;font-size:0}.main-nav{margin:0;gap:2px}
 main{margin-left:0;padding:68px 18px 0}.topbar{height:62px}.topbar-right{gap:12px}.primary.small{font-size:13px;min-height:44px}.share-button{font-size:12px}
 .page-intro{padding:24px 0 12px}.page-intro h1{font-size:29px}.page-intro p{font-size:13px;line-height:1.8}.eyebrow{font-size:10px}.couple-ribbon{font-size:12px;gap:7px;margin-bottom:15px}.sync-status{font-size:11px}
 .stats{gap:20px;padding-block:14px}.stats strong{font-size:23px}.stats small{font-size:11px;margin-left:3px}
 .explore-toolbar{margin:23px 0 14px;gap:14px}.section-title h2{font-size:21px}.filters{width:100%;gap:7px}.search-world{font-size:12px;padding-inline:10px}.search-box{flex:1;min-width:100px}.search-box input[type=search]{font-size:16px}.year-filter select{font-size:12px;width:84px}
 .globe-layout{display:flex;flex-direction:column;gap:22px}.globe-stage{min-height:420px}.continuous-map-stage .globe-stage-top{font-size:11px;left:15px}.boundary-legend{font-size:10px;gap:8px;left:12px;top:12px;padding:8px}.continuous-map .maplibregl-ctrl-group button{width:40px;height:42px}
 .memory-card{border-left:0;border-top:1px solid var(--line);padding:0}.empty-journal{padding:25px 4px}.empty-journal .empty-symbol{display:none}.empty-journal h3{font-size:28px;margin:12px 0}.empty-journal p{font-size:14px}.empty-journal .primary{font-size:14px}
 .recent-grid{gap:14px}.trip-info strong{font-size:18px}.trip-info p,.trip-info small{font-size:12px}.compact-backup button{font-size:12px;min-height:44px}
 .entry-dialog label{font-size:14px}.dialog-lead,.dialog-footer small{font-size:12px}.location-search .primary{font-size:12px}.entry-dialog input{font-size:16px}
 #notebook-heading{font-size:23px}.notebook-note{font-size:19px;line-height:30px}.notebook-entry-title{font-size:26px}.notebook-contributors,.notebook-entry-meta,.notebook-author-badge{font-size:12px}.notebook-photo-meta{font-size:12px}
 .notebook-photo-caption small{font-size:11px}.notebook-actions{gap:12px}#notebook-dialog .notebook-actions button{font-size:12px}.notebook-page-button{width:42px;height:42px}
}
@media(prefers-reduced-motion:reduce){.primary:hover,.notebook-polaroid:hover{transform:none}}
/* On narrow screens the note follows the photo so its caption stays readable. */
@media(max-width:680px){
 .hero-visual{padding:0;display:flex;flex-direction:column;gap:16px}
 .hero-note{position:relative;inset:auto;align-self:flex-end;width:88%;transform:rotate(1deg);margin-top:0}
 .hero-note-label{position:static;order:3;width:auto;font-size:11px;letter-spacing:.06em}
 .continuous-map .maplibregl-ctrl-group button{width:44px;height:44px}
 .notebook-page-button{width:44px;height:44px}
}
