*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#fff8e9;color:#243b38;font-family:ui-rounded,'Trebuchet MS',sans-serif}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}a{color:inherit}.wrap{max-width:1120px;margin:auto;padding:0 24px}header{padding:12px 0;border-bottom:1px solid #dedaca}.brand{margin:0;font-family:inherit;line-height:1.3;font-weight:900;letter-spacing:.05em;font-size:15px;display:flex;align-items:center;gap:10px}.star{color:#ee714b;font-size:26px}.top{display:flex;justify-content:space-between;align-items:center;gap:16px}.header-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.stamp{font-size:11px;font-weight:bold;text-align:right}p{line-height:1.55}.day-nav{position:sticky;top:0;z-index:5;background:#fff8e9f5;border-top:1px solid #dedaca;border-bottom:1px solid #dedaca;backdrop-filter:blur(10px)}.nav-inner{display:flex;gap:10px;padding-top:14px;padding-bottom:14px}.day-nav a{flex:1;text-align:center;text-decoration:none;padding:12px 8px;border-radius:30px;border:1px solid #cdcdbd;font-weight:bold}.day-nav a:hover,.day-nav a:focus{background:#243b38;color:white}.day{padding:50px 0 10px}.day-title{display:flex;align-items:center;gap:18px;margin-bottom:26px}.number{background:#d7e6c6;border-radius:50%;width:60px;height:60px;display:grid;place-items:center;font-size:25px;font-weight:bold;flex-shrink:0}.day:nth-of-type(2) .number{background:#f7bd9c}.day:nth-of-type(3) .number{background:#d8d0ef}h2{font-family:Georgia,serif;font-size:38px;font-weight:500;letter-spacing:-1px;margin:0 0 5px}.day-title p{margin:0;color:#64726a}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:white;border:1px solid #e4dfd1;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 5px 0 #e6e0ce66}.pic{position:relative;height:210px;background:#e4e9db}.pic img{width:100%;height:100%;object-fit:cover}.time{position:absolute;bottom:12px;left:12px;background:#fff8e9;padding:7px 12px;border-radius:20px;font-size:14px;font-weight:bold}.body{padding:22px;flex:1;display:flex;flex-direction:column}h3{font-size:26px;line-height:1.1;margin:0 0 12px;letter-spacing:-.5px}.body p{font-size:18px;margin:0 0 18px}.venue{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:#69776d;margin-bottom:10px}.mission{padding:12px;background:#f3f4e9;border-radius:10px;font-size:15px;line-height:1.5;margin-top:auto}.controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.listen{background:transparent;border:1px solid #d6dbcd;border-radius:25px;min-height:44px;padding:8px 12px;font-size:14px}.done{font-size:14px;display:flex;gap:6px;align-items:center;cursor:pointer}.done input{accent-color:#2b6250;width:19px;height:19px}.completed .pic{opacity:.75}.completed h3:after{content:' ✓';color:#407b56}.bridge{padding:22px 4px;font-size:17px;color:#596b60;line-height:1.5}.banner{background:#e6edda;padding:32px;border-radius:22px;margin:38px 0;display:flex;gap:22px;align-items:center}.banner span{font-size:44px}.banner h3{margin-bottom:8px}.banner p{margin:0;font-size:18px}.adult{border-top:1px solid #dedaca;padding:30px 0}.adult summary{font-weight:bold;cursor:pointer;padding:12px 0}.adult p,.adult li{font-size:15px;line-height:1.65}.adult a{text-underline-offset:3px}.status{background:#f3e7bb;padding:14px 18px;border-radius:12px}footer{padding:20px 0 40px;font-size:13px;color:#66756b}.progress{font-size:12px;color:#61756d}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #d25739;outline-offset:4px}.dice-art{width:100%;height:100%}.two{grid-template-columns:repeat(2,1fr)}.two .pic{height:290px}@media(max-width:760px){.wrap{padding:0 18px}.cards,.two{grid-template-columns:1fr}.pic,.two .pic{height:250px}.day{padding-top:32px}h2{font-size:31px}.nav-inner{gap:6px}.day-nav a{font-size:14px;padding:12px 4px}.banner{padding:24px}.body p{font-size:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.day-nav,.listen,.controls{display:none}.cards{grid-template-columns:repeat(2,1fr)}.card{break-inside:avoid}}
@media(min-width:761px){.cards.four{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.brand{font-size:13px}.star{font-size:20px}.top{gap:12px}.day-nav a{font-size:12px}.nav-inner{gap:4px}}
[hidden]{display:none!important}
.load-error{padding:32px 0;color:#a33d28}
