@font-face{font-family:LocalSerif;src:local('Georgia')}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f4efe3;color:#253b30;font-family:'Segoe UI',Arial,sans-serif;font-size:16px;line-height:1.65}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #b86e3e;outline-offset:6px}button{border:0}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:LocalSerif,Georgia,serif;font-weight:400;line-height:1.08;letter-spacing:-.055em}em{color:#8a543a;font-weight:400}.masthead{height:94px;max-width:1440px;padding:0 6%;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #253b3029}.wordmark{text-decoration:none;display:flex;align-items:center;font-family:Georgia,serif;font-size:40px;gap:4px}.wordmark-star{color:#b57c41;font-size:29px}.wordmark-text{font-family:'Segoe UI',sans-serif;font-size:11px;letter-spacing:.2em;margin-left:14px;font-weight:600}.mast-date{font-size:11px;letter-spacing:.2em}.music-toggle{display:flex;align-items:center;gap:10px;font-size:13px;background:transparent;border:1px solid #253b3040;border-radius:30px;padding:9px 17px}.music-toggle>span:first-child{font-size:19px}.scene{max-width:1280px;margin:auto;padding:68px 6% 60px}.scene[hidden], [hidden]{display:none!important}.scene.active{animation:scene-in .65s ease both}.cover{display:grid;grid-template-columns:1fr 1fr;gap:45px;padding-top:72px;position:relative}.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:600}.tiny-star{color:#b48041;margin-right:9px}.cover h1{font-size:clamp(48px,5.4vw,79px);margin-top:27px;line-height:1.06}.cover h1 em{display:block}.cover-lede{font-size:17px;color:#5c655a;margin-top:25px;line-height:1.8}.admission{margin:28px 0;display:flex;align-items:center;gap:13px;width:fit-content;padding:12px 0;border-top:1px solid #7c816657;border-bottom:1px solid #7c816657}.admission-number{font-family:Georgia,serif;font-size:48px;line-height:1}.admission>span:nth-child(2){font-size:10px;letter-spacing:.1em;line-height:1.5}.admission-perf{height:38px;border-left:1px dashed #89917b;margin:0 9px}.admission-note{font-size:12px;color:#5c655a;line-height:1.5}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;padding:15px 24px;border-radius:3px;font-size:14px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.primary{background:#294737;color:#fff9e9;box-shadow:0 5px 0 #29473715}.primary:hover{background:#355b47}.button span{font-size:20px}.handwritten{font-family:Georgia,serif;font-style:italic;color:#8a543a;font-size:18px;letter-spacing:-.03em;margin-top:19px}.cover-art{position:relative;align-self:center;padding:22px 14px 32px;transform:rotate(2deg)}.art-caption{font-size:10px;letter-spacing:.22em;display:block;text-align:center;margin-bottom:13px}.art-mat{background:#e4ddc9;aspect-ratio:5/6;box-shadow:8px 14px 40px #4c49301b;border:10px solid #e9e0ce;outline:1px solid #b2a991;overflow:hidden;position:relative}.art-mat img{width:100%;height:100%;object-fit:cover;display:block}.first-preview-type{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;background:#263e34;color:#f4efe3}.first-preview-type>span{color:#d8af68;font-size:54px}.first-preview-type p{font-family:Georgia,serif;font-size:43px;line-height:1.16;margin:24px}.first-preview-type small{letter-spacing:.2em;font-size:10px}.orbit-label{display:block;font-family:Georgia,serif;font-style:italic;text-align:center;margin-top:12px;font-size:15px;color:#5e6759}.edition-seal{position:absolute;bottom:1px;right:0;background:#a66749;color:#fff7e5;border:1px solid #e2b992;border-radius:50%;width:85px;height:85px;box-shadow:0 0 0 5px #a66749;display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:Georgia,serif;font-size:32px;line-height:1}.edition-seal small{font-family:'Segoe UI',sans-serif;font-size:10px;letter-spacing:.15em;margin-top:5px}.cover-foot{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid #253b3029;padding-top:25px;font-size:11px;color:#677060;margin-top:25px;gap:20px}.cover-foot>span:first-child{letter-spacing:.15em}.site-footer{max-width:1280px;padding:24px 6% 32px;margin:auto;display:flex;justify-content:space-between;color:#727a6b;font-size:10px;letter-spacing:.13em}.text-button{padding:0;background:none;font-size:12px;color:#5b6959;border-bottom:1px solid #9caa8b}.scene-intro{text-align:center}.scene-intro h2{font-size:clamp(38px,4.5vw,60px);margin:18px 0}.scene-intro>p:last-child{color:#6d7264;font-size:16px}.drawers{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:50px auto 30px}.drawer{position:relative;min-height:300px;padding:25px 18px 40px;background:#e1dfcc;border:1px solid #babca3;box-shadow:inset 0 0 0 8px #eeebda,0 9px 0 #c5c7af;display:flex;align-items:center;flex-direction:column;transition:transform .25s,box-shadow .25s}.drawer:nth-child(2){background:#d9e1d1;box-shadow:inset 0 0 0 8px #e5ebdf,0 9px 0 #b5c3ad}.drawer:nth-child(3){background:#e9d8c1;box-shadow:inset 0 0 0 8px #f2e6d5,0 9px 0 #d0bda3}.drawer:hover{transform:translateY(-8px)}.drawer-index{align-self:flex-start;font-size:12px;letter-spacing:.1em}.drawer-glyph{font-size:62px;margin:6px 0 12px;line-height:1.3;color:#866c43}.drawer-title{font-family:Georgia,serif;font-size:28px;letter-spacing:-.04em}.drawer-caption{font-size:13px;color:#64715e;margin-top:8px}.drawer-handle{width:45px;height:6px;background:#a28d5f;border:1px solid #806f4b;border-radius:3px;margin-top:25px;box-shadow:0 3px 3px #42432b30}.drawer.visited:after{content:'✧';position:absolute;right:20px;top:15px;color:#667747}.hub-bottom{text-align:center;margin-top:44px}.progress-label{font-size:12px;margin-top:15px;color:#727a65}.music-panel{position:fixed;right:25px;top:82px;width:360px;max-width:calc(100vw - 30px);z-index:50;background:#fffaf0;border:1px solid #c4c8ad;box-shadow:0 14px 50px #17261f30;padding:22px;border-radius:8px}.music-heading{display:flex;justify-content:space-between;gap:15px;align-items:start}.music-heading h3{font-size:29px;margin:10px 0}.music-heading .eyebrow{font-size:9px}.music-panel>p{font-size:13px;margin-bottom:15px}.icon-button{background:transparent;width:34px;height:34px;font-size:28px;line-height:1}.music-panel iframe{border:0;border-radius:12px;width:100%;height:352px}.music-panel .music-hint{font-size:12px;margin-top:8px;color:#6d7468}.music-panel>a{font-size:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.noscript{padding:30px;text-align:center;background:#fff0d5}@keyframes scene-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1440px){.cover{padding-left:40px;padding-right:40px}}
@media(max-width:760px){.masthead{height:77px;padding:0 6%}.mast-date{display:none}.wordmark-text{font-size:9px;margin-left:8px}.wordmark{font-size:33px}.music-toggle{font-size:11px;padding:6px 12px;gap:7px}.scene{padding:38px 6%}.cover{grid-template-columns:1fr;gap:18px;padding-top:35px}.cover-copy{position:relative;z-index:1}.cover h1{font-size:clamp(44px,12vw,64px);margin-top:20px}.cover h1 em{display:inline}.cover-lede{font-size:15px;margin-top:20px}.cover-art{grid-row:2;width:85%;max-width:400px;justify-self:center;margin-top:10px}.art-mat{aspect-ratio:1.08}.cover-copy>.handwritten{display:inline-block;margin-left:15px;font-size:16px}.cover-foot{margin-top:12px;flex-direction:column;gap:8px;text-align:center}.admission{margin:22px 0}.button{font-size:14px;padding:13px 18px;gap:16px}.site-footer{padding:22px 6%;gap:20px;font-size:9px}.site-footer .text-button{font-size:11px}.drawers{grid-template-columns:1fr;gap:24px;margin-top:32px}.drawer{min-height:170px;display:grid;grid-template-columns:65px 1fr;grid-template-rows:30px 45px 25px 22px;text-align:left;align-items:center;padding:15px 25px 22px}.drawer-index{grid-column:2;align-self:center;font-size:10px}.drawer-glyph{grid-row:1/5;grid-column:1;font-size:45px;margin:0}.drawer-title{grid-column:2;font-size:27px}.drawer-caption{grid-column:2;margin-top:0}.drawer-handle{grid-column:2;margin-top:14px;width:38px}.music-panel{right:15px;top:70px;max-height:calc(100dvh - 90px);overflow:auto}.edition-seal{width:65px;height:65px;font-size:26px}.scene-intro h2{font-size:38px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* A paper theatre, with the same palette across every drawer. */
:root{--forest:#294737;--ink:#253b30;--paper:#f4efe3;--ochre:#b48041;--muted:#64715e}body{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23887950' opacity='.035' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}button{min-height:44px}h1:focus,h2:focus,h3:focus{outline:none}.eyebrow,.art-caption,.mast-date,.wordmark-text,.cover-foot,.site-footer{font-size:12px}.mast-date{letter-spacing:.12em}.music-toggle{font-size:14px}.cover{grid-template-columns:1fr 1.1fr}.cover h1{font-size:clamp(48px,5.2vw,72px)}.cover-art{padding-top:18px;transform:rotate(1.5deg)}.art-mat{aspect-ratio:1.05;background:#dfcbae;border:10px solid #e8dcc5;display:flex;flex-direction:column;justify-content:center}.art-mat img{height:auto;object-fit:contain;aspect-ratio:1.5}.cover-art-note{font-family:Georgia,serif;font-size:21px;font-style:italic;text-align:center;display:block;padding:17px 8px;color:#624d31}.edition-seal{bottom:10px}.admission>span:nth-child(2){font-size:12px}.admission-note{font-size:13px}.button{font-size:15px}.cover-foot>span:first-child{font-size:11px}.art-caption{font-size:11px}.wordmark-text{font-size:11px}.masthead{position:relative;z-index:30}.sprite{display:block;width:120px;height:120px;flex-shrink:0;background-image:url('assets/story-sprites.webp');background-size:300% 200%;background-repeat:no-repeat}.sprite.piano{background-position:0 0}.sprite.butterfly{background-position:50% 0}.sprite.glider{background-position:100% 0}.sprite.cake{background-position:0 100%}.sprite.envelope{background-position:50% 100%}.sprite.spark{background-position:100% 100%}.cabinet-picture{max-width:710px;margin:32px auto -70px;border:8px solid #e6d9c0;box-shadow:0 6px 32px #443c2f17}.cabinet-picture img{display:block;width:100%;height:auto}.drawers{position:relative;z-index:1;margin-top:30px;max-width:980px}.drawer{min-height:290px;background-image:linear-gradient(135deg,#fff2,transparent)}.drawer-glyph{width:100px;height:100px;margin:0 0 10px}.drawer-caption{font-size:14px}.drawer-index{font-size:12px}.menu-secret{margin-top:24px;font-size:14px}.little-note{max-width:520px;margin:16px auto 0;padding:22px;background:#ede3d2;border:1px solid #d1bd99;font-size:15px;animation:scene-in .5s ease}.little-note span{font-family:Georgia,serif;font-style:italic;color:#7d6143}.progress-label{font-size:13px}.scene-topline{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:35px}.back-button{background:transparent;border-bottom:1px solid #a7af99;padding:5px 0;font-size:14px}.scene-topline .eyebrow{font-size:11px}.scene-intro h2{line-height:1.15}.imagine-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:38px;align-items:center;margin-top:40px}.imagination-stage{height:440px;position:relative;overflow:hidden;background:#e7ddc7;border:9px solid #eae1ce;box-shadow:0 0 0 1px #c2b795,0 10px 30px #473c2810}.imagination-stage:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,#fffcf2,transparent 75%);z-index:1;opacity:.8;pointer-events:none;transition:opacity 1.2s}.imagination-landscape{position:absolute;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.1);transition:opacity 1.5s,transform 7s ease}.stage-label{position:absolute;top:18px;left:15px;right:15px;text-align:center;z-index:6;font-size:10px;letter-spacing:.13em;color:#6e6956}.piano-button{position:absolute;width:230px;height:230px;left:50%;top:49%;transform:translate(-50%,-50%);z-index:3;background:transparent;border-radius:50%;transition:transform 1s,opacity 1s}.piano-button .sprite{width:100%;height:100%}.piano-button:hover{transform:translate(-50%,-53%)}.piano-button:focus-visible{outline-offset:-4px}.piano-button.played{animation:piano-pulse .65s ease}.stage-sentence{position:absolute;z-index:7;bottom:15px;left:12px;right:12px;text-align:center;background:#faf4e7e8;padding:11px 14px;border:1px solid #fff7e1;font-family:Georgia,serif;font-size:19px;line-height:1.3;color:#3f513a;box-shadow:0 5px 10px #00000008}.flying-butterfly{position:absolute;width:68px;height:68px;opacity:0;z-index:4;pointer-events:none;transition:opacity 1s}.flying-butterfly.one{left:18%;top:24%}.flying-butterfly.two{right:15%;top:50%;width:46px;height:46px;transform:rotate(-18deg)}.flying-butterfly.three{left:40%;top:14%;width:35px;height:35px;transform:rotate(20deg)}.gliding{position:absolute;top:16%;left:56%;z-index:4;width:155px;height:155px;opacity:0;transition:opacity 1s}.imagination-stage[data-step='1'] .flying-butterfly,.imagination-stage[data-step='2'] .flying-butterfly{opacity:1;animation:float-wing 4s ease-in-out infinite alternate}.imagination-stage[data-step='1'] .flying-butterfly.two,.imagination-stage[data-step='2'] .flying-butterfly.two{animation-delay:-2s}.imagination-stage[data-step='1'] .imagination-landscape{opacity:.22}.imagination-stage[data-step='2'] .imagination-landscape{opacity:1;transform:scale(1)}.imagination-stage[data-step='2']:before{opacity:0}.imagination-stage[data-step='2'] .gliding{opacity:1;animation:glide 9s ease-in-out infinite alternate}.imagination-stage[data-step='2'] .piano-button{transform:translate(-93%,3%) scale(.55);opacity:.9}.concert-ticket{background:#eee5ce;border:1px solid #bcb497;outline:1px solid #bcb497;outline-offset:-7px;padding:23px;transform:rotate(2deg);box-shadow:4px 7px 0 #dfd7c1}.ticket-top,.ticket-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:10px;letter-spacing:.06em}.ticket-venue{font-family:Georgia,serif;font-size:38px;line-height:1.05;letter-spacing:-.04em;margin:24px 0 18px}.concert-ticket>p:not(.ticket-venue){font-size:16px;line-height:1.55}.concert-ticket>p span{font-size:13px}.ticket-bottom{border-top:1px dashed #8f9475;padding-top:17px;margin-top:23px;font-size:9px}.ticket-bottom>span:nth-child(2){font-size:26px;color:#937040}.side-note{font-size:16px;line-height:1.8;margin:30px 8px 0;color:#64715e}.imagine-sidebar>.handwritten{margin:12px 8px;font-size:19px}.imagination-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:27px}.step-buttons{display:flex;gap:8px;flex-wrap:wrap}.step-buttons button{background:transparent;border:1px solid #c1c9b5;padding:8px 12px;font-size:13px;border-radius:30px}.step-buttons button[aria-pressed='true']{background:#dfdfc9;border-color:#7b8d65}.secondary{background:#e9e4d4;border:1px solid #b8bca7;color:#344d3a}.journey-choice{text-align:center;padding-top:23px;margin-top:30px;border-top:1px solid #c7c9b5;animation:scene-in .6s ease}.journey-choice>div{display:flex;justify-content:center;gap:14px;margin-top:22px;flex-wrap:wrap}.journey-choice .handwritten{font-size:22px}.explore-board{margin-top:40px}.landscape-window{position:relative;height:340px;overflow:hidden;border:9px solid #e8dfca;box-shadow:0 0 0 1px #c4bda7}.landscape-window>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.22,.68,.22,1)}.landscape-window>img.inverted{transform:rotate(180deg) scale(1.06)}.landscape-caption{position:absolute;top:20px;left:20px;font-size:11px;letter-spacing:.13em;color:#324b3a;background:#fff6e5db;padding:7px 12px}.perspective-button{position:absolute;right:18px;bottom:18px;border:1px solid #ebdfbf;background:#fff9e8ee;padding:10px 16px;border-radius:30px;font-size:14px;box-shadow:0 4px 12px #263c321f}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:55px;max-width:690px;margin:-40px auto 0;position:relative;z-index:2;padding:0 20px}.photo-card{background:#fffcf2;padding:12px 12px 17px;box-shadow:2px 8px 25px #353b2824;transform:rotate(-4deg);transition:transform .3s}.photo-card:nth-child(2){transform:rotate(4deg);margin-top:32px}.photo-card:hover{transform:rotate(0) translateY(-6px)}.photo-card img{display:block;width:100%;height:280px;object-fit:cover;object-position:center}.photo-card>span{display:block;font-family:Georgia,serif;font-style:italic;font-size:17px;margin-top:12px;line-height:1.4}.perspective-note{text-align:center;font-size:15px;margin-top:35px;color:#627058;min-height:26px}.postcard-trigger{margin:35px auto 0;display:flex;align-items:center;gap:20px;background:none;text-align:left;padding:12px 25px;border-top:1px solid #b4bda6;border-bottom:1px solid #b4bda6;width:fit-content;max-width:100%}.postcard-trigger>.sprite{width:100px;height:100px}.postcard-trigger strong{display:block;font-family:Georgia,serif;font-size:25px;font-weight:400;line-height:1.2;margin:8px 0}.postcard-trigger small{font-size:13px;color:#6b7762}.postcard{display:grid;grid-template-columns:1fr 1fr;background:#eee4d0;border:1px solid #b8ad90;max-width:740px;margin:30px auto;padding:34px;gap:34px;box-shadow:4px 8px 0 #ddd4bf;animation:scene-in .7s ease}.postcard-title{position:relative}.postcard-title h3{font-size:34px;line-height:1.15;margin:17px 0 70px}.postage{position:absolute;bottom:0;left:0;border:1px dashed #8a7450;padding:8px 13px;font-family:Georgia,serif;font-size:20px;display:flex;gap:12px;align-items:center;transform:rotate(-6deg)}.postage small{font-family:'Segoe UI',sans-serif;font-size:9px;line-height:1.3;letter-spacing:.1em}.postcard-body{border-left:1px solid #c4bda5;padding-left:26px;font-size:16px;line-height:1.85}.postcard-body>p+p{margin-top:18px}.postcard-body>.handwritten{font-size:16px;display:block}.scene-next{text-align:center;margin-top:45px}.birthday-stage{position:relative;max-width:560px;margin:25px auto 0;min-height:370px;display:flex;justify-content:center;align-items:center}.birthday-stage .cake{width:340px;height:340px;transition:filter 1s;position:relative;z-index:2}.birthday-stage.blown .cake{clip-path:inset(10% 0 0 0)}.birthday-orbit{position:absolute;inset:0;pointer-events:none;color:#ae7b3c;font-size:30px}.birthday-orbit span{position:absolute;animation:twinkle 3s ease-in-out infinite alternate}.birthday-orbit span:nth-child(1){left:12%;top:12%}.birthday-orbit span:nth-child(2){right:12%;top:18%;font-size:40px;animation-delay:-1s}.birthday-orbit span:nth-child(3){left:4%;top:60%;font-size:24px}.birthday-orbit span:nth-child(4){right:4%;top:66%;font-size:20px;animation-delay:-2s}.birthday-orbit span:nth-child(5){left:46%;top:0;font-size:18px}.cake-butterfly{position:absolute;width:75px;height:75px;right:16%;top:25%;z-index:5;background-color:transparent;animation:float-wing 3s ease-in-out infinite alternate}.cake-butterfly.shy{animation:butterfly-away 1.8s ease both}.cake-whisper{font-family:Georgia,serif;font-size:14px;font-style:italic;position:absolute;right:-15px;top:18%;width:150px;line-height:1.4;transform:rotate(8deg);color:#856c44}.birthday-actions{text-align:center}.wish-note{font-family:Georgia,serif;font-style:italic;font-size:23px;line-height:1.4;color:#826446;margin:15px auto 25px;max-width:500px}.letter-trigger{background:none;display:flex;align-items:center;justify-content:center;gap:20px;margin:12px auto;font-family:Georgia,serif;font-size:27px;text-align:left;padding:10px 15px}.letter-trigger>.sprite{width:120px;height:120px}.letter-trigger small{font-family:'Segoe UI',sans-serif;display:block;font-size:14px;margin-top:9px;color:#6b775e}.letter{max-width:760px;margin:40px auto 0;background:#fffcf3;padding:48px 60px;border:1px solid #dfd4bb;box-shadow:4px 6px 0 #e9e0cf,8px 12px 0 #e1d8c9;animation:unfold .8s ease;transform-origin:top}.letter-meta{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.15em;color:#8c896f;border-bottom:1px solid #d3d4bc;padding-bottom:20px;margin-bottom:32px;gap:15px}.letter h3{font-size:34px;line-height:1.2;margin-bottom:26px}.letter>p{font-size:17px;line-height:1.95;margin-bottom:22px;color:#465043}.letter>.signature{font-family:Georgia,serif;font-style:italic;font-size:44px;color:#8a543a;line-height:1.2;margin-top:26px}.letter-end{text-align:center;border-top:1px solid #dcd6c0;padding-top:26px;margin-top:35px}.letter-end>span{color:#bd8a4d;font-size:30px}.letter-end>p{font-family:Georgia,serif;font-style:italic;font-size:24px;margin:8px 0 18px}.photo-dialog{border:0;padding:14px 14px 18px;background:#fffaf0;max-width:min(600px,92vw);max-height:90dvh;overflow:auto;color:#294737;box-shadow:0 20px 70px #0006}.photo-dialog::backdrop{background:#15251ed9;backdrop-filter:blur(5px)}.photo-dialog>img{display:block;max-width:100%;width:auto;max-height:72dvh;margin:auto;object-fit:contain}.photo-dialog>p{text-align:center;font-family:Georgia,serif;font-style:italic;margin:14px 10px 0;font-size:17px}.photo-close{position:sticky;top:0;margin-left:auto;display:block;background:#fffaf0;border-radius:50%;z-index:2}.music-panel{max-height:calc(100dvh - 105px);overflow:auto}.music-panel .eyebrow{font-size:11px}.music-panel .music-hint{font-size:12px;line-height:1.6}.site-footer{border-top:1px solid #253b3020;margin-top:25px}.site-footer>span{font-size:10px}.site-footer .text-button{font-size:12px}.imagine-sidebar{min-width:0}#confetti{position:absolute;inset:-50px;pointer-events:none;overflow:visible;z-index:9}.confetto{position:absolute;left:var(--x);top:0;color:var(--color);font-size:var(--size);animation:confetti-fall var(--duration) ease-out var(--delay) both;will-change:transform,opacity}.music-toggle[aria-expanded='true']{background:#e2e3ce}.music-toggle[aria-expanded='true']>span:first-child{color:#ad7940}.no-motion *{animation:none!important;transition:none!important}
@keyframes float-wing{from{transform:translate(0,0) rotate(-8deg)}to{transform:translate(12px,-17px) rotate(9deg)}}@keyframes glide{from{transform:translate(-22px,0) rotate(-6deg)}to{transform:translate(35px,38px) rotate(7deg)}}@keyframes twinkle{from{opacity:.45;transform:scale(.85)}to{opacity:1;transform:scale(1.1)}}@keyframes butterfly-away{to{transform:translate(70px,-80px) rotate(30deg);opacity:0}}@keyframes piano-pulse{50%{filter:drop-shadow(0 0 14px #e1b654)}}@keyframes unfold{from{opacity:0;transform:perspective(900px) rotateX(-10deg) translateY(20px)}to{opacity:1;transform:none}}@keyframes confetti-fall{0%{opacity:0;transform:translateY(-30px) rotate(0)}10%{opacity:1}100%{opacity:0;transform:translateY(460px) rotate(300deg)}}
@media(max-width:960px){.cover{gap:25px}.cover h1{font-size:54px}.cover-copy>.handwritten{font-size:17px}.mast-date{font-size:10px}.imagine-layout{gap:25px;grid-template-columns:1.4fr 1fr}.imagination-stage{height:380px}.concert-ticket{padding:20px}.ticket-top{font-size:9px}.ticket-venue{font-size:32px}.ticket-bottom>span:last-child{font-size:8px}.imagination-controls{align-items:flex-start;flex-direction:column}.imagination-controls>.button{align-self:center}.photo-card img{height:255px}.side-note{font-size:15px}}
@media(max-width:760px){.cover{grid-template-columns:1fr;padding-top:32px}.cover h1{font-size:clamp(44px,12vw,64px)}.cover h1 em{display:inline}.cover-art{width:92%;margin-top:12px}.art-mat{aspect-ratio:1.13;border-width:7px}.cover-art-note{font-size:20px;padding:12px 8px}.cover-lede{font-size:16px}.cover-copy>.handwritten{display:block;margin-left:0}.art-caption{font-size:10px}.wordmark-text{font-size:10px}.music-toggle{font-size:12px}.cover-foot{font-size:12px}.masthead{padding:0 5%}.scene{padding-left:6%;padding-right:6%}.eyebrow{font-size:11px}.scene-topline{margin-bottom:25px;gap:10px}.scene-topline .eyebrow{font-size:9px;letter-spacing:.1em}.back-button{font-size:13px}.scene-intro h2{font-size:clamp(31px,8.5vw,44px)}.scene-intro>p:last-child{font-size:15px}.cabinet-picture{margin-bottom:0;margin-top:25px;border-width:5px}.drawers{margin-top:22px;gap:20px}.drawer{min-height:160px;grid-template-columns:78px 1fr;grid-template-rows:24px 36px 30px 20px;padding:20px 22px;column-gap:12px}.drawer-glyph{width:75px;height:75px;margin:0}.drawer-title{font-size:25px}.drawer-caption{font-size:13px}.drawer-index{font-size:11px}.hub-bottom{margin-top:30px}.imagine-layout{grid-template-columns:1fr;gap:25px;margin-top:25px}.imagination-stage{height:350px;border-width:6px}.piano-button{width:210px;height:210px}.stage-label{font-size:9px;letter-spacing:.08em}.stage-sentence{font-size:18px;bottom:10px;left:8px;right:8px}.gliding{width:120px;height:120px;left:56%}.imagine-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:center}.concert-ticket{grid-row:1/3;padding:16px;transform:rotate(-2deg)}.ticket-top{font-size:8px;letter-spacing:0;flex-wrap:wrap;gap:0}.ticket-venue{font-size:25px;margin:15px 0 12px}.concert-ticket>p:not(.ticket-venue){font-size:12px}.concert-ticket>p span{font-size:11px}.ticket-bottom{font-size:8px;margin-top:12px;padding-top:10px}.ticket-bottom>span:last-child{display:none}.side-note{margin:0;font-size:13px;line-height:1.7}.imagine-sidebar>.handwritten{margin:0;font-size:16px;align-self:start}.imagination-controls{margin-top:25px;gap:22px;align-items:center}.step-buttons{justify-content:center;gap:6px;width:100%}.step-buttons button{font-size:11px;padding:7px 10px}.journey-choice .handwritten{font-size:20px}.journey-choice>div{gap:10px}.journey-choice .button{font-size:13px}.landscape-window{height:290px;border-width:6px}.landscape-caption{font-size:9px;left:10px;top:12px;letter-spacing:.08em;padding:5px 8px}.perspective-button{right:10px;bottom:15px;font-size:12px;padding:9px 12px}.photo-pair{gap:20px;padding:0 5px;margin:22px auto 0}.photo-card{padding:7px 7px 12px}.photo-card img{height:200px;object-position:50% 50%}.photo-card>span{font-size:14px;margin-top:9px}.photo-card:nth-child(2){margin-top:22px}.perspective-note{font-size:14px;line-height:1.6}.postcard-trigger{padding:12px 8px;gap:12px}.postcard-trigger>.sprite{width:80px;height:80px}.postcard-trigger strong{font-size:22px}.postcard-trigger .eyebrow{font-size:10px}.postcard-trigger small{font-size:12px}.postcard{grid-template-columns:1fr;padding:25px;gap:20px}.postcard-title h3{font-size:31px;margin-bottom:10px;padding-right:60px}.postage{bottom:15px;left:auto;right:-8px;display:block;text-align:center;font-size:17px;padding:7px}.postage small{display:block;font-size:8px}.postcard-body{padding:20px 0 0;border-left:0;border-top:1px solid #c4bda5;font-size:15px}.postcard-body>p br{display:none}.birthday-stage{min-height:315px;margin-top:30px}.birthday-stage .cake{width:285px;height:285px}.cake-butterfly{width:58px;height:58px;right:10%;top:27%}.cake-whisper{right:0;top:8%;font-size:12px;width:110px}.birthday-orbit span:nth-child(1){left:2%;top:25%;font-size:22px}.birthday-orbit span:nth-child(2){right:3%;top:43%;font-size:25px}.birthday-orbit span:nth-child(3){left:4%;top:70%;font-size:18px}.birthday-orbit span:nth-child(4){right:1%;top:83%}.birthday-orbit span:nth-child(5){left:25%;top:2%}.birthday-actions>.button{max-width:100%;gap:12px;font-size:13px}.wish-note{font-size:21px}.letter-trigger{font-size:23px;gap:12px;padding:10px 0}.letter-trigger>.sprite{width:95px;height:95px}.letter-trigger small{font-size:13px}.letter{padding:28px 23px;margin-top:25px;box-shadow:3px 4px 0 #e9e0cf,6px 8px 0 #e1d8c9}.letter-meta{font-size:9px;letter-spacing:.08em;margin-bottom:25px}.letter h3{font-size:28px;line-height:1.3}.letter>p{font-size:16px;line-height:1.85}.letter>.signature{font-size:39px}.letter-end>p{font-size:22px}.site-footer>span{font-size:9px;letter-spacing:.07em}.site-footer .text-button{font-size:11px}.music-panel{top:70px;max-height:calc(100dvh - 85px)}#confetti{inset:0}}
@media(max-width:360px){.wordmark-text{display:none}.photo-card img{height:165px}.photo-card>span{font-size:13px}.step-buttons{gap:4px}.step-buttons button{font-size:10px;padding:6px 8px}.drawer-title{font-size:23px}.drawer-caption{font-size:12px}.cover-copy>.button{width:100%}.postcard-trigger strong{font-size:20px}}
.cover-art.opening{animation:open-theatre .65s ease both}.letter{scroll-margin-top:25px}@keyframes open-theatre{to{transform:scale(1.06);filter:brightness(1.1);opacity:.15}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.confetto{display:none}.imagination-stage[data-step='2'] .gliding{transform:rotate(-6deg)}}
