:root{--ink:#17231f;--cream:#f3efe6;--paper:#fbfaf6;--coral:#e96b4b;--mint:#b9d6ca;--line:#d8d3c7;--muted:#6c756f;--gold:#d8a84e;--shadow:0 18px 50px #17231f1a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);margin:0;font-family:DM Sans,system-ui,sans-serif;line-height:1.45}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app>header{background:var(--ink);color:#fff;padding:calc(22px + env(safe-area-inset-top)) max(22px,calc((100vw - 880px)/2)) 52px;position:relative;overflow:hidden}.app>header:after{content:"✦";color:#b9d6ca14;font:260px Georgia;position:absolute;bottom:-90px;right:-24px;transform:rotate(12deg)}.topline{justify-content:space-between;align-items:center;margin-bottom:54px;display:flex}.brand{letter-spacing:.18em;font-size:.76rem;font-weight:700}.brand b{color:var(--coral)}.network{color:#b9d6ca;font-size:.72rem}.network.off{color:#f3c181}.kicker{letter-spacing:.2em;color:var(--coral);margin:0 0 12px;font-size:.68rem;font-weight:700}.app header h1,.lock h1{letter-spacing:-.06em;max-width:700px;margin:0;font-size:clamp(2.7rem,12vw,5.2rem);line-height:.94}.app header h1 em,.lock h1 em{color:var(--mint);font-family:Playfair Display,serif;font-weight:600}.hero-meta{letter-spacing:.12em;color:#bdc7c1;flex-wrap:wrap;gap:20px;margin-top:28px;font-size:.69rem;font-weight:700;display:flex}.hero-actions{gap:9px;margin-top:24px;display:flex}.hero-actions button{color:#fff;background:0 0;border:1px solid #53605a;border-radius:99px;padding:10px 16px;font-weight:700}.days-nav{z-index:2;background:var(--paper);max-width:880px;box-shadow:var(--shadow);border-radius:18px;grid-template-columns:repeat(5,1fr);margin:-25px auto 0;display:grid;position:relative;overflow:hidden}.days-nav button{border:0;border-right:1px solid var(--line);color:var(--muted);background:0 0;padding:13px 4px}.days-nav button:last-child{border:0}.days-nav small{letter-spacing:.13em;font-size:.59rem;display:block}.days-nav b{font:600 1.35rem Playfair Display,serif;display:block}.days-nav .active{background:var(--coral);color:#fff}.content{max-width:880px;margin:auto;padding:36px 18px 130px}.day-intro{justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px;display:flex}.day-intro h2{letter-spacing:-.035em;margin:0;font-size:clamp(1.55rem,5vw,2.3rem);line-height:1.07}.day-progress{flex:none;align-items:center;gap:7px;display:flex}.day-progress b{color:var(--coral);font:600 2.1rem Playfair Display,serif}.day-progress span{color:var(--muted);font-size:.68rem;line-height:1.15}.alert{border-left:4px solid var(--coral);background:#fbe9e3;border-radius:3px 12px 12px 3px;gap:3px;margin-bottom:20px;padding:14px 16px;font-size:.86rem;display:grid}.alert.amber{border-color:var(--gold);background:#f8edd5}.alert span{color:#5e655f}.timeline{position:relative}.event{grid-template-columns:30px 77px 1fr;gap:9px;display:grid;position:relative}.tick{background:var(--cream);color:#fff;z-index:2;border:2px solid #9da69f;border-radius:8px;width:25px;height:25px;margin-top:14px;padding:0;font-weight:700;position:relative}.event.done .tick{background:var(--ink);border-color:var(--ink)}.rail{padding-top:14px;position:relative}.rail time{color:var(--muted);font-size:.69rem;font-weight:700}.rail i{border-left:1px dashed #c6c1b7;position:absolute;top:0;bottom:0;left:-27px}.event:first-child .rail i{top:26px}.event-card{background:var(--paper);border:1px solid var(--line);border-radius:15px;margin-bottom:12px;padding:16px;box-shadow:0 5px 18px #17231f0a}.event.done .event-card{opacity:.56}.event.done h3{text-decoration:line-through}.event-head{justify-content:space-between;align-items:start;gap:9px;display:flex}.event h3{margin:0;font-size:1rem}.event p{color:#59615c;margin:8px 0 0;font-size:.84rem}.pill{letter-spacing:.07em;text-transform:uppercase;background:#e6e3dc;border-radius:99px;flex:none;padding:4px 7px;font-size:.54rem}.pill.backup{color:#7e5a15;background:#f4e6c9}.verified{font-weight:600;color:#36705c!important}.event-links{flex-wrap:wrap;gap:12px;margin-top:11px;display:flex}.event-links a{color:var(--coral);font-size:.73rem;font-weight:700;text-decoration:none}.notes{margin-top:28px}.notes textarea{border:1px solid var(--line);background:var(--paper);resize:vertical;border-radius:15px;width:100%;min-height:120px;padding:15px}.notes>span{text-align:right;color:var(--muted);margin-top:5px;font-size:.66rem;display:block}.more{grid-template-columns:1fr 1fr;gap:10px;margin-top:25px;display:grid}.more button{border:1px solid var(--line);background:var(--paper);text-align:left;border-radius:14px;justify-content:space-between;padding:16px;font-weight:700;display:flex}.app>footer{z-index:5;color:#fff;padding:13px max(18px,calc((100vw - 880px)/2)) calc(13px + env(safe-area-inset-bottom));background:#17231ff5;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;display:grid;position:fixed;bottom:0;left:0;right:0}.app>footer div:first-child{align-items:center;gap:7px;display:flex}.app>footer b{font:600 1.5rem Playfair Display,serif}.app>footer span{color:#b9c0bc;max-width:55px;font-size:.61rem;line-height:1.05}.bar{background:#4f5954;border-radius:99px;height:4px;overflow:hidden}.bar i{background:var(--coral);height:100%;display:block}.app>footer button{color:#fff;background:0 0;border:1px solid #59635e;border-radius:99px;padding:7px 10px;font-size:.69rem}.overlay{z-index:20;background:#0a120fa6;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.overlay aside{background:var(--paper);width:min(100%,720px);max-height:88vh;padding:28px 20px calc(30px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;position:relative;overflow:auto}.overlay h2{margin:0 0 20px;font-size:2rem}.close{background:#eae6dd;border:0;border-radius:50%;width:36px;height:36px;font-size:1.4rem;position:absolute;top:14px;right:16px}.essential{border-top:1px solid var(--line);color:inherit;padding:13px 0;text-decoration:none;display:block}.essential small{color:var(--muted);display:block}details{border-top:1px solid var(--line);padding:13px 0}summary{cursor:pointer;font-weight:700}li{color:#59615c;margin:9px 0;font-size:.85rem}.confirm{border-top:1px solid var(--line);align-items:start;gap:12px;padding:14px 0;display:flex}.confirm input{width:21px;height:21px;accent-color:var(--coral)}.lock{background:var(--ink);color:#fff;grid-template-columns:.9fr 1.1fr;min-height:100dvh;display:grid}.lock-art{background:var(--coral);letter-spacing:-.12em;flex-direction:column;justify-content:space-between;padding:40px;font-size:clamp(6rem,18vw,14rem);font-weight:700;display:flex;overflow:hidden}.lock-art i{letter-spacing:0;font:600 3rem Playfair Display,serif}.lock-card{align-self:center;padding:10vw}.lock-card>p:not(.kicker){color:#aeb8b2}.lock form{max-width:410px;margin-top:36px}.lock label{color:#bdc7c1;font-size:.72rem}.lock input{color:#fff;background:#202e29;border:1px solid #52605a;border-radius:11px;width:100%;margin-top:7px;padding:14px;display:block}.lock form button{background:var(--coral);color:#fff;border:0;border-radius:11px;justify-content:space-between;width:100%;margin-top:12px;padding:14px;font-weight:700;display:flex}.lock-card>small{color:#78847d;margin-top:16px;display:block}.error{color:#ff9c80;margin-top:8px;font-size:.75rem}@media (width<=650px){.lock{grid-template-columns:1fr}.lock-art{display:none}.lock-card{padding:26px}.event{grid-template-columns:29px 61px 1fr;gap:6px}.event-card{padding:13px}.event-head{display:block}.pill{margin-top:7px;display:inline-block}.more{grid-template-columns:1fr}.app>header{padding-bottom:45px}.topline{margin-bottom:38px}}@media (display-mode:standalone){.app>header{padding-top:calc(30px + env(safe-area-inset-top))}}:root{--ink:#17202d;--cream:#f5f0e6;--paper:#fffdf7;--coral:#ff4f87;--mint:#97f1c4;--line:#d8d0c2;--gold:#ffd54f;--blue:#3157ff;--shadow:7px 8px 0 #17202d1c}body{background-color:var(--cream);background-image:radial-gradient(#c9c0b1 1px,#0000 1px);background-size:18px 18px}.app>header{background:var(--blue);border-bottom:5px solid var(--ink);padding-bottom:62px}.app>header:before{content:"";background:linear-gradient(120deg,transparent 63%,#ffd54f29 63%),radial-gradient(circle at 83% 26%,var(--coral) 0 64px,transparent 65px);position:absolute;inset:0}.app>header:after{content:"LONDON";color:#ffffff12;font:900 7rem/1 Arial,sans-serif;bottom:-25px;right:-34px;transform:rotate(-90deg)}.app header h1,.lock h1{text-transform:uppercase;letter-spacing:-.075em;font-family:Arial Black,Arial,sans-serif;line-height:.86;position:relative}.app header h1 em,.lock h1 em{text-transform:none;letter-spacing:-.04em;color:var(--gold);font-family:Georgia,serif}.topline,.hero-meta,.hero-actions,.app header>.kicker{z-index:2;position:relative}.brand{font-size:.9rem}.network{background:var(--ink);color:var(--mint);border-radius:99px;padding:6px 10px}.stamp{z-index:2;text-align:center;letter-spacing:.14em;width:86px;height:86px;box-shadow:inset 0 0 0 4px var(--blue);border:2px solid #fff;border-radius:50%;place-items:center;font-size:.58rem;font-weight:900;display:grid;position:absolute;top:88px;right:max(22px,50vw - 410px);transform:rotate(12deg)}.hero-actions button{border:2px solid var(--ink);background:var(--gold);color:var(--ink);box-shadow:3px 3px 0 var(--ink)}.days-nav{border:2px solid var(--ink);box-shadow:6px 7px 0 var(--ink);border-radius:10px}.days-nav .active{background:var(--coral)}.day-intro h2{text-transform:uppercase;font-family:Arial Black,Arial,sans-serif}.day-progress b{color:var(--blue);font-family:Arial Black,Arial,sans-serif}.know-where{background:var(--gold);border:2px solid var(--ink);box-shadow:5px 6px 0 var(--ink);margin:0 2px 27px;padding:17px;position:relative;transform:rotate(-.25deg)}.know-where:after{content:"YOU ARE HERE-ISH";background:var(--coral);color:#fff;letter-spacing:.1em;padding:4px 8px;font-size:.54rem;font-weight:900;position:absolute;top:-10px;right:12px;transform:rotate(2deg)}.route-label{letter-spacing:.16em;font-size:.58rem;font-weight:900}.know-where h3{margin:7px 0 11px;font-size:1rem;line-height:1.25}.know-where p{margin:7px 0;font-size:.79rem}.know-where>span{border-top:1px solid #17202d40;margin-top:10px;padding-top:9px;font-size:.67rem;font-weight:700;display:block}.event-card{border:2px solid var(--ink);border-radius:8px;box-shadow:3px 4px #17202d1f}.tick{border:2px solid var(--ink);border-radius:3px}.event.done .tick{background:var(--blue)}.pill{font-weight:900}.pill.fixed,.pill.priority{color:#831b43;background:#ffd4e1}.pill.optional,.pill.flex{color:#16593b;background:#c9f6df}.pill.backup{background:var(--gold);color:#5f4810}.event-links a{color:var(--blue);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.notes textarea,.more button{border:2px solid var(--ink);border-radius:7px}.more button:first-child{background:var(--mint)}.more button:last-child{background:#ffd4e1}.app>footer{background:var(--ink)}.overlay aside{border:3px solid var(--ink);border-bottom:0}.overlay h2{text-transform:uppercase;letter-spacing:-.05em;font-family:Arial Black,Arial,sans-serif}.overlay li a{color:var(--blue);margin-top:5px;font-weight:800;display:block}.sheet-intro{color:var(--muted);margin-top:-10px}.lock{background:var(--ink)}.lock-art{background:var(--blue);border-right:6px solid var(--ink);position:relative}.lock-art span{color:var(--gold)}.lock-art i{letter-spacing:-.06em;color:#fff;font-family:Arial Black,Arial,sans-serif;font-size:clamp(2rem,5vw,5rem);font-style:normal;line-height:.88}.lock-art b{letter-spacing:.14em;color:var(--mint);font-size:1rem}.lock form button{background:var(--coral);box-shadow:5px 5px 0 var(--gold);border:2px solid #fff}@media (width<=650px){.stamp{width:67px;height:67px;font-size:.47rem;top:82px;right:17px}.app header h1{font-size:3.25rem}.know-where{margin-left:0;margin-right:0}.lock-card h1{font-size:3.5rem}}
