:root{--ink:#123b4a;--sea:#247a8b;--sand:#f2e8d5;--paper:#fffdf8;--olive:#72856a;--coral:#d96d4c;--line:#e5d8bf;--shadow:0 12px 30px rgba(44,56,44,.09);font-family:"DM Sans",sans-serif;color:var(--ink);background:var(--sand)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 8% 0%,#fffdf8 0,transparent 34%),var(--sand);min-width:320px}button,a,textarea{font:inherit}.app-shell{width:min(100%,520px);min-height:100vh;margin:auto;padding:22px 18px 105px;background:linear-gradient(135deg,rgba(255,253,248,.82),rgba(255,253,248,.96));position:relative}.site-header{height:55px;display:flex;justify-content:space-between;align-items:center}.brand{font-family:Gelasio,serif;font-weight:700;font-size:30px;font-style:italic;letter-spacing:-1.5px;color:var(--ink);text-decoration:none}.brand span{font-family:Arial;font-size:17px;color:var(--coral);vertical-align:top;margin-left:3px}.icon-button,.dialog-close{border:0;background:#f3ead9;color:var(--ink);width:48px;height:48px;border-radius:50%;font-size:24px;cursor:pointer}.view{display:none;animation:arrive .28s ease}.view.active{display:block}@keyframes arrive{from{opacity:.35;transform:translateY(8px)}to{opacity:1;transform:none}}.coastline{height:135px;border-radius:24px;background:linear-gradient(155deg,#d2e8e5,#eaf1e5 59%,#f3e7cf);margin:10px 0 18px;position:relative;overflow:hidden}.sun{position:absolute;right:28px;top:15px;font-size:35px;color:var(--coral)}.boat{position:absolute;left:22px;top:37px;font-size:36px;color:var(--sea)}.route-ribbon{position:absolute;bottom:-30px;left:-15%;width:130%;height:86px;background:var(--sea);border-radius:48% 50% 0 0;transform:rotate(-5deg);display:flex;align-items:center;justify-content:space-between;padding:0 15%;color:#fff}.route-dashes{height:2px;border-top:4px dashed #fff;flex:1;margin:0 8px;opacity:.9}.pin{font-size:19px}.finish{background:var(--ink);width:38px;height:38px;border-radius:50%;display:grid;place-items:center}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.2px;color:var(--sea);margin:0 0 6px}h1,h2{font-family:Gelasio,serif;letter-spacing:-1.4px;margin:0;color:var(--ink)}h1{font-size:42px;line-height:1.04}h2{font-size:25px}.intro{font-size:17px;line-height:1.45;color:#46606a;margin:13px 0 22px}.journey-summary{display:grid;grid-template-columns:repeat(3,1fr);padding:15px 8px;margin:0 0 16px;background:#f8f1e4;border:1px solid var(--line);border-radius:20px}.journey-summary>div{text-align:center;padding:0 5px;border-right:1px solid var(--line)}.journey-summary>div:last-child{border:0}.summary-icon{height:31px;width:31px;border-radius:50%;display:grid;place-items:center;margin:0 auto 5px;background:var(--sea);color:#fff;font-size:17px}.journey-summary strong{display:block;font-size:15px}.journey-summary small{font-size:12px;color:#63736c}.primary-button,.secondary-button,.complete-button{border:0;border-radius:17px;min-height:58px;width:100%;display:flex;justify-content:center;align-items:center;gap:10px;font-weight:700;text-decoration:none;cursor:pointer}.primary-button{background:var(--ink);color:#fff;font-size:18px;box-shadow:0 9px 18px rgba(18,59,74,.18)}.primary-button span{font-size:23px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:27px 1px 12px}.section-heading.compact{margin-top:23px}.section-heading h2{font-size:23px}.progress-text{font-size:14px;font-weight:700;color:var(--sea);padding-bottom:3px}.checklist{display:grid;gap:9px}.check-row{display:flex;align-items:center;width:100%;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:10px 12px;min-height:64px;box-shadow:0 3px 9px rgba(50,55,40,.025);cursor:pointer;text-align:left;color:var(--ink)}.check-row input{appearance:none;width:29px;height:29px;border:2px solid var(--ink);border-radius:9px;margin:0 13px 0 0;flex:none}.check-row input:checked{background:var(--olive);border-color:var(--olive)}.check-row input:checked:after{content:"✓";display:block;color:#fff;font-size:21px;text-align:center;line-height:25px}.check-row span{font-size:17px;font-weight:600}.check-row .row-arrow{margin-left:auto;font-size:28px;line-height:1;font-weight:400}.note-box{margin-top:20px;border:1px solid var(--line);border-radius:17px;padding:13px;background:#f9f2e6}.note-box label{display:block;font-size:14px;font-weight:700;margin-bottom:8px}.note-box textarea{width:100%;resize:vertical;min-height:72px;border:0;border-radius:10px;padding:10px;color:var(--ink);background:var(--paper);font-size:16px}.complete-button{margin-top:14px;background:var(--olive);color:#fff;font-size:17px}.complete-button span{font-size:22px}.timeline{position:relative;margin:25px 0 0 11px;padding-left:26px;border-left:2px solid #d9cab0}.timeline-item{position:relative;padding:0 0 22px}.timeline-dot{position:absolute;width:18px;height:18px;border-radius:50%;left:-36px;top:3px;background:#f7eedc;border:3px solid #d9cab0}.timeline-item.done .timeline-dot{background:var(--sea);border-color:var(--sea)}.timeline-item.today .timeline-dot{background:var(--coral);border-color:var(--coral);box-shadow:0 0 0 5px #f4d4c8}.timeline-date{font-size:13px;font-weight:700;color:#63736c}.timeline-place{font-family:Gelasio,serif;font-weight:600;font-size:21px;margin-top:2px}.timeline-meta{font-size:14px;color:#56706f;margin-top:3px}.timeline-item.today .timeline-place{color:var(--coral)}.segmented{display:grid;grid-template-columns:repeat(4,1fr);background:#f5eddf;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-top:22px}.segmented button{border:0;background:transparent;min-height:52px;color:var(--ink);font-weight:700;cursor:pointer;font-size:13px}.segmented button.selected{background:var(--ink);color:#fff;border-radius:13px}.progress-bar{height:8px;background:#eadcc1;border-radius:99px;overflow:hidden;margin:0 0 14px}.progress-bar span{display:block;height:100%;background:var(--sea);border-radius:inherit;transition:width .2s}.info-list{display:grid;gap:12px;margin-top:26px}.info-card{display:flex;align-items:center;gap:13px;min-height:86px;padding:10px;background:var(--paper);border:1px solid var(--line);border-radius:20px;color:var(--ink);text-decoration:none;box-shadow:var(--shadow)}.info-symbol{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;color:#fff;font-size:28px;flex:none}.coral{background:var(--coral)}.blue{background:var(--ink)}.sea{background:var(--sea)}.olive{background:var(--olive)}.info-card strong,.info-card small{display:block}.info-card strong{font-size:18px}.info-card small{font-size:14px;color:#56706f;line-height:1.35;margin-top:3px}.info-card b{font-size:30px;font-weight:400;margin-left:auto;padding:0 7px}.secondary-button{margin-top:24px;background:#f2e8d5;border:1px solid #d6c5a7;color:var(--ink);font-size:16px}.bottom-nav{position:fixed;z-index:3;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,520px);height:82px;padding:9px 10px max(9px,env(safe-area-inset-bottom));background:rgba(255,253,248,.95);backdrop-filter:blur(13px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr)}.nav-item{border:0;background:transparent;color:#61716d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-weight:700;font-size:12px;cursor:pointer;border-radius:13px}.nav-item span{font-size:22px;line-height:22px}.nav-item.selected{color:var(--ink);background:#f2eadc}.nav-item.selected span{color:var(--sea)}dialog{border:0;border-radius:24px;width:min(calc(100% - 34px),440px);padding:0;color:var(--ink);background:var(--paper);box-shadow:0 25px 70px rgba(18,59,74,.3)}dialog::backdrop{background:rgba(16,42,50,.38)}dialog form{padding:29px 22px 22px;position:relative}.dialog-close{position:absolute;right:14px;top:14px;width:39px;height:39px;font-size:29px}.setting-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:18px 0}.setting-row strong,.setting-row small{display:block}.setting-row small{font-size:13px;color:#60706f;margin-top:3px}.setting-row input{appearance:none;width:48px;height:29px;border-radius:20px;background:#d8c9ae;position:relative;cursor:pointer}.setting-row input:after{content:"";width:23px;height:23px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px;transition:.2s}.setting-row input:checked{background:var(--sea)}.setting-row input:checked:after{left:22px}.toast{position:fixed;z-index:8;left:50%;bottom:95px;transform:translate(-50%,15px);background:var(--ink);color:#fff;padding:11px 16px;border-radius:12px;font-size:14px;opacity:0;pointer-events:none;transition:.2s;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}body.large-text{font-size:112%}body.night{--paper:#183f49;--ink:#f9f1e1;--sea:#79c3c6;--sand:#102b33;--olive:#9bad85;--line:#42636a;background:#102b33}.night .app-shell{background:linear-gradient(135deg,#153740,#102b33)}.night .intro,.night .timeline-meta,.night .info-card small,.night .journey-summary small{color:#c5d9d5}.night .journey-summary,.night .segmented,.night .note-box,.night .secondary-button{background:#244a52}.night .check-row,.night .info-card,.night .note-box textarea{background:#1b424c}.night .bottom-nav{background:rgba(18,47,55,.95)}.night .nav-item.selected{background:#28515a}.night .coastline{background:linear-gradient(155deg,#285c64,#4b6b62 60%,#6b6652)}@media(max-width:360px){.app-shell{padding-left:13px;padding-right:13px}h1{font-size:37px}.segmented button{font-size:11px}.journey-summary strong{font-size:13px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
