:root{
  --cream:#f7efe1;--cream2:#fbf5eb;--paper:#fff9ef;--forest:#294737;--forest-deep:#1e3529;
  --red:#a94f48;--red-deep:#8f403b;--gold:#c69a53;--gold-light:#e7ca8f;--ink:#342b24;--muted:#74695e;
  --line:rgba(67,48,33,.14);--gold-line:rgba(198,154,83,.30);--green-soft:#edf2ec;--red-soft:#f7e7e3;
  --shadow:0 22px 58px rgba(73,54,34,.12);--shadow-soft:0 12px 30px rgba(73,54,34,.09);
  --radius:30px;--small-radius:20px;--page:1240px;
}
*{box-sizing:border-box}html{background:var(--cream);scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--ink);background:
radial-gradient(circle at 50% -10%,rgba(255,255,255,.96),transparent 42rem),linear-gradient(180deg,#fbf8f1 0%,var(--cream) 54%,#f3e8d7 100%);font-family:Inter,Avenir Next,system-ui,-apple-system,"Segoe UI",sans-serif}
button,input,textarea,select{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}a{color:inherit}.screen[hidden],[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.page-width{width:min(var(--page),calc(100% - 40px));margin-inline:auto}.screen{min-height:calc(100vh - 110px);position:relative;z-index:1}.ambient{position:fixed;border-radius:50%;filter:blur(70px);opacity:.17;pointer-events:none;z-index:0}.ambient-one{width:34vw;height:34vw;left:-12vw;top:18vh;background:#f0c988}.ambient-two{width:28vw;height:28vw;right:-10vw;top:55vh;background:#b5cbb9}
.eyebrow{margin:0 0 11px;color:var(--forest);font-size:12px;font-weight:900;letter-spacing:.21em;text-transform:uppercase}.screen-lead{margin:16px auto 0;max-width:710px;color:var(--muted);font:20px/1.5 Georgia,serif}.left-lead{margin-left:0}.micro-note{margin:16px 0 0;color:#8a7b6e;font-size:13px}.gold-star{color:var(--gold)}
.button{appearance:none;border:1px solid transparent;border-radius:999px;min-height:50px;padding:0 22px;display:inline-flex;align-items:center;justify-content:center;font-weight:900;color:var(--forest);background:var(--paper);transition:transform .17s ease,background .17s ease,box-shadow .17s ease,border-color .17s ease}.button:hover:not(:disabled){transform:translateY(-1px)}.button:focus-visible,.text-button:focus-visible,.grown-up-button:focus-visible,.location-card:focus-visible,.answer-card:focus-visible,.findseek-item:focus-visible{outline:3px solid rgba(198,154,83,.55);outline-offset:3px}.button.primary{background:var(--forest);color:#fff;box-shadow:0 11px 24px rgba(41,71,55,.17)}.button.primary:hover:not(:disabled){background:#345844}.button.secondary{background:#fffaf1;border-color:var(--gold-line)}.button.ghost{background:transparent;border-color:var(--line)}.button.large{min-height:58px;padding-inline:30px;font-size:16px}.button:disabled{opacity:.42;cursor:not-allowed}.text-button{border:0;background:transparent;padding:7px 5px;color:var(--forest);font-weight:850;text-decoration:underline;text-decoration-color:rgba(41,71,55,.28);text-underline-offset:4px}.center-text-button{display:block;margin:20px auto 0}.stack-actions{display:flex;flex-direction:column;align-items:center;gap:9px;margin-top:26px}
/* Access */
.access-screen{display:grid;align-items:center;padding:36px 0 46px}.access-layout{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:46px}.access-art{min-height:600px;display:grid;place-items:center;position:relative}.access-art::before{content:"";position:absolute;width:min(480px,92%);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(231,202,143,.42),rgba(247,239,225,.08) 58%,transparent 72%)}.access-art img{width:min(390px,80%);position:relative;z-index:2;filter:drop-shadow(0 18px 18px rgba(50,38,24,.14))}.spark{position:absolute;color:var(--gold);font-size:30px;z-index:3;animation:softPulse 2.4s ease-in-out infinite}.spark-1{left:17%;top:26%}.spark-2{right:17%;bottom:28%;animation-delay:.8s}.access-copy h1{margin:0;color:var(--forest-deep);font:700 clamp(54px,6.4vw,88px)/.89 Georgia,serif;letter-spacing:-.055em}.hero-lead{max-width:680px;margin:22px 0 0;color:var(--muted);font:21px/1.48 Georgia,serif}.access-card{margin-top:30px;border:1px solid var(--line);background:rgba(255,249,239,.93);border-radius:28px;padding:24px;box-shadow:var(--shadow-soft)}.card-kicker{margin:0;color:var(--forest);font-weight:900}.card-support{margin:6px 0 0;color:var(--muted);font-size:14px}.access-row{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:17px}.access-row input,.text-field{width:100%;min-height:54px;border:1px solid rgba(90,70,48,.18);border-radius:18px;background:#fffdfa;color:var(--ink);padding:0 17px;outline:0;box-shadow:inset 0 0 0 4px rgba(231,202,143,.18)}.access-row input:focus,.text-field:focus{border-color:rgba(198,154,83,.7);box-shadow:0 0 0 4px rgba(198,154,83,.13)}.access-row input{text-transform:uppercase;font-weight:800;letter-spacing:.06em}.form-message{min-height:20px;margin:9px 2px 0;color:var(--red-deep);font-size:12px}.form-message.success{color:var(--forest)}
/* Common centered */
.centered-screen{display:grid;place-items:center;padding:45px 20px}.narrow-panel{width:min(820px,100%);text-align:center}.narrow-panel h1,.setup-content h1,.kid-intro-copy h1,.map-copy h1,.answer-head h1,.find-card h1,.found-card h1,.bonus-card h1,.finale-card h1,.findseek-head h1{margin:0;color:var(--forest-deep);font:700 clamp(42px,5.5vw,68px)/.98 Georgia,serif;letter-spacing:-.045em}.resume-map-mini{margin:26px auto 0;width:min(650px,100%);aspect-ratio:16/9;border-radius:24px;overflow:hidden;border:6px solid rgba(255,249,239,.85);box-shadow:var(--shadow-soft);position:relative}.resume-map-mini>img:first-child{width:100%;height:100%;object-fit:cover}.resume-map-mini>img:last-child{position:absolute;width:9%;left:9%;top:39%;filter:drop-shadow(0 5px 5px rgba(0,0,0,.18))}
/* Setup */
.setup-screen{padding:22px 0 52px}.setup-logo{text-align:center;margin-bottom:18px}.setup-logo img,.mini-brand img{width:118px;opacity:.84}.setup-intro-panel{padding-top:8px}.setup-hero-art{width:min(620px,90vw);aspect-ratio:16/8;margin:0 auto 22px;position:relative;border-radius:26px;overflow:hidden;border:6px solid rgba(255,249,239,.9);box-shadow:var(--shadow-soft)}.setup-hero-art .mini-map{width:100%;height:100%;object-fit:cover}.setup-hero-art .mini-santa{position:absolute;height:52%;left:6%;bottom:-3%;filter:drop-shadow(0 9px 7px rgba(0,0,0,.18))}.feature-pills{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:24px}.feature-pills span{padding:9px 13px;border:1px solid var(--gold-line);border-radius:999px;background:rgba(255,249,239,.72);font-size:12px;font-weight:800;color:var(--forest)}.setup-top{display:flex;align-items:center;justify-content:space-between;padding:3px 0 17px;border-bottom:1px solid rgba(218,198,167,.45)}.mini-brand{text-decoration:none}.setup-step{padding:8px 11px;border-radius:999px;background:#f0e1c3;color:var(--forest);font-size:10px;font-weight:900;letter-spacing:.13em}.setup-content{padding-top:36px}.medium-content{max-width:880px}.setup-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.setup-heading-row h1,.setup-content>h1{font-size:clamp(44px,5vw,64px)}.setup-heading-row p:not(.eyebrow){margin:8px 0 0;color:var(--muted)}.count-pill{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 17px;border-radius:999px;background:#efe2c5;color:var(--forest);font-size:13px;font-weight:900;white-space:nowrap}.preset-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:26px 0 24px}.preset-card{min-height:84px;border:1px solid var(--line);border-radius:20px;background:rgba(255,249,239,.76);color:var(--forest);padding:12px;transition:.18s ease}.preset-card:hover{transform:translateY(-1px);border-color:var(--gold)}.preset-card strong{display:block;font:700 21px Georgia,serif}.preset-card span{display:block;margin-top:4px;color:var(--muted);font-size:11px}.preset-card.is-active{background:#f0e1bd;border-color:#d7b369;box-shadow:0 7px 18px rgba(103,79,43,.08)}.location-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.location-card{position:relative;min-height:188px;border:1px solid var(--line);border-radius:22px;background:rgba(255,249,239,.86);padding:12px 12px 14px;color:var(--forest);transition:.17s ease;text-align:center}.location-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.location-card.is-selected{background:var(--green-soft);border-color:rgba(41,71,55,.43);box-shadow:inset 0 0 0 2px rgba(41,71,55,.06)}.location-card img{height:125px;width:100%;object-fit:contain;margin:auto}.location-card strong{display:block;margin-top:7px;font-size:13px;line-height:1.2}.location-check{position:absolute;right:10px;top:10px;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--forest);color:white;font-size:14px;font-weight:900;transform:scale(.75);opacity:0;transition:.16s ease}.location-card.is-selected .location-check{opacity:1;transform:scale(1)}.location-info{position:absolute;left:9px;top:9px;width:25px;height:25px;border-radius:50%;border:1px solid var(--gold-line);background:#fffaf1;color:var(--gold);font-weight:900;display:grid;place-items:center;font-size:12px}.setup-note{margin-top:18px;border-radius:18px;background:rgba(240,225,195,.48);padding:13px 16px;color:#725f4e;font-size:12px;line-height:1.45}.setup-action-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:26px}.mobile-setup-bar{display:none}.segmented{display:grid;grid-template-columns:1fr 1fr;margin-top:25px;padding:5px;background:#eee1ca;border-radius:999px}.segment{border:0;background:transparent;color:var(--forest);min-height:48px;border-radius:999px;font-weight:900}.segment.is-active{background:#fffaf1;box-shadow:0 4px 13px rgba(65,48,28,.10)}.order-info{display:flex;gap:15px;margin-top:22px;padding:20px;border:1px solid var(--gold-line);background:rgba(255,249,239,.75);border-radius:22px}.order-info .gold-star{font-size:24px}.order-info strong{color:var(--forest)}.order-info p{margin:4px 0 0;color:var(--muted);font-size:13px}.manual-order-panel{margin-top:21px}.order-label-row{display:flex;justify-content:space-between;color:#9a8977;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.12em;margin:0 8px 8px}.order-list{display:grid;gap:7px}.order-row{display:grid;grid-template-columns:38px 54px 1fr auto;align-items:center;gap:10px;min-height:70px;background:rgba(255,249,239,.83);border:1px solid var(--line);border-radius:18px;padding:7px 9px}.order-number{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#efe2c5;color:var(--forest);font-size:12px;font-weight:900}.order-row img{width:52px;height:52px;object-fit:contain}.order-row strong{color:var(--forest);font-size:13px}.order-buttons{display:flex;gap:5px}.order-buttons button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--forest);font-weight:900}.order-buttons button:disabled{opacity:.25}.form-panel{margin-top:25px;padding:26px;border:1px solid var(--line);border-radius:26px;background:rgba(255,249,239,.86);box-shadow:var(--shadow-soft)}.field-label{display:flex;align-items:center;justify-content:space-between;margin:0 2px 8px;color:var(--forest);font-size:13px;font-weight:900}.field-label span{color:#9a8978;font-size:10px;font-weight:700}.finish-fieldset{border:0;padding:0;margin:24px 0 0}.finish-fieldset legend{color:var(--forest);font-weight:900;margin-bottom:10px}.choice-card{display:flex;align-items:center;gap:11px;padding:14px;border:1px solid var(--line);border-radius:18px;background:#fffaf3;margin-top:8px;cursor:pointer}.choice-card:has(input:checked){background:var(--green-soft);border-color:rgba(41,71,55,.40)}.choice-card input{accent-color:var(--forest);width:18px;height:18px}.choice-card span{display:grid;gap:2px}.choice-card strong{color:var(--forest);font-size:13px}.choice-card small{color:var(--muted)}.textarea{padding-top:14px;resize:vertical;min-height:98px}.character-count{display:block;text-align:right;color:#9b8a79;font-size:10px;margin-top:5px}.inline-warning{margin-top:17px;padding:15px;border-radius:18px;background:#fff3db;border:1px solid #e8c787;color:#6f5939}.inline-warning strong{font-size:13px}.inline-warning p{font-size:12px;margin:5px 0}.review-card{margin-top:24px;border:1px solid var(--line);border-radius:26px;background:rgba(255,249,239,.88);box-shadow:var(--shadow-soft);overflow:hidden}.review-row{display:grid;grid-template-columns:150px 1fr auto;gap:14px;align-items:center;padding:16px 20px;border-top:1px solid var(--line)}.review-row:first-child{border-top:0}.review-row span{color:#8a7a69;font-size:11px;text-transform:uppercase;font-weight:900;letter-spacing:.09em}.review-row strong{color:var(--forest)}.review-row button{border:0;background:transparent;color:var(--red);font-weight:850}.safety-card{display:flex;gap:15px;margin-top:18px;padding:18px 20px;border-radius:22px;background:#f0e2c6;border:1px solid rgba(198,154,83,.26)}.safety-icon{width:38px;height:38px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:var(--forest);color:var(--gold-light)}.safety-card strong{color:var(--forest)}.safety-card p{margin:5px 0 0;color:#6f6154;font-size:12px;line-height:1.5}.ready-check{display:flex;align-items:center;gap:10px;margin-top:17px;color:var(--forest);font-weight:900}.ready-check input{width:20px;height:20px;accent-color:var(--forest)}
/* Kid intro */
.kid-intro-screen{grid-template-columns:minmax(250px,390px) minmax(0,620px);gap:62px;padding-inline:30px}.kid-intro-art{position:relative}.kid-intro-art .halo{position:absolute;width:110%;aspect-ratio:1;border-radius:50%;left:-5%;top:12%;background:radial-gradient(circle,rgba(231,202,143,.42),transparent 68%)}.kid-intro-art img{position:relative;z-index:1;max-height:590px;margin:auto;filter:drop-shadow(0 18px 15px rgba(65,45,27,.14))}.kid-intro-copy{text-align:left}.kid-intro-copy h1{font-size:clamp(50px,6vw,76px)}.kid-intro-copy .screen-lead{margin-left:0}.kid-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:25px}.kid-steps div{padding:15px 10px;border:1px solid var(--line);background:rgba(255,249,239,.72);border-radius:20px;text-align:center}.kid-steps span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--forest);color:#fff;font-weight:900;margin:0 auto 7px}.kid-steps strong{display:block;color:var(--forest);font-family:Georgia,serif;font-size:20px}.kid-steps small{color:var(--muted)}.kid-intro-copy>.button{margin-top:24px}
/* Kid topbar */
.kid-topbar{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:15px;padding-bottom:14px;border-bottom:1px solid rgba(218,198,167,.48)}.kid-title{text-decoration:none;color:var(--forest);display:grid}.kid-title span{font-size:9px;font-weight:900;letter-spacing:.16em}.kid-title strong{font:700 26px/1 Georgia,serif}.kid-top-actions{display:flex;align-items:center;gap:8px}.kid-progress-pill,.grown-up-button{min-height:42px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:rgba(255,249,239,.84);color:var(--forest);font-size:11px;font-weight:900}.grown-up-button{touch-action:none}.kid-screen{padding:24px 0 44px}.kid-content{min-height:calc(100vh - 180px)}.compact-kid-content{max-width:900px}.map-content{display:grid;gap:16px}.map-copy{text-align:center}.map-copy h1{font-size:clamp(36px,4.6vw,55px)}.map-copy p:not(.eyebrow){margin:6px 0 0;color:var(--muted);font:17px Georgia,serif}.map-card{position:relative;width:min(1180px,100%);aspect-ratio:16/9;margin:auto;border:7px solid rgba(255,249,239,.92);border-radius:28px;overflow:hidden;box-shadow:var(--shadow);background:#dfe8ec}.map-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.route-svg,.star-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.map-star{position:absolute;transform:translate(-50%,-50%);border-radius:50%;width:20px;height:20px;background:rgba(255,249,239,.72);border:2px solid rgba(198,154,83,.66);box-shadow:0 2px 5px rgba(71,51,30,.12);transition:.3s ease}.map-star.current{width:34px;height:34px;background:var(--gold-light);border-color:#b78131;box-shadow:0 0 0 8px rgba(231,202,143,.19),0 4px 11px rgba(70,46,20,.18);animation:starPulse 1.7s ease-in-out infinite}.map-star.completed{width:25px;height:25px;background:var(--gold);border-color:#a87b33;opacity:.96}.map-star::after{content:"✦";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:10px;opacity:.72}.map-star.current::after{font-size:16px;opacity:1}.map-star.completed::after{font-size:12px;opacity:1}.santa-sprite{position:absolute;z-index:7;height:12.5%;min-height:46px;max-height:84px;transform:translate(-50%,-88%);transform-origin:50% 100%;pointer-events:none;filter:drop-shadow(0 6px 4px rgba(46,34,22,.22));will-change:left,top,transform}.santa-sprite.is-walking{animation:santaWalk .36s ease-in-out infinite alternate}.santa-sprite.is-celebrating{animation:santaCelebrate .65s ease-in-out 2}.milestone-banner{position:absolute;z-index:9;left:50%;top:8%;transform:translateX(-50%);padding:10px 16px;border-radius:999px;background:rgba(255,249,239,.95);border:1px solid var(--gold-line);box-shadow:0 8px 20px rgba(62,45,25,.12);color:var(--forest);font-weight:900;font-size:13px}.map-sparkles{position:absolute;inset:0;pointer-events:none;z-index:8}.map-sparkle{position:absolute;color:#f7ce72;font-size:18px;animation:sparkleOut .75s ease-out forwards}.map-actions{text-align:center}.map-status{min-height:24px;margin:0 0 10px;color:var(--forest);font:18px Georgia,serif}.map-actions .button{min-width:240px}
/* Clue */
.clue-progress-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:15px;margin-bottom:13px;color:var(--forest);font-size:10px;font-weight:900;letter-spacing:.1em}.clue-progress-track{height:6px;border-radius:999px;background:#e8dcc8;overflow:hidden}.clue-progress-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--red),var(--gold));border-radius:inherit;transition:width .35s ease}.clue-card{border:1px solid var(--line);border-radius:30px;background:rgba(255,249,239,.94);box-shadow:var(--shadow);padding:24px 34px 27px;text-align:center}.clue-art{width:145px;height:145px;object-fit:contain;margin:1px auto 10px}.riddle-copy{color:#4c4036;font:700 clamp(22px,2.4vw,29px)/1.4 Georgia,serif}.riddle-copy p{margin:0}.hint-box{max-width:620px;margin:18px auto 0;display:flex;text-align:left;gap:13px;border:1px solid var(--gold-line);background:#fff4d9;border-radius:20px;padding:14px 16px;color:#66533e}.hint-box .gold-star{font-size:20px}.hint-box strong{color:var(--forest)}.hint-box p{margin:3px 0 0;font-size:13px}.clue-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:21px}
/* Answers */
.answer-head{text-align:center;margin-bottom:20px}.answer-head h1{font-size:clamp(38px,4.4vw,56px)}.answer-feedback{min-height:24px;margin:8px 0 0;color:var(--muted);font:16px Georgia,serif}.answer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.answer-card{position:relative;border:1px solid var(--line);background:rgba(255,249,239,.92);border-radius:23px;min-height:225px;padding:12px 10px 16px;color:var(--forest);box-shadow:var(--shadow-soft);transition:.18s ease}.answer-card:hover:not(:disabled){transform:translateY(-3px);border-color:rgba(198,154,83,.55)}.answer-card img{height:160px;width:100%;object-fit:contain}.answer-card strong{display:block;margin-top:4px;font:700 19px/1.12 Georgia,serif}.answer-card.correct{border-color:rgba(41,71,55,.62);background:var(--green-soft);box-shadow:0 0 0 4px rgba(41,71,55,.08)}.answer-card.correct::after{content:"✓";position:absolute;right:10px;top:10px;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:var(--forest);color:white;font-weight:900}.answer-card.wrong{animation:wrongShake .38s ease;border-color:rgba(169,79,72,.58);background:var(--red-soft)}.answer-card.hint-pulse{animation:answerHint 1.4s ease-in-out 2}
/* Find / found / bonus */
.find-card,.found-card,.bonus-card{width:min(680px,100%);margin:0 auto;text-align:center;border:1px solid var(--line);border-radius:32px;background:rgba(255,249,239,.94);box-shadow:var(--shadow);padding:26px 28px 30px}.find-card h1,.found-card h1,.bonus-card h1{font-size:clamp(44px,5.4vw,64px)}.find-location-art{width:245px;height:245px;object-fit:contain;margin:4px auto 3px}.find-card h2{margin:0;color:var(--forest);font:700 31px Georgia,serif}.find-card p{color:var(--muted);font:17px Georgia,serif}.find-card .button{margin-top:8px}.find-card .text-button{display:block;margin:10px auto 0}.found-card{padding-top:20px}.found-check{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--forest);color:#fff;font-size:25px;font-weight:900;margin:0 auto -5px;position:relative;z-index:2}.found-location-art{width:205px;height:205px;object-fit:contain;margin:0 auto -4px}.bonus-card{padding:35px 32px}.bonus-star{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 13px;border-radius:50%;background:#f0dfb6;color:var(--gold);font-size:38px}.bonus-card p:not(.eyebrow){color:var(--muted);font:17px Georgia,serif}.bonus-card .button{margin-top:8px}.bonus-card .text-button{display:block;margin:8px auto 0}
/* Finale */
.finale-screen{padding:35px 20px 50px}.finale-card{width:min(860px,100%);text-align:center;border:1px solid var(--line);border-radius:34px;background:rgba(255,249,239,.95);box-shadow:var(--shadow);padding:26px 34px 34px}.finale-art{height:250px;position:relative;display:grid;place-items:center}.finale-art img{height:250px;position:relative;z-index:2;filter:drop-shadow(0 12px 9px rgba(54,39,23,.15))}.finale-glow{position:absolute;width:310px;height:210px;border-radius:50%;background:radial-gradient(circle,rgba(231,202,143,.65),transparent 68%);filter:blur(5px)}.finale-card h1{font-size:clamp(50px,6vw,76px)}.finale-congrats{margin:12px 0 0;color:var(--muted);font:19px Georgia,serif}.surprise-reveal{margin:22px auto 0;max-width:650px;border-radius:22px;padding:18px;background:#f0e2c3;border:1px solid var(--gold-line);display:grid;gap:5px}.surprise-reveal span{color:#8b7356;font-size:10px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.surprise-reveal strong{color:var(--forest);font:700 25px/1.2 Georgia,serif}.finale-actions{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:20px}.finale-option{min-height:96px;border:1px solid var(--line);border-radius:22px;background:#fffaf1;padding:15px;display:flex;align-items:center;gap:13px;text-align:left;color:var(--forest)}.finale-option>span{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--forest);color:var(--gold-light);flex:0 0 auto}.finale-option strong{display:block;font:700 20px Georgia,serif}.finale-option small{display:block;color:var(--muted);margin-top:3px}
/* Certificate */
.certificate-screen{padding:20px 0 55px}.certificate-actions{display:flex;justify-content:space-between;margin-bottom:15px}.certificate{width:min(700px,calc(100% - 28px));aspect-ratio:5/7;margin:auto;padding:50px 55px;border:1px solid #a38867;outline:10px solid rgba(255,249,239,.65);outline-offset:-22px;background:radial-gradient(circle at 50% 0,#fffdf7,#f7ead7 72%);box-shadow:var(--shadow);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.certificate-official{margin:0;color:var(--red);font:700 58px Georgia,serif}.certificate h1{margin:2px 0 0;color:var(--forest);font:700 45px/1 Georgia,serif}.certificate-greenery{margin:24px 0;color:var(--gold);font-size:28px}.certificate>p:not(.certificate-official):not(.certificate-copy){font:18px Georgia,serif;color:#65574b}.certificate-name{width:78%;border-bottom:1px solid #5f4b37;padding:12px 8px 8px;color:var(--forest);font:700 36px Georgia,serif}.certificate-copy{margin:36px 0 0;color:#5e4d40;font:700 18px/1.48 Georgia,serif}.certificate h2{margin:35px 0 0;color:var(--forest);font:700 38px Georgia,serif}.certificate-date{margin-top:35px;display:grid;gap:4px;min-width:190px;border-bottom:1px solid #6d5742;padding-bottom:5px;color:#5d4e43;font-size:12px}.certificate-date small{position:relative;top:24px;font-size:9px;letter-spacing:.1em}
/* Find seek */
.findseek-content{padding-top:9px}.findseek-head{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center}.findseek-head h1{font-size:clamp(42px,5vw,64px)}.findseek-head p:not(.eyebrow){margin:7px 0 0;color:var(--muted)}.round-back{width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:#fffaf1;color:var(--forest);font-size:31px}.findseek-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:25px}.findseek-item{min-height:64px;border:1px solid var(--line);border-radius:18px;background:rgba(255,249,239,.87);padding:11px 14px;display:flex;align-items:center;gap:11px;text-align:left;color:#5e5146}.findseek-check{width:30px;height:30px;border-radius:9px;flex:0 0 auto;border:2px solid #cdb990;background:#fff;display:grid;place-items:center;color:#fff;font-weight:900}.findseek-item.is-found{background:var(--green-soft);color:var(--forest)}.findseek-item.is-found .findseek-check{background:var(--forest);border-color:var(--forest)}.findseek-item.is-found .findseek-check::after{content:"✓"}.findseek-complete{margin:20px auto 0;padding:18px 20px;max-width:620px;border-radius:22px;background:#f0dfb8;border:1px solid var(--gold-line);display:flex;align-items:center;justify-content:center;gap:11px;color:var(--forest)}.findseek-complete span{color:var(--gold);font-size:26px}
/* Dialogs */
.dialog-card{width:min(600px,calc(100% - 28px));border:1px solid var(--line);border-radius:28px;background:var(--paper);box-shadow:0 24px 80px rgba(47,33,20,.25);padding:28px;color:var(--ink)}.dialog-card::backdrop{background:rgba(29,49,39,.48);backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:15px;top:13px;width:39px;height:39px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--forest);font-size:22px}.dialog-card h2{margin:0;color:var(--forest);font:700 34px/1.05 Georgia,serif}.dialog-steps{display:grid;gap:11px;margin-top:22px}.dialog-steps>div{display:grid;grid-template-columns:38px 1fr;gap:0 12px;padding:13px;border-radius:18px;background:#f7eddd}.dialog-steps span{grid-row:1/3;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--forest);color:#fff;font-weight:900}.dialog-steps strong{color:var(--forest)}.dialog-steps p{margin:3px 0 0;color:var(--muted);font-size:12px}.parent-menu{display:grid;gap:8px;margin-top:20px}.menu-button{min-height:50px;border:1px solid var(--line);border-radius:16px;background:#fffaf1;color:var(--forest);font-weight:850;padding:0 14px;display:flex;align-items:center;text-decoration:none}.menu-button.danger{color:var(--red-deep)}.parent-finish-editor{margin-top:20px;padding-top:17px;border-top:1px solid var(--line)}.parent-finish-editor .textarea{margin-top:8px}.parent-finish-editor .button{margin-top:9px}.toast{position:fixed;z-index:100;left:50%;bottom:26px;transform:translateX(-50%);max-width:min(500px,calc(100% - 30px));padding:11px 16px;border-radius:999px;background:var(--forest);color:#fff;box-shadow:0 10px 35px rgba(32,42,35,.22);font-size:12px;font-weight:800}
.site-footer{position:relative;z-index:1;text-align:center;padding:24px 0 38px}.site-footer img{width:120px;opacity:.72}
/* Animations */
@keyframes softPulse{0%,100%{transform:scale(.9);opacity:.55}50%{transform:scale(1.08);opacity:1}}@keyframes starPulse{0%,100%{box-shadow:0 0 0 6px rgba(231,202,143,.13),0 4px 11px rgba(70,46,20,.15)}50%{box-shadow:0 0 0 12px rgba(231,202,143,.23),0 4px 11px rgba(70,46,20,.2)}}@keyframes santaWalk{from{transform:translate(-50%,-88%) rotate(-1.4deg) translateY(0)}to{transform:translate(-50%,-88%) rotate(1.4deg) translateY(-3px)}}@keyframes santaCelebrate{0%,100%{transform:translate(-50%,-88%) scale(1)}50%{transform:translate(-50%,-88%) scale(1.09) rotate(2deg)}}@keyframes sparkleOut{0%{opacity:0;transform:scale(.45) translateY(4px)}35%{opacity:1}100%{opacity:0;transform:scale(1.25) translateY(-20px)}}@keyframes wrongShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}@keyframes answerHint{0%,100%{box-shadow:var(--shadow-soft)}50%{box-shadow:0 0 0 6px rgba(198,154,83,.22),var(--shadow-soft)}}
/* Responsive */
@media(max-width:1023px){.access-layout{grid-template-columns:.85fr 1.15fr;gap:25px}.access-art{min-height:500px}.location-grid{grid-template-columns:repeat(3,1fr)}.answer-grid{grid-template-columns:repeat(2,1fr);max-width:650px;margin:auto}.answer-card{min-height:215px}.kid-intro-screen{gap:34px}.map-star{width:18px;height:18px}.map-star.current{width:31px;height:31px}.map-star.completed{width:23px;height:23px}}
@media(max-width:699px){.page-width{width:min(var(--page),calc(100% - 24px))}.screen{min-height:calc(100vh - 90px)}.access-screen{padding:18px 0 35px}.access-layout{display:flex;flex-direction:column;gap:8px}.access-art{min-height:260px;width:100%;order:0}.access-art img{height:250px;width:auto}.spark{font-size:21px}.access-copy{text-align:center}.access-copy h1{font-size:clamp(45px,13vw,59px);line-height:.91}.hero-lead{font-size:17px;margin:14px auto 0}.access-card{text-align:left;padding:17px;margin-top:20px}.access-row{grid-template-columns:1fr}.access-row .button{min-height:54px}.micro-note{text-align:center}.centered-screen{padding:28px 12px}.narrow-panel h1,.setup-content h1,.kid-intro-copy h1,.map-copy h1,.answer-head h1,.find-card h1,.found-card h1,.bonus-card h1,.finale-card h1,.findseek-head h1{font-size:clamp(39px,11.5vw,52px)}.screen-lead{font-size:17px}.setup-screen{padding-top:14px}.setup-logo img,.mini-brand img{width:98px}.setup-top{padding-bottom:11px}.setup-content{padding-top:25px;padding-bottom:76px}.setup-heading-row{display:block}.setup-heading-row .count-pill{margin-top:13px}.preset-row{grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.preset-card{min-height:72px}.location-grid{grid-template-columns:repeat(2,1fr);gap:9px}.location-card{min-height:154px;padding:8px 8px 12px;border-radius:18px}.location-card img{height:102px}.location-card strong{font-size:11px}.location-check{width:24px;height:24px}.setup-action-row{display:none}.mobile-setup-bar{position:fixed;z-index:30;left:0;right:0;bottom:0;min-height:70px;padding:9px max(12px,env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:10px;background:rgba(255,249,239,.96);border-top:1px solid var(--line);backdrop-filter:blur(12px)}.mobile-setup-bar span{color:var(--forest);font-size:12px;font-weight:900}.mobile-setup-bar .button{min-height:50px}.segmented{margin-top:18px}.order-row{grid-template-columns:32px 48px 1fr auto}.order-row img{width:46px;height:46px}.order-buttons button{width:34px;height:34px}.form-panel{padding:18px;border-radius:22px}.review-row{grid-template-columns:1fr auto;padding:13px 15px}.review-row span{grid-column:1/-1}.review-row strong{font-size:13px}.review-screen .setup-content{padding-bottom:30px}.review-screen .setup-action-row{display:flex}.kid-intro-screen{display:block;padding:18px 18px 38px}.kid-intro-art{height:270px}.kid-intro-art img{height:280px}.kid-intro-copy{text-align:center}.kid-intro-copy .screen-lead{margin-left:auto}.kid-steps{gap:6px}.kid-steps div{padding:11px 6px}.kid-steps strong{font-size:17px}.kid-topbar{padding-top:10px;padding-bottom:10px}.kid-title strong{font-size:20px}.kid-title span{font-size:7px}.kid-progress-pill,.grown-up-button{min-height:38px;padding:0 10px;font-size:9px}.kid-screen{padding-top:17px}.kid-content{min-height:calc(100vh - 145px)}.map-copy h1{font-size:36px}.map-copy p:not(.eyebrow){font-size:15px}.map-card{border-width:5px;border-radius:20px}.map-star{width:14px;height:14px;border-width:1.5px}.map-star.current{width:26px;height:26px;box-shadow:0 0 0 6px rgba(231,202,143,.18)}.map-star.completed{width:18px;height:18px}.map-star::after{font-size:7px}.map-star.current::after{font-size:12px}.map-star.completed::after{font-size:8px}.santa-sprite{height:20%;min-height:40px;max-height:48px}.milestone-banner{top:5%;font-size:10px;padding:8px 11px}.map-actions .button{width:100%;min-width:0}.clue-card{padding:18px 15px 20px;border-radius:23px}.clue-art{width:116px;height:116px}.riddle-copy{font-size:clamp(20px,6vw,24px);line-height:1.38}.clue-actions{display:grid}.clue-actions .button{width:100%}.answer-grid{gap:9px}.answer-card{min-height:180px;border-radius:19px;padding:8px}.answer-card img{height:120px}.answer-card strong{font-size:16px}.find-card,.found-card,.bonus-card{padding:21px 17px 24px;border-radius:25px}.find-location-art{width:190px;height:190px}.find-card h2{font-size:26px}.found-location-art{width:170px;height:170px}.finale-card{padding:20px 16px 24px}.finale-art{height:200px}.finale-art img{height:205px}.surprise-reveal strong{font-size:21px}.finale-actions{grid-template-columns:1fr}.certificate-actions{width:calc(100% - 24px)}.certificate{padding:36px 27px}.certificate-official{font-size:43px}.certificate h1{font-size:34px}.certificate-name{font-size:29px}.certificate-copy{font-size:15px}.certificate h2{font-size:31px}.findseek-head{grid-template-columns:auto 1fr}.findseek-head>.count-pill{grid-column:2;margin-top:5px;justify-self:start}.findseek-grid{grid-template-columns:1fr}.dialog-card{padding:22px 17px}.site-footer{padding-bottom:28px}.site-footer img{width:100px}}
@media(max-width:420px){.access-art{min-height:225px}.access-art img{height:220px}.access-copy h1{font-size:44px}.location-card{min-height:143px}.location-card img{height:92px}.kid-steps small{font-size:9px}.kid-progress-pill{display:none}.answer-card{min-height:162px}.answer-card img{height:103px}.find-location-art{width:170px;height:170px}.map-star.current{width:24px;height:24px}.santa-sprite{height:22%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
@media print{body{background:white}.screen:not(#certificate-screen),#kid-topbar,.site-footer,.certificate-actions,.ambient,.toast{display:none!important}#certificate-screen{display:block!important;padding:0}.certificate{width:5in;height:7in;aspect-ratio:auto;box-shadow:none;margin:0 auto;outline-offset:-.16in;page-break-inside:avoid}@page{size:5in 7in;margin:0}}

/* V31 premium polish */
html{-webkit-tap-highlight-color:transparent}
.button,.location-card,.answer-card,.preset-card,.segment,.menu-button,.findseek-item,.grown-up-button{touch-action:manipulation}
.button:active:not(:disabled),.preset-card:active,.segment:active,.location-card:active,.answer-card:active,.findseek-item:active{transform:scale(.985)}

/* Balanced kid top bar */
.kid-topbar{min-height:78px}
.kid-top-actions{margin-left:auto;justify-content:flex-end}
.kid-progress-pill{display:inline-flex;align-items:center;justify-content:center;min-width:124px;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1}
.grown-up-button{display:inline-flex;align-items:center;justify-content:center;min-width:104px}

/* Route markers: future stops recede so the map remains the hero */
.map-star{width:16px;height:16px;opacity:.28;border-width:1.5px;background:rgba(255,249,239,.72)}
.map-star::after{font-size:7px;opacity:.45}
.map-star.current{width:32px;height:32px;opacity:1}
.map-star.current::after{font-size:15px;opacity:1}
.map-star.completed{width:23px;height:23px;opacity:1}
.map-star.completed::after{font-size:11px;opacity:1}

/* Mission flow after solving a clue */
.mission-card{padding:30px 34px 34px}
.mission-card .eyebrow{margin-bottom:9px}
.mission-card h1{font-size:clamp(38px,4.8vw,58px);line-height:1.02;margin:0 auto 12px;max-width:620px}
.mission-card .find-location-art{width:220px;height:220px;margin:2px auto 8px}
.mission-copy{max-width:520px;margin:4px auto 22px!important;color:var(--muted)!important;font:19px/1.5 Georgia,serif!important}
.mission-card .button{min-width:220px;margin-top:0!important}
.mission-card .text-button{margin-top:13px!important}

/* Map CTA spacing */
.map-actions{display:flex;flex-direction:column;align-items:center;gap:0;padding-top:2px}
.map-status{min-height:26px;margin:0 0 16px;line-height:1.35}
.map-actions .button{min-height:56px}

/* Cards feel responsive without becoming jumpy */
.location-card,.answer-card,.preset-card{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}
@media (hover:hover){
  .location-card:hover,.answer-card:hover,.preset-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(73,54,34,.10)}
  .location-card.is-selected:hover{box-shadow:0 12px 28px rgba(41,71,55,.12)}
}

/* Footer branding must remain centered on every screen */
.site-footer{width:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px 0 calc(38px + env(safe-area-inset-bottom));}
.site-footer a{display:inline-flex;align-items:center;justify-content:center;margin:0 auto}
.site-footer img{display:block;margin:0 auto;width:120px;opacity:.72}

/* Mobile safe areas and spacing */
@media(max-width:699px){
  .kid-topbar{min-height:64px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  .kid-progress-pill{min-width:102px;padding-inline:10px}
  .grown-up-button{min-width:86px}
  .kid-screen{padding-bottom:calc(34px + env(safe-area-inset-bottom))}
  .mission-card{padding:22px 17px 27px}
  .mission-card h1{font-size:clamp(34px,10.2vw,46px);margin-bottom:8px}
  .mission-card .find-location-art{width:176px;height:176px;margin-bottom:6px}
  .mission-copy{font-size:17px!important;margin-bottom:20px!important}
  .mission-card .button{width:100%;min-width:0;min-height:56px}
  .map-status{margin-bottom:14px}
  .map-star{width:11px;height:11px;opacity:.25}
  .map-star.current{width:25px;height:25px;opacity:1}
  .map-star.completed{width:17px;height:17px;opacity:1}
  .site-footer{padding-bottom:calc(28px + env(safe-area-inset-bottom))}
  .site-footer img{width:100px}
}
@media(max-width:420px){
  .kid-top-actions{gap:6px}
  .grown-up-button{min-width:82px}
  .mission-card .find-location-art{width:160px;height:160px}
}


/* V33 dynamic missions, compact footer & certificate artwork */
/* Compact kid screens should not reserve an artificial full viewport below the card. */
#clue-screen,#answer-screen,#find-screen{min-height:auto}
#clue-screen .compact-kid-content,#answer-screen .compact-kid-content,#find-screen .compact-kid-content{min-height:0}
#find-screen{padding-top:22px;padding-bottom:12px}
#find-screen .mission-card{margin-bottom:0}

/* Keep brand visible after compact missions instead of pushing it below the viewport. */
.site-footer{margin-top:8px;padding:10px 0 calc(18px + env(safe-area-inset-bottom));min-height:54px}
.site-footer img{width:108px}

/* Mission hierarchy */
.mission-card{padding-top:30px;padding-bottom:30px}
.mission-card .find-location-art{margin-top:10px;margin-bottom:8px}
.mission-copy{margin:10px auto 0!important;max-width:520px;line-height:1.48}
.mission-card .button.primary{margin-top:20px;min-width:280px}
.mission-card .text-button{margin-top:14px}

/* Certificate: reuse original PLK-012 ornamental garlands as the reward frame. */
.certificate{justify-content:flex-start;padding:34px 50px 38px;overflow:hidden}
.certificate-garland{display:block;width:72%;height:auto;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 3px 2px rgba(70,49,29,.06))}
.certificate-garland-top{margin:0 auto 2px}
.certificate-garland-bottom{margin:16px auto 2px}
.certificate-official{margin:0;color:var(--red);font-size:54px;line-height:.95}
.certificate h1{margin:2px 0 0;font-size:42px;line-height:.98}
.certificate-greenery{display:none}
.certificate>p:not(.certificate-official):not(.certificate-copy){margin:20px 0 0;font-size:17px}
.certificate-name{padding-top:10px;font-size:34px}
.certificate-copy{margin:25px 0 0;font-size:17px;line-height:1.42}
.certificate h2{margin:24px 0 0;font-size:35px}
.certificate-date{margin-top:auto;min-width:190px}

@media(max-width:699px){
  #clue-screen,#answer-screen,#find-screen{min-height:auto}
  #find-screen{padding-top:14px;padding-bottom:8px}
  .mission-card{padding:22px 16px 24px}
  .mission-card .button.primary{width:100%;min-width:0;margin-top:18px}
  .site-footer{margin-top:4px;padding:8px 0 calc(14px + env(safe-area-inset-bottom))}
  .site-footer img{width:94px}
  .certificate{padding:24px 20px 26px}
  .certificate-garland{width:78%}
  .certificate-official{font-size:40px}
  .certificate h1{font-size:31px}
  .certificate>p:not(.certificate-official):not(.certificate-copy){margin-top:13px;font-size:14px}
  .certificate-name{font-size:27px}
  .certificate-copy{margin-top:18px;font-size:14px}
  .certificate h2{margin-top:18px;font-size:28px}
  .certificate-garland-bottom{margin-top:10px}
}

@media print{
  .certificate{padding:.20in .28in .22in;justify-content:flex-start;overflow:hidden}
  .certificate-garland{width:72%;height:auto}
  .certificate-garland-top{margin:0 auto .02in}
  .certificate-garland-bottom{margin:.08in auto .02in}
  .certificate-official{font-size:31pt}
  .certificate h1{font-size:24pt}
  .certificate>p:not(.certificate-official):not(.certificate-copy){margin-top:.10in;font-size:10.5pt}
  .certificate-name{font-size:21pt;padding-top:.06in}
  .certificate-copy{margin-top:.14in;font-size:10.5pt;line-height:1.35}
  .certificate h2{margin-top:.13in;font-size:21pt}
  .certificate-date{margin-top:auto}
}

/* V34 mission spacing polish */
#find-screen .mission-copy{margin-top:12px!important;margin-bottom:0!important}
#find-screen .mission-card .button.primary{margin-top:32px!important}
#find-screen .mission-card .text-button{margin-top:18px!important}
@media(max-width:699px){
  #find-screen .mission-copy{margin-top:10px!important;margin-bottom:0!important}
  #find-screen .mission-card .button.primary{margin-top:26px!important}
  #find-screen .mission-card .text-button{margin-top:16px!important}
}


/* V35 certificate balance */
.certificate-garland-bottom{
  margin-top:auto !important;
  margin-bottom:22px !important;
}
.certificate-date{
  margin-top:0 !important;
  min-width:190px;
  padding-bottom:5px;
}
.certificate-date small{
  display:none !important;
}

@media(max-width:699px){
  .certificate-garland-bottom{
    margin-top:auto !important;
    margin-bottom:16px !important;
  }
}

@media print{
  .certificate-garland-bottom{
    margin-top:auto !important;
    margin-bottom:.10in !important;
  }
  .certificate-date{
    margin-top:0 !important;
  }
}
