
:root{--pine:#143f3a;--deep:#082f32;--red:#b7343e;--cream:#fff8e9;--gold:#e9bd66;--ink:#173e3b;--soft:#d9e9df;--shadow:0 16px 50px #102b2820;font-family:Trebuchet MS,Arial,sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:46px;border:1px solid #143f3a35;border-radius:14px;padding:11px 17px;background:#fffdf5;color:var(--pine);font-weight:700;transition:transform .16s,background .16s,box-shadow .16s}button:hover{background:#eaf0e6;transform:translateY(-2px)}button:active{transform:scale(.98)}button:disabled{cursor:default;opacity:.55;transform:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #c17613;outline-offset:4px}.primary{background:var(--red);color:white;border-color:var(--red);box-shadow:0 5px 0 #852331}.primary:hover{background:#962734}.secondary{background:var(--pine);color:var(--cream)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,serif;font-weight:500}h1{font-size:clamp(34px,5.2vw,65px);line-height:1.03;letter-spacing:-1.5px;margin-bottom:22px}h2{font-size:clamp(28px,3.4vw,43px);line-height:1.1}h3{font-size:24px}p{line-height:1.65}header{max-width:1420px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:21px 4%;gap:12px}#brand{display:flex;gap:11px;align-items:center;color:var(--pine);text-decoration:none;font-family:Georgia,serif;font-size:20px;font-weight:bold;letter-spacing:2px}#brand small{display:block;font:9px Trebuchet MS,sans-serif;letter-spacing:3px;margin-top:4px}.seal{border:1px solid var(--gold);border-radius:50%;font-size:32px;width:46px;height:46px;display:grid;place-items:center}nav{display:flex;gap:7px}nav button{background:transparent;border:0;font-size:18px;padding:8px 12px}nav span{font-size:12px;margin-left:4px}main{max-width:1360px;margin:auto;padding:12px 4% 40px;min-height:76vh}footer{padding:24px;text-align:center;font-size:12px;border-top:1px solid #143f3a20;letter-spacing:1px}footer span{display:block;margin-top:8px;font-size:11px;color:#526b61}.eyebrow{font-size:11px;font-weight:bold;letter-spacing:3px;text-transform:uppercase;display:block;margin-bottom:14px;color:#92601d}.hero{background:var(--pine);color:var(--cream);border-radius:28px;overflow:hidden;display:grid;grid-template-columns:43% 57%;min-height:510px;box-shadow:var(--shadow)}.hero-copy{padding:55px 0 48px 42px;z-index:1}.hero .eyebrow{color:var(--gold)}.hero p{color:#dce9dc;max-width:390px}.hero-art{min-height:440px;overflow:hidden;display:grid;place-items:center}.hero-art svg{width:125%;max-width:none}.hero .primary{padding:15px 25px}.badges{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px;font-size:11px;color:#d8e5d9}.intro-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0}.intro-strip>div{border-left:2px solid var(--gold);padding:6px 17px}.intro-strip b{display:block;margin-bottom:6px}.intro-strip p{font-size:13px;margin:0}.paper{background:white;border:1px solid #decfac;border-radius:25px;padding:clamp(22px,4vw,44px);box-shadow:var(--shadow)}.setup{max-width:840px;margin:15px auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}label{display:block;font-size:14px;font-weight:bold;line-height:1.5}input,textarea{display:block;width:100%;border:1px solid #a6b6a9;border-radius:10px;background:#fffcf4;padding:13px;margin-top:7px;color:var(--ink);font-size:16px}textarea{resize:vertical;min-height:85px}.full{grid-column:1/-1}.help{font-size:12px;font-weight:normal;color:#526b61;display:block;margin-top:7px}.modes{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mode{border:2px solid #d8daca;border-radius:17px;padding:16px;cursor:pointer}.mode:has(input:checked){border-color:var(--pine);background:#edf3e9}.mode input{display:inline;width:auto;margin-right:6px}.mode b{display:block;font-family:Georgia,serif;font-size:23px;margin:8px 0}.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:25px}.privacy{background:#eff3ec;border-radius:12px;padding:15px;font-size:12px;line-height:1.65;margin-top:20px}.danger{color:#992a30;border-color:#992a3060}.hub-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin:18px 0 25px}.hub-head h1{font-size:clamp(32px,4vw,50px);margin:0}.stars{color:#9a6414;letter-spacing:4px;font-size:26px;white-space:nowrap}.village{position:relative;background:#103c43;border-radius:26px;overflow:hidden;min-height:390px}.village>svg{display:block;width:100%;height:auto;min-height:320px}.village-label{position:absolute;top:20px;left:25px;color:#fff4d8;letter-spacing:3px;font-size:11px}.missions{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:-45px;padding:0 18px;position:relative}.mission{background:#fffdf3;border:1px solid #cfbd93;border-radius:17px;box-shadow:var(--shadow);padding:18px 10px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;min-height:174px}.mission svg{width:65px;height:65px}.mission strong{font:19px Georgia,serif}.mission small{font-size:11px;color:#5a695c}.mission.complete{border:2px solid #71987a}.ribbon{background:#d6e9d5;padding:4px 9px;border-radius:10px;font-size:10px;color:#204a31}.note{max-width:660px;margin:25px auto 0;text-align:center;font-size:14px}.game-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:10px 0 20px}.game-top h1{font-size:clamp(28px,4vw,44px);margin:0}.game-top .eyebrow{margin-bottom:7px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:20px;align-items:start}.stage{background:white;border:1px solid #d8d8bd;border-radius:25px;overflow:hidden;padding:26px;box-shadow:var(--shadow);min-width:0}.stage.night{background:#123b49;color:#fff3d7}.scene-banner{height:170px;overflow:hidden;position:relative;border-radius:16px;background:#e5eadb;margin-bottom:20px}.scene-banner svg{width:100%;height:100%;object-fit:cover}.side{background:#f0e9d7;border-radius:20px;padding:22px}.side p{font-size:14px}.side svg{max-height:110px;width:100%}.counter{font-size:12px;text-transform:uppercase;letter-spacing:2px;margin:12px 0 18px;color:#6c7360}.night .counter{color:#cad4c9}.instruction{font-size:19px;line-height:1.45;margin-bottom:18px}.speech{border:0;background:#e8ecdf;min-width:46px}.choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.choice{padding:14px;min-height:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:2px solid #d8dcc8}.choice svg{width:74px;height:74px}.choice.selected{border-color:#a46a1d;background:#fff0bc}.choice.correct{border-color:#3a7b4d;background:#e1f1dc}.feedback{min-height:46px;margin:18px 0 0;font-size:16px;font-weight:bold;line-height:1.5}.feedback.good{color:#236a3a}.night .feedback.good{color:#bbf0bf}.gift-display{display:flex;justify-content:center;align-items:center;gap:25px;padding:20px;background:#f6f0df;border-radius:16px;margin-bottom:18px}.gift-display svg{width:125px;height:125px;filter:drop-shadow(0 8px 5px #0002)}.rule{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:18px}.rule svg{width:45px;height:45px}.chip{border:1px solid #c7c4a2;border-radius:12px;padding:9px 12px;background:#fff9e6;display:inline-flex;align-items:center;gap:8px;color:var(--pine)}.chip svg{width:35px;height:35px}.route{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;background:#082b3c;border-radius:18px;padding:14px}.route button{aspect-ratio:1;min-width:0;padding:0;border:1px solid #54747c;background:#194552;color:#fff0b9;font-size:25px;min-height:44px}.route button.path{background:#b3893d;color:#fff;box-shadow:0 0 15px #ffdd7150}.route button.storm{background:#284955;color:#c2d7da}.route button.goal{border:2px solid #ffcd6b}.route button.guide{border:2px dashed #ffeea1}.sequence{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;padding:18px;background:#f4eedb;border-radius:15px;margin:18px 0}.sequence svg{width:44px;height:44px}.mail-room{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;background:#ead6b4;padding:20px;border-radius:17px;border:6px solid #96734e;margin-bottom:18px}.mail-room button{min-height:100px;background:#fff0ce}.mail-room svg{width:65px;height:65px}.mail-room .found{background:#cfe4cf}.success{text-align:center;padding:32px 15px}.success .big-star{font-size:80px;color:#b57919;animation:pop .6s}.success h2{margin:12px 0}.success svg{height:130px;max-width:100%}.checklist{display:grid;gap:12px}.checklist button{text-align:left;font-size:17px;display:flex;gap:15px;align-items:center}.checklist button.checked{background:#d8e9d6}.launch-view{background:#0b2a3b;overflow:hidden;border-radius:25px;position:relative;min-height:420px;display:grid;place-items:center}.launch-view>svg{width:100%;min-height:420px}.launch-caption{position:absolute;bottom:25px;left:15px;right:15px;text-align:center;color:#fff0c8;text-shadow:0 2px 10px #000;font:clamp(22px,4vw,40px) Georgia,serif}.flying{animation:takeoff 13s ease-in-out forwards;transform-origin:50% 50%}.snowflake{animation:snow 11s linear infinite}.twinkle{animation:twinkle 3s ease-in-out infinite}.gear{animation:spin 12s linear infinite;transform-box:fill-box;transform-origin:center}.bob{animation:bob 3s ease-in-out infinite}.certificate{max-width:850px;margin:20px auto;background:#fff9e8;border:3px double #af843b;outline:10px solid #f1e6cb;padding:38px;text-align:center;position:relative}.certificate:before{content:'✦  ✧  ✦';color:#b08b4c;letter-spacing:18px;font-size:27px}.certificate h1{font-size:40px;letter-spacing:0;margin:20px 0}.certificate .child{font:clamp(30px,5vw,55px) Georgia,serif;color:#a33338;border-bottom:1px solid #ccb580;padding:15px;overflow-wrap:anywhere}.certificate svg{height:95px;width:160px}.signature{font:italic 27px Georgia,serif;color:#a13239;margin-top:20px}.certificate p{max-width:550px;margin:15px auto}.hidden{display:none!important}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip{position:absolute;top:-100px;left:10px;z-index:100;background:white;padding:15px}.skip:focus{top:10px}dialog{border:1px solid #bca777;border-radius:20px;max-width:440px;width:calc(100% - 30px);padding:30px;color:var(--pine)}dialog::backdrop{background:#06272ac0}.saved{color:#60755f;font-size:12px}.storage-warning{background:#fff0c6;padding:12px;border-radius:10px;font-size:13px}.confetti{font-size:24px;letter-spacing:10px;color:#ac6d1c}.parent-note{font-size:12px;padding:15px;border:1px solid #d4c59e;border-radius:12px;margin-top:20px}.clue{background:#ffefbd;border-left:4px solid #b78b3b;border-radius:8px;padding:14px;color:#473a20;line-height:1.5}.tally{display:flex;gap:6px;justify-content:center;margin:14px}.tally span{width:13px;height:13px;border-radius:50%;background:#d4dbcd}.tally span.done{background:#3f8051}.night .tally span.done{background:#e9bd66}.text-wrap{overflow-wrap:anywhere}.launch-controls{display:flex;justify-content:center;gap:12px;margin:20px 0}.wish-card{background:#f2e9d0;padding:18px;border-radius:15px;max-width:640px;margin:20px auto;text-align:center}.wish-card p{margin:0}.door-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.door-grid button{font-size:25px;min-height:70px}.capsule{display:inline-block;font-size:12px;padding:6px 12px;background:#e5eddf;border-radius:99px;margin-bottom:15px}.night .capsule{color:#143f3a}.progress-caption{font-size:12px;color:#526b61}.ornament{color:#a33338}.tip{font-size:13px;color:#526b61}.confirm-box{border:1px solid #b7343e;padding:20px;border-radius:14px;background:#fff0ed;margin-top:20px}fieldset{border:0;margin:0;padding:0}legend{font-weight:bold;margin-bottom:10px}.no-margin{margin:0}.finale-link{text-align:center;margin:22px}.model-demo{display:flex;gap:12px;justify-content:center;align-items:center}.model-demo svg{height:65px;width:65px}.mail-clue{padding:14px;background:#fff3cf;border-radius:10px;margin-top:10px}.wide{width:100%}
main:focus{outline:none}.hub-head h1{overflow-wrap:anywhere}.door-grid svg{width:55px;height:55px}.stage .scene-banner .gear{animation-play-state:paused}.stage .scene-banner .twinkle{animation:none}.correct{outline:3px solid #4f865c;outline-offset:1px}
@keyframes snow{from{transform:translateY(-90px)}to{transform:translateY(600px)}}@keyframes twinkle{50%{opacity:.3}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bob{50%{transform:translateY(-6px)}}@keyframes pop{from{transform:scale(.2)}to{transform:scale(1)}}@keyframes takeoff{0%{transform:translate(-40px,125px) scale(.9)}35%{transform:translate(130px,35px) scale(.85)}75%{transform:translate(430px,-95px) scale(.55)}100%{transform:translate(820px,-180px) scale(.25)}}
@media(max-width:950px){.hero{grid-template-columns:1fr 1fr}.hero-copy{padding:35px 0 30px 28px}.missions{grid-template-columns:repeat(3,1fr);margin-top:-30px}.game-layout{grid-template-columns:1fr}.side{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.side svg{max-width:90px}.side p{flex:1;margin:0;min-width:170px}.side h3{margin:0}.village{min-height:270px}.village>svg{min-height:270px}}
@media(max-width:600px){header{padding:14px 4%;align-items:center}#brand{font-size:14px;letter-spacing:1px}#brand small{font-size:7px;letter-spacing:2px}.seal{width:32px;height:32px;font-size:24px}nav{gap:0}nav button{padding:8px;min-width:44px}nav span{display:none}main{padding:8px 4% 25px}.hero{display:flex;flex-direction:column;min-height:0}.hero-copy{padding:30px 25px 0}.hero h1{font-size:43px;max-width:330px}.hero-art{min-height:0;height:285px}.hero-art svg{width:100%}.hero p{font-size:14px}.badges{gap:10px;margin-top:20px}.intro-strip{grid-template-columns:1fr;gap:14px}.intro-strip>div{padding:4px 15px}.form-grid{grid-template-columns:1fr}.modes{grid-template-columns:1fr}.hub-head{display:block}.stars{margin-top:15px;font-size:21px}.missions{grid-template-columns:1fr 1fr;padding:0 8px;gap:10px;margin-top:-25px}.mission{min-height:155px}.mission:last-child{grid-column:1/-1;flex-direction:row;justify-content:center;min-height:90px}.mission strong{font-size:18px}.village>svg{width:155%;margin-left:-27%;min-height:240px}.village{min-height:240px}.game-top{align-items:start}.game-top>button{padding:10px;font-size:12px;white-space:nowrap}.stage{padding:17px}.choices{gap:7px}.choice{padding:9px 4px;font-size:12px;min-height:88px}.choice svg{width:54px;height:54px}.gift-display{padding:12px;gap:12px}.gift-display svg{width:90px;height:90px}.instruction{font-size:17px}.scene-banner{height:125px}.route{gap:5px;padding:8px}.route button{font-size:22px;min-height:44px}.mail-room{padding:10px;gap:8px}.mail-room button{padding:8px;min-height:75px}.mail-room svg{width:45px;height:45px}.certificate{padding:23px 15px;outline-width:5px}.certificate h1{font-size:30px}.certificate .child{font-size:34px}.launch-view,.launch-view>svg{min-height:330px}.side{padding:16px}.actions button{flex-grow:1}.launch-caption{font-size:25px}.eyebrow{letter-spacing:2px}.paper{border-radius:18px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.flying{transform:translate(270px,-30px) scale(.7)}}
@media print{html,body{background:white;margin:0;padding:0}header,footer,.launch-controls,.no-print,.skip{display:none!important}main{padding:0;max-width:none;min-height:0}.certificate{box-sizing:border-box;box-shadow:none;break-inside:avoid;max-width:none;width:260mm;height:172mm;margin:5mm auto;padding:7mm 12mm;outline:2px solid #b58c44;print-color-adjust:exact;-webkit-print-color-adjust:exact}.certificate:before{font-size:15pt}.certificate .eyebrow{font-size:8pt}.certificate h1{font-size:25pt;line-height:1.1;margin:9px 0}.certificate .child{font-size:28pt;line-height:1.1;padding:7px;overflow-wrap:anywhere}.certificate p{font-size:10pt;line-height:1.3;margin:8px auto;max-width:650px}.certificate .confetti{font-size:15pt;margin:8px 0}.certificate svg{height:55px;width:95px}.certificate .signature{font-size:19pt;margin-top:4px}.certificate .tip{font-size:8pt;margin:5px auto}@page{size:A4 landscape;margin:10mm}}
