:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;color:#20382f;background:#f4f1e9;font-synthesis:none;--ivory: #f4f1e9;--paper: #fbf9f3;--pine: #20382f;--pine-2: #385247;--red: #c95945;--red-dark: #9e3d2d;--brass: #9c8051;--line: rgba(32, 56, 47, .18);--muted: #6e756d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:var(--ivory)}button,textarea{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button,a{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid rgba(201,89,69,.45);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.48}.app{min-height:100vh;overflow:hidden}.eyebrow{margin:0 0 10px;color:var(--red-dark);font-size:11px;font-weight:750;letter-spacing:.16em}.muted,.fine-print{color:var(--muted)}.gate-page{min-height:100vh;padding:8vh 24px;display:grid;place-content:center;text-align:center;background:radial-gradient(circle at 50% 35%,#fffdf8 0,var(--ivory) 50%,#e7e2d6 100%)}.gate-page>*{max-width:620px;margin-left:auto;margin-right:auto}.gate-page h1{margin:14px auto 18px;font-family:Georgia,Songti SC,serif;font-size:clamp(34px,6vw,68px);font-weight:500;line-height:1.15}.gate-page>p:not(.eyebrow){color:var(--muted);line-height:1.8}.gate-mark,.brand-seal{display:grid;place-items:center;border:1px solid currentColor;color:var(--red);font-family:Songti SC,serif}.gate-mark{width:64px;height:64px;margin-bottom:24px;font-size:28px;transform:rotate(-3deg)}.gate-error{padding:12px 18px;border:1px solid rgba(201,89,69,.3);background:#c9594512;color:var(--red-dark)!important}.site-header{width:min(1440px,calc(100% - 64px));min-height:88px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:13px;text-decoration:none;min-height:50px}.brand-seal{width:34px;height:34px;font-size:17px}.brand>span:last-child{display:flex;flex-direction:column;gap:2px}.brand b{font-size:15px;letter-spacing:.18em}.brand small{color:var(--muted);font:9px/1.2 Georgia,serif;letter-spacing:.16em}.header-tools{display:flex;align-items:center;gap:18px}.couple-mark{color:var(--brass);font:italic 13px Georgia,serif;letter-spacing:.12em}.quiet-button{min-height:44px;padding:0 15px;border:1px solid var(--line);background:transparent;cursor:pointer;transition:border-color .16s,transform .16s,background .16s}main#top{width:min(1440px,calc(100% - 64px));margin:0 auto}.hero{min-height:510px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(430px,.95fr);align-items:center;gap:72px;padding:62px 3vw 54px}.hero h1{max-width:720px;margin:0 0 25px;font-family:Georgia,Songti SC,STSong,serif;font-size:clamp(60px,7vw,108px);font-weight:400;letter-spacing:-.055em;line-height:.98}.hero h1 span{display:block;white-space:nowrap}.hero-jump{display:inline-flex;align-items:center;gap:20px;min-height:44px;margin-top:18px;font-size:13px;text-decoration-thickness:1px;text-underline-offset:6px}.hero-subtitle{max-width:590px;margin:0 0 30px;color:var(--pine-2);font-size:16px;line-height:1.9}.hero-facts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;font-size:12px}.hero-facts span:not(.warning-chip){padding-right:23px;border-right:1px solid var(--line)}.hero-facts b{margin-right:8px;color:var(--muted);font-weight:500}.warning-chip{padding:7px 11px;border:1px solid rgba(201,89,69,.38);color:var(--red-dark);background:#c9594512;font-weight:700}.postcard{position:relative;transform:rotate(1.2deg);padding:18px 18px 40px;background:#faf7ed;border:1px solid rgba(32,56,47,.12);box-shadow:0 22px 55px #20382f1a}.postcard:before{content:"";position:absolute;width:92px;height:24px;top:-12px;left:calc(50% - 46px);background:#bdac8252;transform:rotate(-3deg)}.postcard svg{display:block;width:100%;height:auto;background:#eee8d7}.postcard path{fill:none;stroke:var(--pine);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.postcard .sun{fill:#c95945c2;stroke:none}.postcard .mountain{stroke:#7e8e80}.postcard .roof{stroke:var(--red-dark);stroke-width:3}.postcard .garden{stroke:#385c47}.postcard .water{stroke:#78929a}.postcard>span{position:absolute;left:24px;bottom:15px;color:var(--muted);font:italic 11px Georgia,Songti SC,serif}.identity-band{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:#ffffff38}.identity-picker{margin:0;padding:26px 32px;border:0;border-right:1px solid var(--line)}.identity-picker legend{float:left;width:auto;margin:0 24px 0 0;padding:13px 0;font-size:13px;font-weight:650}.identity-options{display:flex;gap:8px}.identity-options button{min-height:44px;padding:5px 16px 5px 7px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--paper);cursor:pointer;transition:border-color .16s,background .16s,transform .16s}.identity-options button.selected{border-color:var(--pine);background:var(--pine);color:var(--paper)}.identity-mark{width:30px;height:30px;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;font:italic 14px Georgia,serif}.identity-picker>p{clear:both;margin:10px 0 0;color:var(--muted);font-size:11px}.freshness{padding:25px 32px;display:grid;grid-template-columns:10px auto 1fr;align-items:center;gap:0 12px}.freshness .pulse{width:8px;height:8px;border-radius:50%;background:var(--brass)}.freshness div{display:flex;flex-direction:column;gap:3px}.freshness b{font-size:12px}.freshness span{color:var(--muted);font-size:10px}.freshness p{justify-self:end;max-width:370px;margin:0;color:var(--muted);font-size:11px;line-height:1.6}.board-intro{display:flex;align-items:end;justify-content:space-between;gap:32px;padding:76px 0 28px}.board-intro h2{margin:0;font-family:Georgia,Songti SC,serif;font-size:clamp(30px,4vw,50px);font-weight:500}.board-intro>p{max-width:390px;margin:0 0 4px;color:var(--muted);font-size:12px;line-height:1.7}.filter-bar{min-height:82px;padding:13px 18px;display:flex;align-items:center;gap:32px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.filter-set{display:flex;align-items:center;gap:13px}.filter-set>span{color:var(--muted);font-size:11px;white-space:nowrap}.segments{display:flex;gap:4px;padding:4px;background:#20382f0e}.segments button{min-height:44px;padding:0 16px;border:0;background:transparent;color:var(--muted);font-size:12px;cursor:pointer;transition:color .14s,background .14s,transform .14s}.segments button.selected{background:var(--paper);color:var(--pine);box-shadow:0 2px 10px #20382f14;font-weight:700}.result-count{margin-left:auto;color:var(--red-dark);font:italic 12px Georgia,serif;white-space:nowrap}.route-sketch{min-height:124px;margin:25px 0 32px;padding:20px 7%;display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;background:var(--pine);color:var(--paper)}.route-stop{min-width:80px;display:flex;flex-direction:column;gap:4px;text-align:center}.route-stop b{font:500 18px Georgia,Songti SC,serif}.route-stop span{color:#ffffff8c;font-size:9px;letter-spacing:.14em}.route-stop.accent b{color:#e6b16c}.route-stop.destination b{color:#e7d9bd}.route-line{position:relative;height:1px;margin:0 13px;background:#ffffff59}.route-line:after{content:"";position:absolute;right:-1px;top:-3px;width:6px;height:6px;border-top:1px solid #fff;border-right:1px solid #fff;transform:rotate(45deg)}.route-line span{position:absolute;left:50%;bottom:9px;transform:translate(-50%);color:#ffffff80;font-size:9px;white-space:nowrap}.sync-error{margin:-18px 0 25px;padding:12px 15px;border:1px solid rgba(201,89,69,.3);background:#c959450f;color:var(--red-dark);font-size:12px}.board-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:clamp(28px,4vw,60px);align-items:start;padding-bottom:90px}.sidebar{position:sticky;top:20px;display:grid;gap:14px}.side-card{padding:25px;border:1px solid var(--line);background:#fff3}.side-heading{display:flex;align-items:end;justify-content:space-between;gap:12px}.side-heading .eyebrow{margin:0;font-size:8px}.side-heading h2{margin:0;font:500 21px Georgia,Songti SC,serif}.mutual-empty{margin:24px 0 2px;color:var(--muted);font-size:12px;line-height:1.7}.mutual-empty span{display:block;margin-bottom:7px;color:var(--red);font-size:26px}.mutual-card ol{margin:18px 0 0;padding:0;list-style:none}.mutual-card li+li{border-top:1px solid var(--line)}.mutual-card a{padding:12px 0;display:flex;flex-direction:column;gap:4px;text-decoration:none}.mutual-card a span{font:15px Georgia,Songti SC,serif}.mutual-card a b{color:var(--muted);font-size:10px;font-weight:500}.read-only-label{margin:18px 0 8px;color:var(--brass);font-size:9px;letter-spacing:.1em}.task-card ul{display:grid;gap:12px;margin:0;padding:0;list-style:none}.task-card li{display:flex;align-items:center;gap:10px;font-size:12px}.task-card li span{width:15px;height:15px;flex:0 0 auto;border:1px solid var(--line)}.traveler-switch{margin:20px 0;display:grid;grid-template-columns:1fr 1fr;gap:4px}.traveler-switch button{min-height:44px;border:0;background:#20382f0f;cursor:pointer}.traveler-switch button.selected{background:var(--pine);color:#fff}.balance-label{margin:0;color:var(--muted);font-size:10px}.balance-number{margin:4px 0 16px;font:34px Georgia,serif}.balance-number small{color:var(--muted);font:10px sans-serif}.budget-result{padding:12px;display:flex;flex-direction:column;gap:6px;background:#20382f0f}.budget-result span{font-size:10px}.budget-result strong{font:22px Georgia,serif}.budget-result.negative{background:#c9594517;color:var(--red-dark)}.fine-print{margin:14px 0 0;font-size:10px;line-height:1.6}.trip-list{min-width:0;display:grid;gap:22px}.ticket-card{scroll-margin-top:20px;border:1px solid var(--line);background:var(--paper);box-shadow:0 12px 35px #20382f0e;transition:border-color .18s,box-shadow .18s}.ticket-topline{min-height:48px;padding:0 25px;display:flex;align-items:center;gap:18px;border-bottom:1px dashed var(--line);color:var(--muted);font-size:10px;letter-spacing:.08em}.trip-tag{padding:5px 8px;background:var(--pine);color:#fff;font-weight:700}.evidence-status{margin-left:auto;color:var(--red-dark);font-weight:700}.ticket-heading{padding:28px 30px 18px;display:flex;align-items:center;justify-content:space-between;gap:24px}.date-pair{display:flex;align-items:center;gap:20px}.date-pair>div{display:flex;flex-direction:column;gap:4px}.date-pair strong{font:42px/1 Georgia,Songti SC,serif;letter-spacing:-.04em}.date-pair span{color:var(--muted);font-size:10px}.date-pair i{color:var(--brass);font:26px Georgia,serif}.duration{display:grid;grid-template-columns:auto auto auto auto;align-items:baseline;gap:4px;color:var(--muted)}.duration b{color:var(--pine);font:30px Georgia,serif}.duration span{margin-right:5px;font-size:11px}.ticket-meta{margin:0 30px;padding:13px 0;display:flex;gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:11px}.ticket-meta b{color:var(--pine)}.flight-table{padding:13px 30px 16px}.flight-row{min-height:60px;display:grid;grid-template-columns:68px 70px minmax(100px,1fr) 70px 64px;align-items:center;gap:11px}.flight-label{display:flex;flex-direction:column;gap:4px}.flight-label span{color:var(--muted);font-size:9px}.flight-label b{font-size:11px}.airport-time{display:flex;flex-direction:column}.airport-time strong{font:20px Georgia,serif}.airport-time span{color:var(--muted);font-size:10px;letter-spacing:.12em}.airport-time.arrival{text-align:right}.flight-rule{display:flex;align-items:center;gap:8px;color:var(--muted)}.flight-rule i{height:1px;flex:1;background:var(--line)}.flight-rule span{font-size:9px;white-space:nowrap}.leg-miles{justify-self:end;color:var(--muted);font:italic 10px Georgia,serif}.flight-table>p{margin:0;color:var(--muted);text-align:right;font-size:9px}.card-actions{min-height:68px;padding:11px 30px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px dashed var(--line)}.heart-group{display:flex;gap:8px}.heart-group button{min-height:44px;padding:0 13px;display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:transparent;font-size:10px;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.heart-group button span{color:var(--red);font-size:18px}.heart-group button.hearted{border-color:#c9594573;background:#c959450f}.cache-evidence{position:relative;max-width:400px}.cache-evidence summary{min-height:44px;display:flex;align-items:center;color:var(--brass);font-size:10px;cursor:pointer}.cache-evidence p{position:absolute;z-index:5;right:0;width:min(360px,75vw);margin:4px 0 0;padding:14px;border:1px solid var(--line);background:var(--paper);box-shadow:0 12px 30px #20382f1f;color:var(--muted);font-size:10px;line-height:1.6}.ticket-details{border-top:1px solid var(--line)}.ticket-details>summary{min-height:58px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:11px;font-weight:700;list-style:none}.ticket-details>summary::-webkit-details-marker{display:none}.ticket-details>summary:before{content:"+";margin-right:10px;color:var(--red);font:20px Georgia,serif}.ticket-details[open]>summary:before{content:"−"}.ticket-details>summary span{margin-left:auto;color:var(--muted);font-weight:400}.detail-grid{padding:25px 30px;display:grid;grid-template-columns:.8fr 1.2fr;gap:30px;background:#20382f09}.detail-grid section+section{padding-left:30px;border-left:1px solid var(--line)}.detail-kicker{margin:0 0 7px;color:var(--red-dark);font-size:9px;letter-spacing:.12em}.detail-grid h3{margin:0 0 10px;font:18px Georgia,Songti SC,serif}.detail-grid p:not(.detail-kicker){margin:5px 0;color:var(--muted);font-size:11px;line-height:1.7}.source-notes{padding:22px 30px;display:grid;grid-template-columns:160px 1fr;gap:30px;border-top:1px solid var(--line)}.source-notes h3{margin:0 0 8px;font-size:11px}.source-notes a{min-height:30px;display:flex;align-items:center;color:var(--red-dark);font-size:10px}.source-notes ul{margin:0;padding-left:16px;color:var(--muted);font-size:10px;line-height:1.8}.comment-section{padding:27px 30px 30px;border-top:1px solid var(--line)}.comment-section>h3{margin:0 0 15px;font:20px Georgia,Songti SC,serif}.comment-list{display:grid;gap:8px}.empty-comment{margin:0 0 10px;padding:18px;background:#20382f09;color:var(--muted);font-size:11px}.comment{padding:13px 16px;background:#20382f0a}.comment>div{display:flex;align-items:center;gap:10px}.comment b{font-size:11px}.comment time{color:var(--muted);font-size:9px}.comment p{margin:8px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.7}.comment>button{min-height:36px;margin-top:6px;padding:0;border:0;background:transparent;color:var(--red-dark);font-size:9px;cursor:pointer}.comment-form{margin-top:14px}.comment-form label{display:block;margin-bottom:7px;font-size:10px;font-weight:700}.comment-form textarea{width:100%;min-height:88px;resize:vertical;padding:12px;border:1px solid var(--line);border-radius:0;background:#fffdf8;color:var(--pine);line-height:1.6}.comment-form>div{margin-top:7px;display:flex;align-items:center;justify-content:space-between}.comment-form span{color:var(--muted);font-size:9px}.comment-form button{min-height:44px;padding:0 18px;border:0;background:var(--pine);color:#fff;cursor:pointer}.empty-results{min-height:360px;padding:60px 30px;display:grid;place-items:center;align-content:center;text-align:center;border:1px dashed var(--line)}.empty-results>span{width:52px;height:52px;display:grid;place-items:center;border:1px solid var(--line);color:var(--red);font:22px Songti SC,serif}.empty-results h2{margin:20px 0 8px;font:28px Georgia,Songti SC,serif}.empty-results p{max-width:480px;margin:0 0 20px;color:var(--muted);font-size:12px;line-height:1.7}.empty-results button{min-height:44px;padding:0 18px;border:1px solid var(--pine);background:transparent;cursor:pointer}.site-footer{padding:48px max(32px,calc((100vw - 1440px)/2));display:grid;grid-template-columns:240px 1fr 180px;gap:40px;align-items:center;background:#1b3028;color:#f4f1e9}.footer-brand{display:flex;align-items:center;gap:12px}.footer-brand p{display:flex;flex-direction:column;gap:3px;margin:0}.footer-brand small{color:#ffffff73;font:8px Georgia,serif;letter-spacing:.12em}.footer-copy p{margin:5px 0;color:#ffffff94;font-size:10px;line-height:1.6}.footer-copy strong{color:#ffffffe6}.footer-copy a{color:#dfb579}.footer-stamp{text-align:right}.footer-stamp span{display:block;font:28px Georgia,serif}.footer-stamp small{color:#fff6;font-size:8px;letter-spacing:.12em}.low-key .hero{min-height:340px;grid-template-columns:1fr;padding-top:42px;padding-bottom:42px}.low-key .route-sketch{display:none}.low-key .board-intro{padding-top:46px}.comment>button{min-height:44px}@media(hover:hover){.quiet-button:hover,.identity-options button:hover,.heart-group button:hover,.segments button:hover,.empty-results button:hover{border-color:var(--red)}button:active{transform:scale(.98)}.ticket-card:hover{border-color:#20382f52;box-shadow:0 17px 42px #20382f17}.mutual-card a:hover{color:var(--red-dark)}}@media(max-width:1100px){.hero{grid-template-columns:1fr 420px;gap:35px}.hero h1{font-size:clamp(54px,7vw,76px)}.identity-band{grid-template-columns:1.15fr .85fr}.identity-picker legend{float:none;display:block;padding:0 0 10px}.board-layout{grid-template-columns:250px minmax(0,1fr);gap:26px}.filter-bar{flex-wrap:wrap;gap:10px 22px}.result-count{align-self:center}.date-pair strong{font-size:34px}.ticket-heading,.flight-table,.card-actions{padding-left:22px;padding-right:22px}.ticket-meta{margin-left:22px;margin-right:22px;flex-wrap:wrap;gap:10px 18px}.flight-row{grid-template-columns:55px 58px minmax(60px,1fr) 58px}.leg-miles{display:none}}@media(max-width:820px){.site-header,main#top{width:min(100% - 36px,700px)}.hero{min-height:auto;grid-template-columns:1fr;padding:54px 0 42px}.postcard{max-width:560px}.identity-band{grid-template-columns:1fr}.identity-picker{border-right:0;border-bottom:1px solid var(--line)}.freshness{grid-template-columns:10px auto}.freshness p{grid-column:1 / -1;justify-self:start;margin-top:12px}.board-intro{align-items:start;flex-direction:column;padding-top:58px}.board-layout{grid-template-columns:1fr}.sidebar{position:static;grid-template-columns:1fr 1fr}.budget-card{grid-column:1 / -1}.route-sketch{padding-left:4%;padding-right:4%}.site-footer{grid-template-columns:1fr;gap:22px}.footer-stamp{text-align:left}}@media(max-width:560px){.site-header,main#top{width:calc(100% - 32px)}.site-header{min-height:74px}.couple-mark{display:none}.brand b{font-size:13px}.hero{padding-top:42px}.hero h1{margin-bottom:20px;font-size:52px;line-height:1.05}.hero-subtitle{font-size:14px;line-height:1.75}.hero-facts{gap:10px}.hero-facts span:not(.warning-chip){width:100%;padding:0;border:0}.postcard{padding:11px 11px 35px}.identity-picker,.freshness{padding:21px 18px}.identity-options{width:100%}.identity-options button{flex:1;justify-content:center;padding-right:8px}.board-intro{padding-top:48px}.board-intro h2{font-size:34px}.filter-bar{margin:0 -16px;padding:16px;align-items:stretch}.filter-set{width:100%;align-items:stretch;flex-direction:column;gap:7px}.segments{display:grid;grid-template-columns:repeat(4,1fr)}.city-filter .segments{grid-template-columns:repeat(3,1fr)}.segments button{min-width:0;padding:0 5px}.result-count{margin-left:0}.route-sketch{min-height:105px;margin-left:-16px;margin-right:-16px;padding:16px 10px}.route-stop{min-width:58px}.route-stop b{font-size:14px}.route-line{margin:0 5px}.route-line span{font-size:8px}.sidebar{grid-template-columns:1fr}.budget-card{grid-column:auto}}@media(max-width:560px){.ticket-topline{padding:0 16px;gap:9px}.ticket-heading{padding:23px 18px 16px;align-items:flex-start;flex-direction:column}.date-pair{width:100%;justify-content:space-between;gap:8px}.date-pair strong{font-size:32px}.duration b{font-size:24px}.ticket-meta{margin:0 18px;padding:12px 0;display:grid;gap:7px}.flight-table{padding:10px 18px 14px}.flight-row{min-height:67px;grid-template-columns:45px 50px minmax(35px,1fr) 50px;gap:6px}.airport-time strong{font-size:17px}.flight-rule{gap:4px}.flight-rule span{max-width:60px;white-space:normal;text-align:center;line-height:1.3}.card-actions{padding:11px 18px;align-items:stretch;flex-direction:column;gap:4px}.heart-group{width:100%}.heart-group button{flex:1;justify-content:center}.cache-evidence summary{justify-content:flex-end}.cache-evidence p{right:auto;left:0;width:100%}.ticket-details>summary{padding:0 18px}.detail-grid{padding:22px 18px;grid-template-columns:1fr;gap:20px}.detail-grid section+section{padding:20px 0 0;border-left:0;border-top:1px solid var(--line)}.source-notes{padding:20px 18px;grid-template-columns:1fr;gap:14px}.comment-section{padding:23px 18px}.site-footer{padding-left:24px;padding-right:24px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
