:root{--bg:#2b1c45;--text:#fffdf6;--muted:#ddd3e9;--gold:#ffdc62;--line:#ffffff30;--purple:#3b2556;--ink:#352446}
[hidden]{display:none!important}body{background:var(--bg);color:var(--text)}button,a,input,select,textarea{touch-action:manipulation}button{font:inherit}em{font-weight:inherit;color:var(--gold)}.btn{background:var(--gold);color:#332143;border-radius:12px;font-weight:750;min-height:48px;box-shadow:0 4px 0 #b68b2530}.btn.ghost{border-color:#d4bfdc60}.btn:disabled{opacity:.6}.sub{color:var(--muted)}.eyebrow{color:var(--gold);font-weight:700}.friends-brand{position:absolute;top:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;z-index:5;font-size:1.65rem;font-weight:600;font-style:italic;letter-spacing:.06em}.friends-brand i{width:6px;height:6px;border-radius:100%;background:#e94945}.friends-brand i:nth-of-type(3n+2){background:#39aad2}.friends-brand i:nth-of-type(3n){background:var(--gold)}.sound-toggle{background:#2b1c45dd;border-color:#ffffff40;color:var(--gold);top:20px;font-size:.875rem}.screen{padding-top:110px}.screen h1{font-size:clamp(2.15rem,5vw,4.4rem);font-weight:400;line-height:1.12}.card{border-radius:18px;background:#302041eb;border:1px solid #cfb9df50;max-width:780px}.shade{background:linear-gradient(#2b1c4588,#21152dd9)}.door-screen.active{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;padding:112px 20px 34px;background:radial-gradient(ellipse at 50% 50%,#654268,#2b1c45 75%);min-height:100svh;cursor:default}.door-copy{position:relative;z-index:2}.door-copy h1{margin:8px auto 16px;font-size:clamp(2.35rem,6vw,4.6rem);line-height:1.08}.door-copy .eyebrow{font-size:.8125rem}.edition{font-family:Georgia,serif;font-size:1.15rem;margin:8px}.door-art{background:url('assets/images/friends-door.webp') center 25% / 100% auto no-repeat;width:min(330px,85vw);height:250px;border-radius:12px;box-shadow:0 15px 40px #0005}.door-actions{width:min(440px,100%);position:relative;z-index:2}.door-actions>.btn{width:100%;font-family:Georgia,serif;font-size:1.35rem;display:flex;justify-content:center;gap:35px}.door-actions>p{font-size:.9375rem;color:var(--muted)}.text-button{border:0;background:none;color:var(--gold);text-decoration:underline;text-underline-offset:5px;padding:12px;font-size:.9375rem}.door-screen.intro-exit{animation:introExit .7s ease forwards}.access-card h1{font-size:clamp(2.3rem,5vw,4rem)}.access-card .sub{font-size:1.0625rem}.puzzle-board{border:2px solid #dcb54d;background:#8f6b2244}.puzzle-preview{background:#f8edce;color:#392445;transform:rotate(3deg);border-radius:3px;padding:8px 8px 16px}.puzzle-preview img{border-radius:2px}.puzzle-preview span{color:#392445;text-transform:none}.cinematic-message .roles p{font-size:clamp(1.15rem,3.5vw,1.7rem)}.cinematic-message .roles p:nth-child(3n+1){color:#ffdc62}.cinematic-message .roles p:nth-child(3n+2){color:#fff5ed}.cinematic-message .roles p:nth-child(3n){color:#badff2}.quiz-card{max-width:750px;padding-bottom:40px}.quiz-card h1{margin:10px auto 16px}.quiz-card .sub{font-size:1.0625rem}.quiz-progress{display:flex;justify-content:center;gap:45px;margin:30px 0}.quiz-progress span{display:grid;place-items:center;border-radius:100%;width:40px;height:40px;background:#6b5089;color:#fff}.quiz-progress .current{background:var(--gold);color:var(--ink)}.quiz-progress .completed{background:#dfccef;color:var(--ink)}#quizForm{background:#f2e9fb;border-radius:20px;padding:32px;color:var(--ink)}#quizForm fieldset{border:0;padding:0;margin:0;min-width:0}#quizQuestion{font-family:Georgia,serif;font-size:clamp(1.45rem,4vw,2rem);line-height:1.35;text-align:center;width:100%;font-weight:600}.quiz-options{text-align:left;margin:24px 0}.quiz-options label{display:flex;align-items:center;gap:14px;border:1px solid #b69bd0;background:#fff8;border-radius:12px;padding:15px;cursor:pointer;line-height:1.5}.quiz-options input{width:20px;height:20px;accent-color:#4c316e;margin:0;flex-shrink:0}.quiz-options label:has(input:checked){background:var(--gold);border-color:#947026}.quiz-options label.correct{border:3px solid #347153}.quiz-options label.wrong{border:3px solid #b13949}.quiz-options label:has(input:focus-visible){outline:3px solid #593581;outline-offset:2px}#quizFeedback{color:var(--ink)}#quizFeedback .btn{margin-top:18px}#quizRetry{background:#472c68}.quiz-footer{font-family:Georgia,serif;font-style:italic;font-size:1.2rem;margin-top:30px}.memory-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:95px auto 5px;padding:0 16px}.memory-nav a,.memory-nav button{background:none;border:1px solid var(--line);color:var(--text);font:inherit;text-decoration:none;border-radius:99px;padding:10px 18px}.memory-nav a:hover,.memory-nav button:hover{background:#ffffff15}.travel-section{max-width:1200px;margin:auto;padding:55px 28px;text-align:center}.travel-section h2,.albums h2,.scrapbook-invite h2,.scrapbook-dialog h2{font:400 clamp(2.25rem,5vw,4.3rem)/1.1 Georgia,serif;margin:14px auto}.travel-section>.sub,.albums>.sub{font-size:1.1rem;text-align:center;margin-bottom:35px}.map-layout{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(270px,1fr);align-items:stretch;gap:20px}.map-shell{background:#37234f;position:relative;border:1px solid #b390cf45;border-radius:18px;overflow:hidden;min-width:0;display:flex;flex-direction:column;justify-content:center}#travelSvg{width:100%;display:block;aspect-ratio:2/1;touch-action:none;cursor:grab;overflow:hidden}#travelSvg:active{cursor:grabbing}.countries{fill:#9772b0;stroke:#50335d;stroke-width:.65;fill-rule:evenodd}.pin-hit{fill:transparent}.pin-ring{fill:var(--gold);stroke:#3a1f4b;stroke-width:1.3}.pin-core{fill:#513264}.map-pin{cursor:pointer}.map-pin.selected .pin-ring{fill:#fffbef;stroke:#e86e55;stroke-width:3}.map-pin:focus-visible{outline:none}.map-pin:focus-visible .pin-ring{stroke:#fff;stroke-width:4}.map-controls{position:absolute;right:12px;top:12px;display:flex;gap:5px;z-index:1}.map-controls button{background:#2b1c45e8;border:1px solid #dcc2ee66;color:white;border-radius:8px;min-width:40px;min-height:42px;padding:8px;font-size:1rem}.map-help{font-size:.875rem;margin:8px 0 14px;color:#e7dbf3}.destination-card{text-align:left;overflow:hidden;border-radius:16px;background:#fbf4e3;color:var(--ink)}.destination-card>img{width:100%;height:220px;object-fit:cover;display:block}.destination-card>div{padding:22px}.destination-card .eyebrow{color:#704b91;font-size:.8125rem;margin-top:0;letter-spacing:.1em}.destination-card h3{font:600 1.5rem/1.25 Georgia,serif;margin:10px 0}.destination-card p{font-size:1rem}.destination-card .btn{width:100%}.destination-label{display:block;margin:24px auto 8px;font-size:.9375rem}select{font:inherit;padding:13px 16px;border:1px solid #9c80b9;background:#453060;color:#fff;border-radius:10px;max-width:100%}#destinationSelect{width:min(400px,100%)}.map-credit{font-size:.75rem;color:#d0bddd;max-width:640px;margin:16px auto 0}.albums{max-width:1200px;padding:45px 28px 60px;scroll-margin-top:20px}.albums>.eyebrow{text-align:center}.album-grid{gap:22px}.album{background:#f8efdd;border:0;border-radius:6px;color:var(--ink);padding:9px;box-shadow:0 8px 20px #140f222b}.album:nth-child(3n+1){transform:rotate(-1deg)}.album:nth-child(3n+3){transform:rotate(1deg)}.album:hover{transform:translateY(-4px) rotate(0)}.album img{aspect-ratio:5/4;border-radius:2px}.album .meta{padding:18px 12px 10px}.album .meta small{color:#735491}.album .meta p{color:#655572}.album .meta h3{font-family:Georgia,serif}.scrapbook-invite{text-align:center;padding:65px 22px 80px;background:#3b2754;border-top:1px solid var(--line)}.scrapbook-invite>p{max-width:600px;margin:20px auto}.privacy-note{font-size:.875rem;color:var(--muted)}.scrapbook-invite>.btn{margin:12px auto}.scrapbook-dialog{position:fixed;inset:0;width:min(1050px,100%);max-width:100%;height:100%;max-height:100%;margin:auto;border:1px solid #af8cc6;border-radius:0;background:#37244f;color:var(--text);padding:24px 36px 50px;text-align:center;overflow:auto}.scrapbook-dialog::backdrop{background:#100b1beb}.scrapbook-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.scrapbook-label{font-size:.875rem;letter-spacing:.15em;color:var(--gold)}.scrapbook-dialog h2{font-size:clamp(2rem,5vw,3.7rem)}.scrapbook-tabs{display:flex;justify-content:center;gap:6px;background:#261535;border:1px solid #b490c555;max-width:480px;margin:28px auto 42px;padding:5px;border-radius:99px}.scrapbook-tabs button{border:0;background:none;color:#f2e9fc;border-radius:99px;padding:13px 16px;flex:1;font-size:.9375rem}.scrapbook-tabs button[aria-pressed=true]{background:var(--gold);color:var(--ink)}.paper-page{position:relative;background:#fff5d9;color:var(--ink);padding:36px 35px;border-radius:4px;max-width:630px;margin:15px auto;text-align:left;box-shadow:10px 12px 0 #1c102733}.paper-tape{position:absolute;top:-13px;left:calc(50% - 45px);width:90px;height:28px;background:#c6abdba8;transform:rotate(-4deg)}.hand-note{font-family:Georgia,serif;font-style:italic;font-size:1.65rem;line-height:1.25;margin:0 0 14px}.private-explainer{font-size:.9375rem;color:#6c586d}.paper-page label{display:block;font-size:1rem;font-weight:600;margin:18px 0 8px}.paper-page input,.paper-page select,.paper-page textarea{display:block;width:100%;max-width:none;background:#fffaf0;color:var(--ink);border:1px solid #b6a18f;border-radius:6px;font:inherit;margin:0;padding:13px 14px}.paper-page textarea{resize:vertical;min-height:160px;line-height:1.7;background:repeating-linear-gradient(#fffaf0,#fffaf0 26px,#c7b89650 27px)}.paper-page input:focus-visible,.paper-page textarea:focus-visible,.paper-page select:focus-visible{outline-color:#693d8b}.note-count{display:block;text-align:right;font-size:.8125rem;color:#79676d;margin:8px 0 18px}.paper-page .btn{width:100%;margin:12px 0 0;background:#53316f;color:#fff}.paper-page [role=status]{font-size:.9375rem;font-weight:600;line-height:1.5}.honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.reading-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 32px}.reading-controls p{font-size:.9375rem;max-width:440px;text-align:left}.reading-controls button{flex-shrink:0}.private-notes{display:grid;grid-template-columns:1fr 1fr;gap:30px}.private-note{padding:30px 26px;color:var(--ink);background:#fff3c7;position:relative;border-radius:3px;box-shadow:6px 8px 0 #13091d33;text-align:left;overflow-wrap:anywhere}.private-note::before{content:'';position:absolute;top:-10px;left:35%;width:30%;height:22px;background:#b4d5e490;transform:rotate(-4deg)}.private-note .eyebrow{color:#714c80;font-size:.8125rem;letter-spacing:.08em}.private-note.paper-1{background:#f0dff8}.private-note.paper-2{background:#dfedf5}.note-writing{white-space:pre-wrap;font-family:Georgia,serif;font-size:1.1rem;line-height:1.8}.note-signature{font-family:Georgia,serif;font-style:italic;font-size:1.2rem}.private-note time{font-size:.8125rem;color:#716272}.modal{background:#241832}.modal-head{background:#241832ee}.photo-viewer{background:#160f20}
@media(max-width:800px){.map-layout{grid-template-columns:1fr}.destination-card{display:grid;grid-template-columns:40% 60%}.destination-card>img{height:100%;min-height:230px}.destination-card>div{padding:20px}.map-shell{min-height:260px}.friends-brand{font-size:1.2rem;gap:6px;left:20px;transform:none;top:30px}.friends-brand i{width:4px;height:4px}.sound-toggle{padding:10px;font-size:.8125rem}.scrapbook-dialog{padding:20px 20px 40px}}
@media(max-width:520px){.door-screen.active{padding-top:95px;gap:6px}.door-copy h1{font-size:2.25rem}.door-art{height:220px;width:290px}.door-actions>p{margin:10px 0}.screen{padding-top:100px}.quiz-progress{margin:24px 0}#quizForm{padding:24px 18px}.quiz-options label{padding:14px 12px}.travel-section{padding:38px 16px}.destination-card{display:block}.destination-card>img{height:210px;min-height:0}.map-shell{min-height:245px}.albums{padding:30px 20px 50px}.album-grid{grid-template-columns:1fr}.paper-page{padding:30px 20px}.scrapbook-dialog{padding:18px 14px 30px}.scrapbook-label{font-size:.75rem;letter-spacing:.06em}.scrapbook-tabs button{padding:12px 8px;font-size:.875rem}.private-notes{grid-template-columns:1fr}.reading-controls{display:block;text-align:left}.reading-controls button{margin-top:8px}.friends-brand{font-size:1.05rem;gap:4px}.map-controls{right:8px;top:8px}.map-controls button{min-width:36px;min-height:38px}}
@media(prefers-reduced-motion:reduce){.album{transform:none!important}}

.door-actions>.message-entry{margin-top:18px;background:#fff3ce;color:#382145;white-space:normal;font:600 1.05rem/1.4 system-ui,sans-serif;padding:17px 18px;border:2px solid #ffdc62}.door-actions>.message-entry-help{font-size:.875rem;line-height:1.6;max-width:420px;margin:12px auto}.door-actions>#introContinue{font-size:1.12rem;gap:12px}
/* Show both choices before decorative imagery, including on small phones. */
.door-screen.active{justify-content:flex-start}.door-copy{order:1}.door-actions{order:2}.door-art{order:3;margin-top:16px}

.photo-upload{margin:22px 0;padding:18px 0;border-top:1px dashed #806a8950}.photo-upload label span{font-weight:400}.photo-upload p{font-size:.82rem;line-height:1.5}.photo-upload input{width:100%;font-size:.85rem;background:#fff8;color:var(--ink);padding:12px}.photo-previews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.photo-previews img{width:100%;aspect-ratio:1;object-fit:cover;border:5px solid #fff;box-shadow:0 2px 5px #35244620}.photo-previews button{display:block;margin:5px auto;border:0;background:transparent;color:#614274;text-decoration:underline;min-height:40px;cursor:pointer}.private-photo-gallery{display:grid;gap:16px;margin:20px 0}.private-photo-gallery img{width:100%;height:auto;max-height:650px;object-fit:contain;background:white;border:8px solid white;box-shadow:3px 5px 12px #35244625;border-radius:2px}
.gallery-photo:has(.parallel-caption){background:#fff3d9;border:7px solid #fff3d9;color:#352446;border-radius:4px;height:auto;overflow:hidden}.gallery-photo .parallel-caption{display:block;padding:16px 10px;font:italic 16px/1.5 Georgia,serif;white-space:normal}.gallery-photo:has(.parallel-caption) img{height:auto;aspect-ratio:2/3;object-fit:cover}.full-photo-caption{font:italic 18px/1.5 Georgia,serif;text-align:center;color:#ffe6a0;max-width:650px;margin:14px auto;padding:0 16px}.reading-controls{flex-wrap:wrap}.reading-controls p{flex:1 1 260px}#downloadStatus{line-height:1.6;font-size:14px}#messageDownloadLink{display:inline-block;margin-bottom:30px}

/* A quiet invitation: two actions, one private-book link. */
#introScreen.simple-entrance{position:relative;isolation:isolate;min-height:100svh;box-sizing:border-box;padding:110px 24px 48px;background:#291d3c;text-align:center;overflow:hidden;align-items:center;justify-content:center}
#introScreen.simple-entrance.active{display:flex}
.entrance-backdrop{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#291d3cf5 15%,#291d3cb8 60%,#291d3c70),url('assets/images/friends-door.webp') right 32%/auto 125% no-repeat;opacity:.8}
.entrance-card{width:min(440px,100%)}.entrance-kicker{font:600 11px/1.5 system-ui,sans-serif;letter-spacing:.24em;color:#e6c980;margin:0 0 28px}
#introScreen h1{font:400 clamp(60px,7vw,88px)/1.04 Georgia,serif;letter-spacing:-.035em;margin:0;color:#fff8ed}#introScreen h1>span{display:block;font:italic 25px/1.4 Georgia,serif;letter-spacing:0;margin-bottom:12px;color:#e9ddea}#introScreen h1 em{color:#ffdf89}.entrance-edition{font:14px/1.6 system-ui,sans-serif;color:#cbbfd4;margin:24px 0 36px}
.entrance-buttons{display:grid;gap:14px}.entrance-buttons>.btn{width:100%;border:1px solid #ffe29b;border-radius:12px;min-height:60px;padding:17px 20px;font:650 16px/1.4 system-ui,sans-serif;background:#ffdf89;color:#342344;box-shadow:none;display:flex;justify-content:space-between;align-items:center;gap:12px;white-space:normal;text-align:left}.entrance-buttons>.entrance-note{background:#fff8ee;color:#342344;border-color:#fff8ee}.entrance-buttons>.btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.entrance-buttons>.btn:focus-visible,.entrance-private:focus-visible{outline:3px solid #fff;outline-offset:5px}.entrance-buttons span{font-size:22px;font-weight:400}.entrance-note-help{font:12px/1.6 system-ui,sans-serif;color:#d1c3db;margin:15px 0 25px}.entrance-private{font:13px/1.5 system-ui,sans-serif;color:#ddc590;border:0;border-bottom:1px solid #ddc59060;background:none;min-height:44px;padding:10px 0;cursor:pointer}.entrance-private span{margin-left:8px}
@media(min-width:900px){#introScreen.simple-entrance{justify-content:flex-start;padding-left:max(8vw,calc((100vw - 1120px)/2))}.entrance-backdrop{background:linear-gradient(90deg,#291d3c 15%,#291d3ccc 48%,#291d3c20),url('assets/images/friends-door.webp') right 35%/auto 130% no-repeat}.entrance-card{text-align:left}.entrance-note-help{text-align:center}.entrance-private{display:block;margin:0 auto}}
@media(max-width:600px){#introScreen.simple-entrance{padding:100px 26px 32px}.entrance-backdrop{background:linear-gradient(#291d3c99,#291d3cf5 65%),url('assets/images/friends-door.webp') center 30%/cover no-repeat;opacity:.5}.entrance-kicker{margin-bottom:22px;font-size:10px}#introScreen h1{font-size:clamp(54px,15vw,70px)}#introScreen h1>span{font-size:23px}.entrance-edition{margin:20px 0 28px}.entrance-buttons>.btn{font-size:15px;min-height:58px}.entrance-note-help{font-size:12px;margin-bottom:16px}}
@media(prefers-reduced-motion:reduce){.entrance-buttons>.btn:hover{transform:none}}

/* Interactive character entrance, scoped to the welcome screen. */
#introScreen.simple-entrance{gap:48px;padding:110px max(24px,6vw) 40px;justify-content:center}
#introScreen .entrance-backdrop{background:radial-gradient(ellipse at 75% 45%,#72456755,transparent 65%);opacity:1}
#introScreen .entrance-card{position:relative;z-index:1;flex:0 1 440px;order:0}
.character-stage{position:relative;width:min(44vw,560px);aspect-ratio:1;flex-shrink:0;order:1;isolation:isolate}
.character-glow{position:absolute;inset:6%;border-radius:50%;background:#bf81912b;filter:blur(35px)}
.character-portrait{position:absolute;inset:0;background-image:url('assets/images/akki-character-poses.png');background-size:300% 300%;background-position:50% 50%;background-repeat:no-repeat;mask-image:radial-gradient(ellipse at 50% 42%,#000 43%,transparent 72%);transform:translate(var(--look-x,0px),var(--look-y,0px)) rotate(var(--look-tilt,0deg));transition:transform .65s ease;will-change:transform}
.character-motion{position:absolute;bottom:0;left:50%;transform:translateX(-50%);background:transparent;border:1px solid #ffffff25;border-radius:99px;color:#d6c6df;font:12px/1.3 system-ui;min-height:44px;padding:10px 18px;cursor:pointer}
.character-motion:focus-visible{outline:2px solid #ffdf89;outline-offset:4px}
@media(max-width:899px){#introScreen.simple-entrance{flex-direction:column;gap:8px;padding:88px 24px 28px}#introScreen .entrance-card{flex:auto;width:min(440px,100%);order:1;text-align:center}.character-stage{order:0;width:min(56vw,260px);margin-bottom:4px}.character-motion{bottom:-4px;min-height:36px;padding:7px 12px;font-size:10px}#introScreen .entrance-kicker{margin:8px 0 12px;font-size:10px}#introScreen h1{font-size:clamp(42px,10vw,64px)}#introScreen h1>span{font-size:20px;margin-bottom:4px}.entrance-edition{margin:14px 0 22px}.entrance-note-help{margin:12px 0 8px}.entrance-buttons{gap:10px}.entrance-buttons>.btn{min-height:54px;padding:14px 18px}}
@media(prefers-reduced-motion:reduce){.character-portrait{transition:none;transform:none!important}}
