@font-face{font-family:Instrument;src:url(/birthday-instrument.ttf) format("truetype");font-display:swap}
@font-face{font-family:DM;src:url(/birthday-dm.ttf) format("truetype");font-display:swap}
#birthday-story{color:#211c1b;background:#fffdfb;font:16px DM,Arial,sans-serif;--accent:#934765;--line:#e9e0dc}
#birthday-story *{box-sizing:border-box}
#birthday-story body{margin:0}
#birthday-story a{color:inherit}
#birthday-story .mast,#birthday-story footer{display:flex;align-items:center;justify-content:space-between;padding:1.25rem clamp(1.25rem,6vw,6rem);border-bottom:1px solid var(--line);font-size:.8rem;color:#6d5d5c}
#birthday-story .brand{font-size:1.45rem;font-weight:800;text-decoration:none;color:#211c1b}
#birthday-story .brand span{font-size:.95rem;font-weight:500}
#birthday-story main{width:min(1120px,calc(100% - 2.5rem));margin:auto}
#birthday-story .intro{padding:clamp(3rem,8vw,7rem) 0 clamp(2rem,5vw,4rem);text-align:center}
#birthday-story .eyebrow{font-size:.73rem;letter-spacing:.17em;text-transform:uppercase;color:var(--accent)}
#birthday-story h1,#birthday-story h2{font-family:Instrument,Georgia,serif;font-weight:400;letter-spacing:-.025em;line-height:.98;margin:0}
#birthday-story h1{font-size:clamp(3.8rem,9vw,8.4rem)}
#birthday-story h1 em{color:var(--accent);font-weight:inherit}
#birthday-story .intro>p:last-child,#birthday-story .chapter-head p{color:#635656;line-height:1.6}
#birthday-story .intro>p:last-child{font-size:clamp(1rem,2vw,1.28rem);margin:1.25rem 0 0}
#birthday-story figure{margin:0;min-width:0}
#birthday-story .photo{display:block;padding:0;border:0;background:none;cursor:zoom-in;width:100%}
#birthday-story .photo img{width:100%;height:auto;display:block;border-radius:5px}
#birthday-story .cover{max-width:960px;margin:auto}
#birthday-story nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.1rem;padding:1.1rem 0;border-bottom:1px solid var(--line);font-size:.82rem}
#birthday-story nav a{text-decoration:none;padding:.35rem;color:#6b3549}
#birthday-story nav a:hover,#birthday-story footer a:hover{text-decoration:underline}
#birthday-story .chapter{padding:clamp(3.5rem,9vw,8rem) 0 0;scroll-margin:1rem}
#birthday-story .chapter-head{display:grid;grid-template-columns:1.4fr 1fr;align-items:end;gap:1rem;margin-bottom:1.6rem}
#birthday-story .chapter-head h2{font-size:clamp(2.8rem,6vw,5.5rem)}
#birthday-story .chapter-head p{margin:0;max-width:28ch}
#birthday-story .photo-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;gap:clamp(.7rem,2vw,1.6rem)}
#birthday-story .photo-grid figure{grid-column:span 6}
#birthday-story .play figure:first-child{grid-column:span 7}
#birthday-story .play figure:nth-child(2){grid-column:span 5}
#birthday-story .people figure:first-child{grid-column:span 7}
#birthday-story .people figure:last-child{grid-column:span 5}
#birthday-story .wish figure:first-child,#birthday-story .wish figure:nth-child(2){grid-column:span 6}
#birthday-story .wish figure:last-child{grid-column:2 / 12}
#birthday-story .together figure{grid-column:span 4}
#birthday-story .together figure:nth-child(4){grid-column:3 / span 4}
#birthday-story footer{margin-top:clamp(3.5rem,9vw,8rem);border-top:1px solid var(--line);border-bottom:0}
#birthday-story dialog{max-width:100vw;max-height:100vh;width:100%;height:100%;padding:0;border:0;background:transparent;color:#fff}
#birthday-story dialog::backdrop{background:#171216f5}
#birthday-story .viewer{min-height:100%;display:grid;place-content:center;justify-items:center;padding:3.4rem 1rem 1rem}
#birthday-story .viewer img{max-width:94vw;max-height:76vh;object-fit:contain}
#birthday-story .viewer button{color:#fff;background:#34272e;border:1px solid #8c7680;border-radius:50%;font:inherit;width:2.6rem;height:2.6rem;cursor:pointer}
#birthday-story .viewer .close{position:fixed;right:1rem;top:.65rem;font-size:1.5rem}
#birthday-story .viewer-nav{display:flex;align-items:center;gap:1rem;margin-top:.65rem;text-align:center}
#birthday-story .viewer-nav p{margin:0;font-size:.9rem;max-width:60vw}
#birthday-story :focus-visible{outline:3px solid #b66a8c;outline-offset:4px}
@media(max-width:640px){#birthday-story .chapter-head{grid-template-columns:1fr;gap:.55rem}#birthday-story .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#birthday-story .photo-grid figure,#birthday-story .play figure:first-child,#birthday-story .play figure:nth-child(2),#birthday-story .people figure:first-child,#birthday-story .people figure:last-child,#birthday-story .wish figure:first-child,#birthday-story .wish figure:nth-child(2),#birthday-story .wish figure:last-child,#birthday-story .together figure,#birthday-story .together figure:nth-child(4){grid-column:span 2}#birthday-story .together figure:not(:last-child){grid-column:span 1}}
#birthday-story .intro{background:#fff0f6;border-radius:1.4rem;margin:1.5rem auto;position:relative;padding-inline:1rem}
#birthday-story .intro>p:not(.eyebrow){color:#635656}
#birthday-story .download-all{display:inline-block;margin:1.25rem 0 .4rem;padding:.8rem 1.25rem;border-radius:999px;background:#762047;color:#fff;text-decoration:none;font-weight:700}
#birthday-story .download-note{font-size:.77rem!important;margin:.35rem 0 0!important}
#birthday-story .chapter{background:#fff0f6;border-radius:1rem;margin-top:clamp(2rem,7vw,5rem);padding:clamp(1rem,4vw,2.7rem)}
#birthday-story .chapter:nth-of-type(odd){background:#fff5d9}
#birthday-story .chapter-head h2{color:#762047}

#birthday-story .birthday-poster{max-width:760px;margin:1.5rem auto 2.5rem;padding:clamp(1rem,4vw,2.8rem) clamp(.7rem,4vw,2.5rem);text-align:center;background:#fffaeb;color:#711b45;border:1px solid #efe3c9}
#birthday-story .poster-happy{font:400 clamp(.85rem,2.4vw,1.45rem) Instrument,Georgia,serif;letter-spacing:.55em;text-transform:uppercase;margin:0 0 .35rem;padding-left:.55em}
#birthday-story .birthday-poster h1{font:900 clamp(1.65rem,9vw,5.7rem)/1 DM,Arial,sans-serif;letter-spacing:.14em;padding-left:.14em;text-transform:uppercase;margin:0 0 .7rem}
#birthday-story .poster-photos{position:relative;max-width:560px;margin:auto;aspect-ratio:1 / 1.12;isolation:isolate}
#birthday-story .poster-photos img{position:absolute;display:block;object-fit:cover}
#birthday-story .poster-anchor{inset:3% 13% 6% 11%;width:76%;height:91%;object-position:48% 40%;filter:grayscale(1);clip-path:polygon(23% 0,71% 0,71% 10%,93% 10%,93% 37%,100% 37%,100% 75%,92% 75%,92% 100%,10% 100%,10% 84%,0 84%,0 28%,23% 28%)}
#birthday-story .poster-cut{border:clamp(2px,.45vw,5px) solid #fffaeb}
#birthday-story .cut-play{left:3%;top:31%;width:28%;height:32%;object-position:52% 42%}
#birthday-story .cut-arcade{left:68%;top:8%;width:28%;height:23%;object-position:58% 45%}
#birthday-story .cut-five{left:68%;top:41%;width:29%;height:24%;object-position:24% 56%}
#birthday-story .cut-wish{left:26%;top:67%;width:43%;height:31%;object-position:64% 52%}
#birthday-story .cut-hug{left:67%;top:65%;width:27%;height:33%;object-position:55% 38%}
#birthday-story .poster-signoff{border-top:1px solid #711b45;margin:.75rem auto 0;padding:.7rem 0 0;width:86%;font:italic clamp(1.5rem,5vw,3.3rem)/1 Instrument,Georgia,serif}
#birthday-story .poster-link{display:inline-block;color:#711b45;font-size:.84rem;margin:.9rem 0 0}
#birthday-story .intro h2{font-size:clamp(2.25rem,6vw,4.8rem)}

#birthday-story .paper-head{position:relative;max-width:580px;margin:0 auto 1.2rem;padding:clamp(.75rem,4vw,2rem) 3% .5rem}
#birthday-story .birthday-poster .paper-title{margin:0;padding:0;font-size:inherit;letter-spacing:normal;display:grid;justify-items:center;gap:.1em}
#birthday-story .paper-word{display:flex;justify-content:center;align-items:center;white-space:nowrap}
#birthday-story .paper-happy{font-size:clamp(2.3rem,9vw,5.65rem)}
#birthday-story .paper-birthday{font-size:clamp(1.75rem,6.8vw,4.35rem)}
#birthday-story .paper-word span{position:relative;display:inline-block;isolation:isolate;margin:0 -.015em;padding:.08em .1em .11em;font:900 1em/.92 DM,Arial,sans-serif;color:var(--letter,#be342f);transform:rotate(var(--tilt,-8deg)) translateY(var(--offset,0));filter:drop-shadow(.015em .035em .025em #61370e42)}
#birthday-story .paper-word span::before,#birthday-story .paper-word span::after{content:"";position:absolute;z-index:-1;clip-path:polygon(7% 1%,91% 3%,97% 16%,95% 68%,100% 94%,75% 97%,50% 95%,13% 100%,1% 84%,4% 46%,0 15%)}
#birthday-story .paper-word span::before{inset:-.045em;background:#f3e5cb}
#birthday-story .paper-word span::after{inset:.015em;background:var(--paper,#f9dbaf)}
#birthday-story .paper-word span:nth-child(2){--letter:#47283a;--paper:#f3b7c7;--tilt:6deg;--offset:-.035em;font-family:Georgia,serif}
#birthday-story .paper-word span:nth-child(3){--letter:#a86000;--paper:#ffe39b;--tilt:-5deg;--offset:-.065em}
#birthday-story .paper-word span:nth-child(4){--letter:#155b82;--paper:#d5e8f2;--tilt:8deg;--offset:.045em}
#birthday-story .paper-word span:nth-child(5){--letter:#27673e;--paper:#cddab1;--tilt:10deg;--offset:-.015em}
#birthday-story .paper-word span:nth-child(6){--letter:#336139;--paper:#e5e6b8;--tilt:-5deg;--offset:.045em}
#birthday-story .paper-word span:nth-child(7){--letter:#145176;--paper:#f2bdc8;--tilt:4deg}
#birthday-story .paper-word span:nth-child(8){--letter:#8f5000;--paper:#ffe18c;--tilt:9deg;--offset:-.04em}
#birthday-story .paper-birthday span:nth-child(1){--letter:#135778;--paper:#e8e3cb}
#birthday-story .paper-birthday span:nth-child(3){--letter:#b73532;--paper:#f3d2ba}
#birthday-story .paper-birthday span:nth-child(4){--letter:#763500;--paper:#ffba7c}
#birthday-story .paper-birthday span:nth-child(5){--letter:#68334c;--paper:#f3b7c7;font-family:Georgia,serif}
#birthday-story .paper-doodle{position:absolute;pointer-events:none;font:700 clamp(.9rem,4vw,2rem)/1 Georgia,serif}
#birthday-story .paper-star{top:5%;left:14%;color:#cf6689;transform:rotate(-18deg)}
#birthday-story .paper-heart{top:5%;right:15%;color:#c48613;transform:rotate(13deg)}
#birthday-story .paper-flower{bottom:-6%;right:10%;color:#bd3b42;transform:rotate(10deg)}
@media(max-width:360px){#birthday-story .paper-birthday{font-size:1.48rem}#birthday-story .paper-happy{font-size:2.05rem}}

#birthday-story .paper-head{max-width:625px;padding:2.1rem 4% 1rem;margin-bottom:1.15rem}
#birthday-story .birthday-poster .paper-title{gap:0}
#birthday-story .paper-word{filter:drop-shadow(0 .14em .15em #6d4b2422)}
#birthday-story .paper-happy{font-size:clamp(2.65rem,10vw,6.2rem);position:relative;z-index:1}
#birthday-story .paper-birthday{font-size:clamp(1.75rem,7.3vw,4.55rem);margin-top:-.13em}
#birthday-story .paper-word span{margin:0 -.045em;padding:.13em .12em .15em;filter:drop-shadow(.025em .042em .014em #8b68446e);transform:rotate(var(--tilt)) translateY(var(--offset,0)) scale(var(--sx,1),var(--sy,1))}
#birthday-story .paper-word span::before,#birthday-story .paper-word span::after{clip-path:polygon(6% 1%,27% 4%,47% 1%,75% 3%,93% 0,99% 14%,96% 29%,100% 48%,97% 72%,100% 87%,94% 98%,76% 96%,55% 100%,40% 97%,20% 100%,3% 95%,0 77%,3% 58%,1% 35%,4% 20%,0 11%)}
#birthday-story .paper-word span::before{inset:-.075em;background:repeating-linear-gradient(132deg,#8b6f4510 0 1px,transparent 1px 5px),#f4e8cf}
#birthday-story .paper-word span::after{inset:.005em;background:linear-gradient(30deg,#fff7e62c,transparent 40%),repeating-linear-gradient(148deg,#7e5e3217 0 1px,transparent 1px 11px),var(--paper)}
#birthday-story .paper-happy span:nth-child(1){--tilt:-14deg;--sx:1.06;--sy:1.14;--letter:#cc2d26;--paper:#ffe6b9}
#birthday-story .paper-happy span:nth-child(2){--tilt:4deg;--sx:.88;--sy:.94;--letter:#412724;--paper:#f6b9cb;font-family:Georgia,serif;font-weight:400}
#birthday-story .paper-happy span:nth-child(3){--tilt:-8deg;--sy:1.14;--letter:#b86d00;--paper:#ffe9a2}
#birthday-story .paper-happy span:nth-child(4){--tilt:13deg;--sx:.92;--letter:#1d638f;--paper:#c5dbe3}
#birthday-story .paper-happy span:nth-child(5){--tilt:15deg;--sy:1.07;--letter:#2e704b;--paper:#e4d8a9}
#birthday-story .paper-birthday span:nth-child(1){--tilt:-15deg;--sy:1.14;--letter:#0b537d;--paper:#eee0b7;font-family:Georgia,serif}
#birthday-story .paper-birthday span:nth-child(2){--tilt:7deg;--sx:.76;--sy:.91;--letter:#31784e;--paper:#f4d3cd;text-transform:lowercase}
#birthday-story .paper-birthday span:nth-child(3){--tilt:-8deg;--letter:#bb302a;--paper:#f4dfb9}
#birthday-story .paper-birthday span:nth-child(4){--tilt:-6deg;--sx:.88;--sy:.87;--letter:#432c23;--paper:#f49d5b;font-weight:500}
#birthday-story .paper-birthday span:nth-child(5){--tilt:6deg;--sx:.92;--letter:#4a2931;--paper:#edb2c6;font-weight:400}
#birthday-story .paper-birthday span:nth-child(6){--tilt:-5deg;--letter:#42642f;--paper:#d9dfac;font-family:Georgia,serif}
#birthday-story .paper-birthday span:nth-child(7){--tilt:2deg;--letter:#195477;--paper:#d1dce0}
#birthday-story .paper-birthday span:nth-child(8){--tilt:10deg;--sy:1.04;--letter:#a56400;--paper:#f5bfd0}
#birthday-story .paper-star{z-index:3;top:7%;left:13%;font-size:clamp(1.45rem,5vw,3rem);text-shadow:2px 2px #f6d8bf}
#birthday-story .paper-heart{top:1%;right:31%;z-index:3;color:#ad6600}
#birthday-story .paper-flower{bottom:-4%;right:15%;z-index:3;font-size:clamp(1.2rem,4.5vw,2.5rem)}
#birthday-story .paper-rays{position:absolute;color:#c7433d;z-index:3;font:bold clamp(.95rem,3vw,1.7rem) Georgia,serif;right:3%;top:41%;transform:rotate(-20deg)}
@media(max-width:420px){#birthday-story .paper-happy{font-size:clamp(2.15rem,10.4vw,2.9rem)}#birthday-story .paper-birthday{font-size:clamp(1.35rem,7.2vw,1.9rem)}#birthday-story .paper-head{padding-inline:0}#birthday-story .paper-rays{right:0}}

#birthday-story .paper-section-title{display:flex;flex-wrap:wrap;align-items:center;gap:.12em .23em;font-size:clamp(1.25rem,3.55vw,2.75rem)!important;margin:0 0 .28em!important;line-height:1.16}
#birthday-story .intro .paper-section-title{justify-content:center}
#birthday-story .paper-section-title .paper-word{filter:none}
#birthday-story .paper-section-title .paper-word span{padding:.12em .09em .16em;margin:0 -.025em;--letter:#a8303b;--paper:#f9d6b9;--tilt:-6deg}
#birthday-story .paper-section-title .paper-word span:nth-child(5n+2){--letter:#624438;--paper:#f3b9ca;--tilt:5deg}
#birthday-story .paper-section-title .paper-word span:nth-child(5n+3){--letter:#895004;--paper:#ffe39a;--tilt:-4deg}
#birthday-story .paper-section-title .paper-word span:nth-child(5n+4){--letter:#1c587a;--paper:#cddfe7;--tilt:5deg}
#birthday-story .paper-section-title .paper-word span:nth-child(5n){--letter:#326242;--paper:#dce6bc;--tilt:-3deg}
#birthday-story .chapter-head{gap:1.25rem;align-items:center}
#birthday-story .chapter-head p{line-height:1.55}
#birthday-story nav{gap:.55rem .72rem}
#birthday-story nav a,#birthday-story .poster-link,#birthday-story .download-all,#birthday-story footer a{border:1px solid #d7bda8;box-shadow:1px 2px 0 #dccbb6;border-radius:.18rem .4rem .22rem .45rem;padding:.45rem .8rem;font-weight:700;color:#522b39;background:#fce6b3;text-decoration:none}
#birthday-story nav a:nth-child(2){background:#f4ced9}
#birthday-story nav a:nth-child(3){background:#d7e6ef}
#birthday-story nav a:nth-child(4){background:#e2ebcc}
#birthday-story .poster-link{background:#f3c9d7}
#birthday-story .download-all{background:#762047;border-color:#762047;color:#fff;padding:.8rem 1.15rem}
#birthday-story nav a:hover,#birthday-story .poster-link:hover,#birthday-story .download-all:hover,#birthday-story footer a:hover{text-decoration:underline}
#birthday-story .intro,#birthday-story .chapter{border:1px solid #e7d4c0;box-shadow:2px 4px 0 #e6d7c44d}
#birthday-story footer a{background:#f7ecd7}
@media(max-width:640px){#birthday-story .chapter-head{gap:.55rem}#birthday-story .paper-section-title{gap:.18em .25em}}

#birthday-story button.photo{min-height:0}
#birthday-story .paper-title .paper-word{color:inherit}
#birthday-story .paper-word span{color:var(--letter,#be342f)}
.birthday-gallery .gallery-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:none;border:0;padding:0;margin:0}
.birthday-gallery .gallery-heading h1,.birthday-gallery .gallery-heading .eyebrow{display:none}
.birthday-gallery .gallery-heading #count{margin:0}
