@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,400;9..144,600&family=Noto+Sans+TC:wght@400;500;600;700&display=swap');
:root{--paper:#FFFDF8;--court:#2E5339;--blue:#B7C9D6;--sand:#D9BFA3;--forest:#24372D;--mist:#E6E9E0}*{box-sizing:border-box}body{margin:0;background:#e6e9e0;color:var(--forest);font-family:'DM Sans','Noto Sans TC',sans-serif;font-size:14px}.app{max-width:490px;min-height:100dvh;margin:auto;background:var(--paper);padding-bottom:94px;box-shadow:0 10px 32px #24372d16}header{height:73px;padding:13px 22px;border-bottom:1px solid #d7ded4;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--paper);z-index:5}.mark{text-decoration:none;color:var(--forest);font-family:Fraunces,Georgia,serif;font-size:22px}.mark small{display:block;font-family:'DM Sans',sans-serif;font-size:9px;letter-spacing:.19em;font-weight:700}.edition{font-size:10px;color:var(--court);letter-spacing:.11em}main{padding:23px 22px}.eyebrow{color:var(--court);letter-spacing:.15em;font-size:10px;font-weight:700;text-transform:uppercase}.display{font-family:Fraunces,Georgia,serif;font-weight:400;font-size:clamp(42px,10vw,64px);letter-spacing:-.05em;line-height:1.02;margin:12px 0}.h2{font:400 31px/1.12 Fraunces,Georgia,serif;letter-spacing:-.03em;margin:8px 0 14px}p{line-height:1.8;color:#536557}a{color:inherit}.hero-art{height:155px;position:relative;overflow:hidden;background:var(--blue);margin:20px 0 20px;border:8px solid var(--mist)}.hero-art:before{content:'';position:absolute;inset:auto -15% -55% -10%;height:135%;border-radius:50%;background:var(--court);transform:rotate(-15deg)}.hero-art:after{content:'FUKUOKA  ·  WINTER 2026';position:absolute;right:12px;top:12px;font-size:10px;letter-spacing:.15em;color:var(--forest);background:var(--paper);padding:8px 11px}.stamp{position:absolute;z-index:2;left:16px;bottom:15px;border:1px dashed var(--paper);padding:10px;color:var(--paper);transform:rotate(-8deg);font:italic 25px Fraunces,serif}.strip{background:var(--mist);padding:14px;display:flex;justify-content:space-between;align-items:center;border-radius:12px;gap:8px}.strip b{font-size:13px}.strip small{display:block;color:#586d5c;margin-top:4px}.section{margin-top:26px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.tile{min-height:116px;text-decoration:none;padding:15px;border-radius:15px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .15s;position:relative}.tile:hover{transform:translateY(-2px)}.tile strong{font-size:17px}.tile small{font-size:9px;letter-spacing:.12em}.tile .arrow{align-self:flex-end;font-size:21px}.mist{background:var(--mist)}.blue{background:var(--blue)}.sand{background:var(--sand)}.green{background:var(--court);color:var(--paper)}.card{background:var(--mist);padding:17px;border-radius:15px;margin:13px 0}.card.cream{background:#f5f1e8}.card h3{margin:0 0 7px;font-size:16px}.card p{margin:6px 0}.button{display:inline-block;background:var(--court);color:var(--paper);border:1px solid var(--court);padding:12px 16px;text-decoration:none;border-radius:11px;font-weight:700;font-size:13px;cursor:pointer}.button.secondary{background:transparent;color:var(--court)}.actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:13px}.line{border:0;border-top:1px solid #d8dfd6;margin:22px 0}.date-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin:17px 0}.date{border:1px solid #d3dcd3;background:var(--mist);color:var(--forest);padding:12px 0;border-radius:11px;cursor:pointer;font:600 13px 'DM Sans',sans-serif}.date.on{background:var(--court);color:var(--paper)}.timeline{border-left:1px solid var(--court);margin:16px 0 20px 11px;padding-left:18px}.event{padding:0 0 19px;position:relative}.event:before{content:'';width:8px;height:8px;border-radius:50%;background:var(--court);position:absolute;left:-23px;top:7px}.event time{display:block;font-size:12px;color:#6d756a}.event h3{margin:4px 0;font-size:16px}.empty{background:var(--mist);border-radius:12px;padding:23px;line-height:1.8;color:#5a705f}.chips{display:flex;gap:7px;flex-wrap:wrap;margin:15px 0}.chip{border:1px solid var(--court);color:var(--court);background:transparent;border-radius:20px;padding:8px 12px;cursor:pointer}.chip.on{background:var(--court);color:white}.field{display:flex;flex-direction:column;gap:6px;margin:13px 0}.field label{font-size:12px;font-weight:700}.field input,.field select,.field textarea{background:white;border:1px solid #c6d1c6;border-radius:9px;padding:12px;font:inherit;max-width:100%}.notice{background:var(--sand);border-radius:11px;padding:12px;line-height:1.6;font-size:12px}.checks{display:grid;gap:13px}.check{display:flex;gap:12px;padding:13px;background:var(--mist);border-radius:11px;align-items:flex-start}.check input{margin-top:4px}.muted{color:#708072;font-size:12px}nav{position:fixed;z-index:9;bottom:0;left:50%;transform:translateX(-50%);max-width:490px;width:100%;display:grid;grid-template-columns:repeat(5,1fr);background:var(--paper);box-shadow:0 -2px 15px #24372d14;border-top:1px solid #d8dfd6;padding:9px 5px calc(9px + env(safe-area-inset-bottom))}nav a{text-decoration:none;text-align:center;color:#748376;font-size:10px;display:grid;gap:3px;padding:5px 0;border-radius:9px}nav a span{font-size:21px}nav a.active{color:var(--court);font-weight:700;background:var(--mist)}.small-link{color:var(--court);font-weight:700;text-decoration:none}.note{font-size:12px;color:#768678} @media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* v7 visual layer — retains v6 multi-page routes */
.home-main{padding-top:24px}.home-cover{position:relative}.cover-title{display:flex;align-items:end;justify-content:space-between;gap:8px}.cover-title .display{font-size:clamp(43px,11vw,64px);margin:10px 0 8px}.cover-title .display i{font-weight:400}.edition-tag{align-self:center;white-space:nowrap;background:var(--sand);color:var(--forest);font:700 11px/1.5 'DM Sans',sans-serif;letter-spacing:.08em;text-align:center;padding:9px 12px;transform:rotate(5deg)}.cover-blurb{font-size:13px;line-height:1.8;max-width:290px;margin:7px 0 13px}.illustrated-cover{position:relative;background:var(--mist);overflow:hidden;border:1px solid #d4dcd1;border-radius:4px;aspect-ratio:1.85}.illustrated-cover img{width:100%;height:100%;object-fit:cover;display:block}.cover-stamp{position:absolute;bottom:13px;right:12px;border:1px dashed var(--forest);border-radius:50%;width:68px;height:68px;display:grid;place-content:center;text-align:center;font:italic 12px/1.2 Fraunces,Georgia,serif;transform:rotate(-14deg);color:var(--forest);background:#fffdf8d1}.trip-status{margin-top:18px;display:flex;align-items:center;justify-content:space-between;background:var(--mist);padding:13px 14px;gap:12px}.trip-status strong{font-size:13px;display:block;margin-top:5px}.count-chip{flex:none;padding:9px;background:var(--court);color:var(--paper);font-size:11px;font-weight:700;letter-spacing:.03em}.desk{margin-top:26px}.desk .h2{margin-bottom:2px}.desk .h2 span{font-size:19px;color:var(--court)}.section-hint{margin:5px 0 17px;font-size:12px;color:#65766a}.tape-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 13px;padding:7px 3px 12px}.tape-link{color:var(--forest);text-decoration:none;display:flex;min-height:102px;flex-direction:column;justify-content:space-between;padding:14px 13px 12px;position:relative;clip-path:polygon(0 4%,3% 0,97% 1%,100% 6%,98% 94%,100% 100%,3% 98%,0 95%);box-shadow:0 3px 3px #24372d14;transition:transform .18s ease,filter .18s ease}.tape-link:nth-child(1){transform:rotate(-2deg)}.tape-link:nth-child(2){transform:rotate(1.5deg)}.tape-link:nth-child(3){transform:rotate(1deg)}.tape-link:nth-child(4){transform:rotate(-1.3deg)}.tape-link:hover,.tape-link:focus-visible{filter:brightness(.98);outline:2px solid var(--court);outline-offset:3px}.tape-link:active{scale:.98}.tape-link strong{font-size:18px;letter-spacing:.02em}.tape-top{font:700 9px 'DM Sans',sans-serif;letter-spacing:.1em}.tape-foot{display:flex;justify-content:space-between;align-items:center;font:600 10px 'DM Sans',sans-serif;letter-spacing:.06em}.tape-foot b{font-size:18px}.tape-blue{background:var(--blue)}.tape-sand{background:var(--sand)}.tape-mist{background:var(--mist)}.tape-forest{background:var(--court);color:var(--paper)}.preflight{display:flex;position:relative;gap:12px;align-items:center;background:var(--mist);padding:15px;margin-top:21px;border-left:3px solid var(--court)}.preflight-illustration{font:32px Fraunces,Georgia,serif;color:var(--court);align-self:flex-start}.preflight>div:nth-child(2){flex:1;min-width:0}.preflight h2{font:400 23px Fraunces,Georgia,serif;margin:5px 0 3px}.preflight p{font-size:12px;line-height:1.55;margin:0}.round-arrow{flex:none;display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--court);color:var(--court);border-radius:50%;text-decoration:none;font-size:20px}.home-main .note{margin-top:20px;font-size:11px}.itinerary-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;position:relative}.itinerary-intro{flex:1;min-width:0}.itinerary-head .interior-title{font-size:clamp(44px,10vw,57px);margin:11px 0}.itinerary-head p{font-size:13px;margin:9px 0}.ticket-mark{flex:none;width:93px;height:121px;border:1px solid var(--forest);background:var(--sand);transform:rotate(6deg);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;overflow:hidden}.ticket-mark:before,.ticket-mark:after{content:'';position:absolute;top:49%;background:var(--paper);border-radius:50%;width:16px;height:16px}.ticket-mark:before{left:-9px}.ticket-mark:after{right:-9px}.ticket-mark span{font:700 14px 'DM Sans',sans-serif;letter-spacing:.18em}.ticket-mark strong{font:40px Fraunces,serif;font-weight:400;color:var(--court)}.ticket-mark small{font-size:8px;letter-spacing:.1em}.days-label{display:flex;justify-content:space-between;align-items:center;margin-top:22px}.itinerary-day-card{background:var(--mist);padding:15px 18px;position:relative;overflow:hidden;border-radius:3px}.itinerary-day-card .eyebrow{font-size:9px}.itinerary-day-card h2{font:400 24px Fraunces,Georgia,serif;margin:5px 0}.itinerary-day-card small{font-size:10px;letter-spacing:.1em;color:var(--court)}.date-sticker{position:absolute;right:16px;top:10px;font:50px Fraunces,serif;color:#b2c8b3;opacity:.6}.events-wrap{margin-top:22px}.events-wrap #events{margin-top:9px}.events-wrap .empty{border:1px solid #d6dfd4;background:var(--paper);border-radius:4px}.itinerary-head + .date-row{margin-top:18px}.date-row .date{border-radius:4px}.date:focus-visible,nav a:focus-visible,.button:focus-visible{outline:2px solid var(--court);outline-offset:2px}
@media(max-width:350px){.tape-grid{gap:11px}.tape-link{padding:12px 9px}.tape-link strong{font-size:16px}.ticket-mark{width:75px;height:105px}}@media(prefers-reduced-motion:reduce){.tape-link{transition:none}}



/* v8.1 typography refresh — Huiwen Mincho + Jason Handwriting 5p + larger ChenYuluoyan */
@font-face{font-family:'ChenYu Journal';src:url('https://cdn.jsdelivr.net/gh/Chenyu-otf/chenyuluoyan_thin@main/ChenYuluoyan-2.0-Thin.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Tape Hand 5p';src:url('https://cdn.jsdelivr.net/gh/jasonhandwriting/JasonHandwriting@master/JasonHandwriting5p.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Huiwen Mincho';src:url('https://cdn.jsdelivr.net/gh/bosswnx/huiwenmincho-improved@main/%E5%8C%AF%E6%96%87%E6%98%8E%E6%9C%9D%E9%AB%94.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
.handwritten-note{font-family:'ChenYu Journal','Kaiti TC','BiauKai','Noto Serif TC',serif!important;font-weight:400;font-size:clamp(20px,5vw,25px);letter-spacing:.025em;line-height:1.74;overflow-wrap:anywhere}
.cover-blurb.handwritten-note{max-width:100%;margin:14px 0 18px;color:#3a5945}
.section-hint.handwritten-note{font-size:clamp(17px,4.2vw,20px);color:#536b57}
.preflight p.handwritten-note{font-size:clamp(16px,4vw,19px);line-height:1.6}
/* Chinese headings with print texture */
.zh-mincho,.preflight h2{font-family:'Huiwen Mincho','Noto Serif TC',serif;letter-spacing:.02em}
/* Tape buttons and selected handwritten UI labels */
.tape-link strong{font-family:'Tape Hand 5p','Kaiti TC','BiauKai','Noto Sans TC',sans-serif;font-size:clamp(19px,5vw,23px);font-weight:400;line-height:1.28;letter-spacing:.02em}
.tape-link .tape-foot{font-size:10px}
/* prevent emoji-like symbols on iPhone */
.glyph-arrow,.glyph-star{font-family:'DM Sans','Noto Sans TC',sans-serif;font-style:normal;display:inline-block;line-height:1}
.glyph-arrow{font-size:1em;transform:translateY(-.02em)}
.glyph-star{font-size:1em;letter-spacing:0;color:inherit}
.round-arrow{font-size:18px}
.preflight-illustration,.desk .h2 span,.cover-stamp .glyph-star,.ticket-mark .glyph-star,.date-sticker{font-family:Fraunces,Georgia,serif}
.ticket-mark .glyph-star,.date-sticker{font-size:40px;font-weight:400;color:var(--court)}
.date-sticker{position:absolute;right:16px;top:10px;opacity:.35}
.ticket-mark .glyph-star{line-height:1}
.actions .button.secondary{display:inline-flex;align-items:center;gap:6px}
.editorial-button{font-family:'Huiwen Mincho','Noto Serif TC',serif!important;font-weight:400;letter-spacing:.02em;font-size:17px;padding:13px 18px}.editorial-button .glyph-arrow{font-size:1.02em;margin-left:2px}@media(max-width:350px){.tape-link strong{font-size:18px}.handwritten-note{font-size:19px}.editorial-button{font-size:16px;padding:12px 16px}}
