/* The four chapters share a town, with distinct light and seasonal progress. */
body[data-season=ramadan]{background:#101f36}body[data-season=ramadan] header,body[data-season=ramadan] footer{background:#101f36}body[data-season=ramadan] #world:not(.room){background-image:url('assets/ramadan-world.png')}body[data-season=ramadan] .objective{background:#172b49ef}body[data-season=ramadan] .marker{background:#172d49ef}body[data-season=ramadan] .marker.active{background:#fff0bf;color:#27374f}body[data-season=hajj] header{background:#293a31}body[data-season=newyear] header{background:#253f47}#events{color:#f1cf8b;border:1px solid #d8bc6e40}#events span{background:#e9c98524}
.year-intro{padding:5px 0 18px;background:radial-gradient(ellipse at top right,#e4d3a060,transparent 60%)}.year-intro h2{font-size:40px;line-height:1.15;margin-bottom:12px}.year-intro>p{max-width:510px}.passport-summary{display:flex;gap:20px;flex-wrap:wrap;font-size:11px;color:#577063;margin-top:20px}.passport-summary b{font-size:16px;color:#224e49;margin-right:4px}.passport-summary>span:last-child{color:#927039}.season-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:15px}.season-card{border:1px solid #d1d9c6;border-radius:16px;overflow:hidden;background:#fffaf0;color:#214b45;padding:0;text-align:left;transition:transform .18s,box-shadow .18s}.season-card:hover{transform:translateY(-3px);box-shadow:0 9px 24px #26483e18}.season-card.current{border:2px solid #bf9d55}.season-art{height:157px;position:relative;background:#1d4143;overflow:hidden}.season-art:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,#082827c9)}.season-art img{width:100%;height:100%;object-fit:cover}.season-card[data-season=ramadan] .season-art img{object-position:center 55%}.season-art>span{position:absolute;left:17px;top:15px;z-index:1;font-size:25px;color:#fff2c6;background:#123434ae;border:1px solid #e7cf8c60;width:42px;height:42px;border-radius:50%;display:grid;place-items:center}.season-art>small{position:absolute;bottom:13px;left:17px;font-size:8px;letter-spacing:1.5px;color:#fff0cc;z-index:1}.season-copy{padding:19px}.season-copy>small{font-size:8px;letter-spacing:1.1px;color:#9a7437}.season-copy h3{font:800 20px/1.3 Manrope,sans-serif;margin:9px 0}.season-copy p{font-size:12px;line-height:1.6;margin:0 0 17px;min-height:58px;color:#5c7469}.season-progress{height:4px;background:#e6e7d9;border-radius:5px;overflow:hidden}.season-progress i{display:block;height:100%;background:#548477}.season-bottom{display:flex;justify-content:space-between;gap:8px;font-size:10px;margin-top:10px}.season-bottom>span{color:#708274}.season-bottom strong{color:#35695c}.passport-stamps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:25px 0 15px}.stamp{border:1px dashed #bdc6b3;border-radius:12px;padding:14px 8px;text-align:center;color:#8c998b}.stamp.earned{border:1px solid #bda469;background:#f0e6ca;color:#5a6c44}.stamp>span{font-size:27px;display:block;margin-bottom:8px}.stamp strong{display:block;font-size:10px;line-height:1.5}.stamp small{display:block;font-size:8px;margin-top:5px}.earned-badge{display:flex;align-items:center;gap:20px;border:1px solid #c9b17a;border-radius:14px;padding:24px;background:linear-gradient(120deg,#f0e5c7,#e5ecda);margin:22px 0}.earned-badge>span{font-size:40px;color:#9c7432}.earned-badge small{font-size:8px;letter-spacing:1px;color:#91733d;display:block}.earned-badge strong{font:800 20px Manrope,sans-serif;display:block;margin-top:6px}.world-lantern{position:absolute;color:#ffdb83;font-size:37px;line-height:40px;text-shadow:0 0 12px #ffbb50,0 0 35px #ffc658;pointer-events:none;animation:lantern-glow 2s ease-in-out infinite alternate}.world-crate{position:absolute;width:38px;height:34px;background:linear-gradient(135deg,#e0bb75,#ab773f);border:3px solid #765b39;border-radius:5px;color:#fff1c6;text-align:center;font-size:22px;box-shadow:3px 5px 8px #0003;pointer-events:none}.world-notice{position:absolute;width:72px;padding:8px;background:#f7eccc;border:5px solid #96734b;color:#3b6351;text-align:center;font-size:25px;box-shadow:2px 5px 9px #0003;pointer-events:none}.world-notice small{display:block;font-size:7px;letter-spacing:1px}.world-chapter-badge{position:absolute;background:#113e3de8;border:1px solid #dfc37c;border-radius:12px;color:#f8df9e;text-align:center;padding:13px;width:150px;font-size:25px;pointer-events:none}.world-chapter-badge small{font-size:9px;display:block;margin-top:5px}@keyframes lantern-glow{to{opacity:.7;text-shadow:0 0 6px #ffbb50,0 0 20px #ffc658}}
.lantern-puzzle{display:flex;align-items:center;gap:30px;margin:24px 0}.lantern-puzzle>div:last-child{flex:1}.light-grid{display:grid;grid-template-columns:repeat(3,78px);gap:9px;background:#192e42;padding:16px;border-radius:16px;box-shadow:inset 0 0 30px #0003;flex-shrink:0}.light{width:78px;height:85px;border:1px solid #496073;background:#243c51;border-radius:10px;color:#8399ab;transition:.2s}.light span{font-size:36px;display:block;line-height:45px}.light small{font-size:8px;letter-spacing:1px}.light.lit{background:#8e6a34;color:#ffdf8b;border-color:#e0b65f;box-shadow:0 0 15px #e8b35642}.light.lit span{text-shadow:0 0 10px #ffe899}.learning-note{background:#e6ecdf;padding:14px 16px;border-radius:10px}.schedule-board{margin:24px 0}.time-ruler{display:flex;justify-content:space-between;margin:0 0 14px;font-size:10px;color:#657a6d;border-bottom:1px solid #cdd6c4;padding-bottom:8px}.schedule-row{display:grid;grid-template-columns:1.1fr 100px;gap:10px;align-items:center;margin-bottom:18px}.schedule-row label b{display:block;font-size:13px}.schedule-row label small{display:block;font-size:10px;color:#788673;margin-top:3px}.time-track{grid-column:1/-1;height:23px;background:repeating-linear-gradient(90deg,#e7eadf 0 calc(11.111% - 1px),#cbd6c4 calc(11.111% - 1px) 11.111%);position:relative;border-radius:5px;overflow:hidden}.time-track i{position:absolute;height:100%;background:#648d7a;color:#fff8dd;font-size:10px;line-height:23px;text-align:center;font-style:normal;border-radius:5px;min-width:20px}.clue-collection{display:grid;gap:10px;margin:20px 0}.clue-slip{padding:16px 18px;background:#ebeadd;border:1px dashed #bcc7b0;border-radius:10px}.clue-slip.found{background:#e9eddd;border-style:solid;border-color:#b5c6a7}.clue-slip small{font-size:8px;letter-spacing:1px;color:#84907d}.clue-slip.found small{color:#567250}.clue-slip strong{display:block;font-size:14px;margin-top:7px}.clue-slip p{font-size:12px;margin:8px 0;line-height:1.65}.clue-slip button{padding:8px 10px;font-size:10px}.welcome-options{border:1px solid #cbd5c0;border-radius:12px;padding:15px 18px;margin:22px 0}.welcome-options legend{font-size:13px;font-weight:700;padding:0 6px}.welcome-options label{display:flex;align-items:flex-start;gap:9px;font-size:13px;line-height:1.6;margin:9px 0;cursor:pointer}.welcome-options input{accent-color:#386f59;flex-shrink:0;margin-top:5px}.packing-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.pack-card{display:flex;gap:10px;align-items:center;border:1px solid #d2d9c4;border-radius:10px;padding:16px;background:#fffaf0;cursor:pointer}.pack-card.packed{background:#e2ebd8;border-color:#88a37b}.pack-card input{accent-color:#386f59;width:17px;height:17px;flex-shrink:0}.pack-card strong{font-size:13px;display:block}.pack-card small{font-size:10px;display:block;color:#6f806c;margin-top:5px}.sharing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.sharing-grid .item{background:#fffaf0}.share-bar{height:6px;background:#dce3d0;margin:10px 0 0;border-radius:6px;overflow:hidden}.share-bar i{display:block;height:100%;background:#659071}.sharing-grid .source{margin:8px 0;font-size:10px}.month-ribbon{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:22px 0}.month-ribbon>div{border:1px solid #cbd7c1;border-radius:9px;padding:12px 8px;background:#eaf0e0;text-align:center}.month-ribbon span{font-size:10px;color:#96814c;display:block}.month-ribbon strong{display:block;font-size:11px;margin:5px 0}.month-ribbon small{font-size:9px;color:#6f8469}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}.answer-grid label{font-size:12px;line-height:1.5}.answer-grid label:last-child{grid-column:1/-1}.answer-grid input,.capsule-lock input{display:block;width:100%;border:1px solid #b5c8ae;border-radius:8px;padding:12px;background:#fffdf4;color:#214c43;font:inherit;margin-top:8px}.answer-grid select{margin-top:8px}.rota{width:100%;border-collapse:separate;border-spacing:6px;margin:22px 0;table-layout:fixed}.rota th{font-size:11px;padding:8px 0;text-align:left;width:20%}.rota th:first-child{width:16%}.rota td{width:28%}.rota select{font-size:11px;padding:9px 5px}.fixed-slot{display:block;border:1px solid #c8d3b9;background:#dde7cf;padding:11px 5px;border-radius:8px;font-size:11px;text-align:center}.capsule-lock{display:flex;align-items:center;justify-content:center;gap:24px;margin:25px 0;background:linear-gradient(135deg,#d4bc82,#a37f45);padding:25px;border:5px solid #7e6744;border-radius:18px;box-shadow:inset 0 0 30px #58472c25}.capsule-lock>span{font-size:65px;color:#fff1c4}.capsule-lock label{font-size:12px;color:#493d28;max-width:180px}.capsule-lock input{font:700 30px Manrope,sans-serif;letter-spacing:12px;text-align:center;background:#fcf6de;color:#344e40}
@media(max-width:1100px){.chapter{display:none}header{gap:15px}}@media(max-width:600px){.year-intro h2{font-size:31px}.passport-summary{gap:12px}.passport-summary>span:last-child{display:none}.season-cards{grid-template-columns:1fr}.season-art{height:155px}.season-copy p{min-height:0}.passport-stamps{grid-template-columns:1fr 1fr;gap:9px}.lantern-puzzle{flex-direction:column;gap:8px;align-items:stretch}.light-grid{align-self:center;grid-template-columns:repeat(3,72px);padding:12px}.light{width:72px;height:76px}.lantern-puzzle .stat{display:none}.lantern-puzzle h3{margin-top:12px}.sharing-grid{grid-template-columns:1fr}.sharing-grid>div{display:grid;grid-template-columns:1fr 1fr;align-items:center;column-gap:15px}.sharing-grid .item{grid-row:1/3}.share-bar{height:12px}.packing-grid{gap:7px}.pack-card{padding:12px 9px;gap:7px}.pack-card strong{font-size:11px}.pack-card small{font-size:9px}.month-ribbon{grid-template-columns:repeat(3,1fr);gap:6px}.month-ribbon>div{padding:9px 5px}.month-ribbon strong{font-size:10px}.answer-grid{gap:10px}.answer-grid label{font-size:11px}.rota{border-spacing:3px}.rota select,.fixed-slot{font-size:9px;padding:9px 2px}.rota th{font-size:9px}.capsule-lock{padding:18px;gap:15px}.capsule-lock>span{font-size:42px}.capsule-lock input{font-size:25px;letter-spacing:9px}.earned-badge{gap:12px;padding:18px}.earned-badge strong{font-size:17px}header{gap:6px}.brand b{font-size:15px}.brand small{font-size:5px}nav button{font-size:9px;padding:9px 6px}#events{border:none}nav{gap:0}}
@media(prefers-reduced-motion:reduce){.world-lantern,.season-card{animation:none;transition:none}}
.stepper .count-input{width:48px;min-width:0;text-align:center;border:1px solid #c7d5bd;background:#fffdf5;border-radius:6px;padding:6px 1px;color:#244f43;font-size:14px}.stepper:has(.count-input){gap:8px}.count-input::-webkit-inner-spin-button{appearance:none}
