:root{--ink:#101210;--paper:#f1f0e9;--muted:#a5aba4;--accent:#d7e9a8;--gutter:5.5vw;--serif:Georgia,'Times New Roman',serif;--ease:cubic-bezier(.2,.75,.25,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--ink);color:var(--paper);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button{touch-action:manipulation}img,video{display:block;width:100%}em{font-family:var(--serif);font-weight:400}h1,h2,p{margin:0}button[hidden],[hidden]{display:none!important}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:var(--paper);color:var(--ink);padding:15px}.skip:focus{top:20px}.grain{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:.027;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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.8' filter='url(%23n)'/%3E%3C/svg%3E")}.progress{position:fixed;left:0;top:0;height:2px;width:100%;background:var(--accent);z-index:40;transform:scaleX(0);transform-origin:left}.masthead{position:absolute;top:0;left:0;right:0;z-index:5;padding:28px var(--gutter);display:flex;align-items:center;justify-content:flex-end}.monogram{font-family:var(--serif);font-size:38px;line-height:1;letter-spacing:-5px}.monogram span{font-style:italic}.masthead-caption{font-size:12px;letter-spacing:.04em}.motion{border:1px solid #f1f0e940;background:#10121038;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;backdrop-filter:blur(10px)}.eyebrow{font-size:12px;line-height:1.5;letter-spacing:.13em;text-transform:uppercase}
.hero{height:100svh;min-height:720px;max-height:1250px;position:relative;isolation:isolate;overflow:hidden}.hero-photo{position:absolute;right:0;top:0;width:65%;height:100%;overflow:hidden}.hero-photo img{height:100%;object-fit:cover;object-position:50% 26%;filter:saturate(.62);transform:scale(1.025);animation:arrive 2.2s var(--ease) both}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#101210 13%,#101210f0 25%,#10121080 45%,transparent 69%),linear-gradient(0deg,#101210b0,transparent 32%,#10121020)}.hero-copy{position:absolute;left:var(--gutter);top:28%;z-index:1}.hero-eyebrow{margin-bottom:30px;color:#c7cdc5}.hero h1{font-size:clamp(90px,10.8vw,180px);font-weight:400;line-height:.91;letter-spacing:-.075em}.hero h1 span,.hero h1 em{display:block}.hero h1 em{margin-left:.38em;color:var(--paper);letter-spacing:-.07em}.hero-dedication{font-size:15px;line-height:1.65;color:#c4cbc2;margin:32px 0 0 4px}.hero-bottom{position:absolute;left:var(--gutter);right:var(--gutter);bottom:40px;display:flex;align-items:end;justify-content:space-between;font-size:13px}.hero-bottom>p{line-height:1.5}.hero-bottom>p em{font-size:24px}.scroll-link{display:flex;gap:20px;align-items:center;font-size:12px}.down{width:40px;height:40px;border:1px solid #fff6;border-radius:50%;display:grid;place-items:center;font-size:20px;transition:background .3s}.scroll-link:hover .down{background:#ffffff22}.hero-edition{font-family:var(--serif);font-size:18px;font-style:italic}.hero-copy>*{animation:rise 1.4s var(--ease) both}.hero-copy h1{animation-delay:.12s}.hero-dedication{animation-delay:.25s}@keyframes arrive{from{transform:scale(1.1);opacity:.3}to{transform:scale(1.025);opacity:1}}@keyframes rise{from{transform:translateY(25px);opacity:0}to{transform:translateY(0);opacity:1}}
.section-rule{display:flex;justify-content:space-between;gap:25px;border-top:1px solid #ffffff30;padding-top:20px;font-size:12px;line-height:1.5}.section-rule span:last-child{color:var(--muted)}.opening{padding:150px var(--gutter)}.opening-copy{font-size:clamp(48px,6.3vw,100px);font-weight:400;line-height:1.12;letter-spacing:-.045em;margin:0 0 0 13vw}.opening-copy em{color:var(--accent)}.opening-foot{display:flex;align-items:center;justify-content:space-between;margin-left:13vw}.opening-foot p{font-size:14px;line-height:1.8;color:var(--muted)}.asterisk{font-size:55px;line-height:1;color:var(--accent)}
.scene{height:165vh;position:relative}.scene-sticky{height:100svh;min-height:600px;position:sticky;top:0;overflow:hidden;display:flex;align-items:center;justify-content:center}.scene-window{position:relative;height:100%;width:100%;overflow:hidden;clip-path:inset(var(--scene-inset,12%) var(--scene-inset,12%) 0);will-change:clip-path}.scene-window>img{height:100%;object-fit:cover;object-position:50% 37%;filter:saturate(.6)}.scene-shade{position:absolute;inset:0;background:linear-gradient(0deg,#060b09ba,transparent 60%)}.scene-copy{position:absolute;left:var(--gutter);bottom:11%;}.scene-copy p{font-size:clamp(60px,8.5vw,140px);line-height:.96;letter-spacing:-.06em;margin-top:25px}.scene-copy em{display:block;margin-left:.5em}.scene-index{position:absolute;right:var(--gutter);bottom:6%;font-size:12px;letter-spacing:.06em}
.memories{padding:140px var(--gutter) 140px}.memories-heading{display:grid;grid-template-columns:1fr 1.65fr 1fr;align-items:end;margin-bottom:110px;gap:20px}.memories-heading>.eyebrow{align-self:start}.memories h2{font-size:clamp(65px,7vw,120px);font-weight:400;letter-spacing:-.055em;line-height:1}.memories-heading>p:last-child{font-size:14px;line-height:1.7;color:var(--muted);text-align:right}.memory-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:70px 3vw;align-items:start}.memory{margin:0}.basketball{grid-column:1/6}.basketball .media-wrap{aspect-ratio:4/5}.media-wrap{position:relative;overflow:hidden;background:#20251f}.media-wrap>img,.media-wrap>video{width:100%;height:100%;object-fit:cover;filter:saturate(.78)}.memory figcaption{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #ffffff30;margin-top:18px;padding-top:14px;font-size:12px;line-height:1.6}.memory figcaption span:last-child{color:var(--muted)}.clip-control{position:absolute;bottom:18px;right:18px;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid #ffffff88;background:#10121090;backdrop-filter:blur(10px)}.memory-quote{grid-column:8/13;align-self:center;margin-top:40px}.memory-quote>span{font:100px/.8 var(--serif);color:var(--accent)}.memory-quote p{font-size:clamp(36px,4.3vw,70px);letter-spacing:-.04em;line-height:1.12}.memory-quote em{color:var(--muted)}.friendship{grid-column:7/13;margin-top:-60px}.friendship .media-wrap{aspect-ratio:4/5}.friendship img{object-fit:contain}.laughter{grid-column:1/6;grid-row:2;margin-top:120px}.laughter .media-wrap{aspect-ratio:4/5}
.bridge{position:relative;min-height:650px;height:88svh;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center}.bridge-image{position:absolute;inset:0;background:linear-gradient(#10121070,#101210c0),url('media/mandel-camera-portrait-1440.webp') 50% 25%/cover;filter:saturate(.3);transform:scale(1.03)}.bridge-copy{position:relative}.bridge-title{font-size:clamp(75px,12vw,180px);letter-spacing:-.055em;line-height:1;margin-top:25px}.bridge-bottom{position:absolute;bottom:35px;font-size:13px}
.letter-section{background:var(--paper);color:var(--ink);padding:80px var(--gutter) 135px}.letter-section .section-rule{border-color:#10121040}.letter-section .section-rule span:last-child{color:#565f53}.letter-layout{display:grid;grid-template-columns:1fr 1fr;gap:12vw;margin-top:110px}.letter-title h2{font-size:clamp(70px,8vw,125px);font-weight:400;letter-spacing:-.05em;line-height:1.02;margin-top:30px}.letter-star{display:block;font-size:70px;line-height:1;margin-top:70px;color:#465238}.letter-copy{font-size:18px;line-height:1.85;max-width:540px}.letter-copy p+p{margin-top:26px}.letter-copy .letter-lead{font-size:clamp(23px,2.3vw,36px);font-family:var(--serif);line-height:1.4;letter-spacing:-.015em;margin-bottom:40px}.letter-copy .signature{font-size:14px;margin-top:50px}.signature em{font-size:28px}
.market{height:190vh;position:relative;background:#070a08;color:#e9f7c6}.market-sticky{height:100svh;min-height:680px;position:sticky;top:0;overflow:hidden;padding:78px var(--gutter) 38px;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,31vw);grid-template-rows:auto 1fr;gap:24px 4vw}.ticker-tape{position:absolute;left:0;right:0;top:0;height:38px;overflow:hidden;border-bottom:1px solid #a8d94d35;background:#0d120e}.ticker-track{width:max-content;display:flex;align-items:center;gap:48px;height:100%;font:12px/1 monospace;letter-spacing:.08em;transform:translateX(var(--ticker-x,0px));will-change:transform}.ticker-track b{color:#92e45e;font-weight:400;margin-left:7px}.market-head{grid-column:1/3;display:flex;justify-content:space-between;align-items:end}.market-head h2{font:400 clamp(70px,9vw,145px)/.8 Arial,sans-serif;letter-spacing:-.08em;margin-top:12px}.market-meta{display:flex;gap:18px;margin-top:18px;color:#738071;font:11px/1 monospace;letter-spacing:.08em}.market-quote{text-align:right}.quote-value{display:block;font:400 clamp(34px,5vw,75px)/1 monospace;letter-spacing:-.07em}.quote-change{display:block;margin-top:10px;color:#82df59;font:12px/1 monospace;letter-spacing:.08em}.chart-wrap{position:relative;min-height:360px;overflow:hidden;border:1px solid #d8ef9d20;background:linear-gradient(180deg,#17201580,#070a0800)}.chart-grid{position:absolute;inset:0;background-image:linear-gradient(#d8ef9d14 1px,transparent 1px),linear-gradient(90deg,#d8ef9d14 1px,transparent 1px);background-size:100% 25%,12.5% 100%}.chart-wrap svg{position:absolute;inset:6% 2% 10%;width:96%;height:84%;overflow:visible}.chart-line{fill:none;stroke:#b7f46e;stroke-width:5;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:var(--chart-dash,1);filter:drop-shadow(0 0 9px #aef55e80)}.chart-area{fill:#95db4c;opacity:var(--chart-opacity,0)}.chart-dot{fill:#efffc9;opacity:var(--chart-opacity,0);filter:drop-shadow(0 0 10px #caff87)}.chart-labels{position:absolute;left:18px;right:18px;bottom:13px;display:flex;justify-content:space-between;font:11px/1 monospace;color:#90a18d}.trade-ticket{align-self:stretch;border:1px solid #bce8734a;background:#0d120ee8;padding:22px;display:flex;flex-direction:column}.ticket-title{display:flex;justify-content:space-between;border-bottom:1px solid #bce87335;padding-bottom:16px;font:12px/1 monospace;letter-spacing:.1em}.ticket-title span{color:#778475}.ticket-status{padding:18px 0 8px;display:flex;align-items:center;gap:10px;font:12px/1 monospace;letter-spacing:.1em}.status-dot{width:8px;height:8px;border-radius:50%;background:#d6a345}.status-filled{display:none;color:#bdfb73}.ticket-row{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid #bce87320;font:13px/1.3 monospace}.ticket-row span{color:#8d9d8a}.ticket-row strong{text-align:right;font-weight:500}.buy-value{color:#8fe65b}.market.order-filled .status-waiting{display:none}.market.order-filled .status-filled{display:inline}.market.order-filled .status-dot{background:#8ff459;box-shadow:0 0 15px #8ff459}.market.order-filled .trade-ticket{border-color:#9df461;box-shadow:0 0 50px #89e54b16}
.gift{position:relative;text-align:center;padding:135px var(--gutter) 0;background:radial-gradient(ellipse at 50% 50%,#253126 0%,#101210 65%)}.gift>.eyebrow{color:var(--muted)}.gift h2{font-size:clamp(45px,6.5vw,105px);font-weight:400;line-height:1.1;letter-spacing:-.05em;margin:35px 0 80px}.gift h2 em{color:var(--accent)}.domain-card{border-top:1px solid #ffffff35;border-bottom:1px solid #ffffff35;padding:35px 0 45px}.domain-prefix{font-size:12px;color:var(--muted)}.domain-name{font-size:clamp(34px,6.8vw,110px);letter-spacing:-.065em;line-height:1.1;padding:30px 0}.domain-name span{font-family:var(--serif);font-style:italic;color:var(--accent)}.domain-yours{font:italic 28px var(--serif)}.gift-note{font-size:16px;line-height:1.8;color:var(--muted);margin-top:45px}.signoff{font-size:clamp(26px,3.7vw,60px);letter-spacing:-.035em;margin:105px 0 100px}.signoff em{color:var(--accent)}footer{display:flex;justify-content:space-between;gap:25px;border-top:1px solid #ffffff30;padding:26px 0 85px;font-size:12px;color:var(--muted)}footer a span{margin-left:15px}
.soundtrack{position:fixed;bottom:22px;left:24px;z-index:25}.soundtrack>button{display:flex;align-items:center;gap:10px;border:1px solid #ffffff30;border-radius:40px;background:#101210ed;padding:12px 17px;font-size:12px;backdrop-filter:blur(15px);box-shadow:0 5px 25px #0002}.sound-symbol{display:flex;align-items:center;gap:3px;height:16px}.sound-symbol i{height:5px;width:2px;background:var(--accent)}.sound-symbol i:nth-child(2){height:13px}.sound-symbol i:nth-child(3){height:9px}.sound-symbol i:nth-child(4){height:16px}#soundtrack-player{position:absolute;bottom:58px;left:0;width:202px;height:202px;background:#101210;border:1px solid #ffffff25;border-radius:12px;box-shadow:0 15px 60px #0008;overflow:hidden;transition:opacity .25s ease,transform .25s ease}#soundtrack-player.is-minimized{opacity:0;transform:translateY(18px) scale(.85);pointer-events:none}#soundtrack-player iframe{border:0;display:block;width:200px;height:200px}#close-player{position:absolute;z-index:2;top:7px;right:7px;width:32px;height:32px;border:1px solid #ffffff70;border-radius:50%;background:#101210db;color:#fff;font-size:20px;line-height:1;display:grid;place-items:center;backdrop-filter:blur(8px)}.chapter-indicator{position:fixed;z-index:10;bottom:28px;right:24px;display:flex;gap:16px;font-size:12px;padding:9px 13px;border-radius:25px;background:#101210d9;color:var(--paper);backdrop-filter:blur(12px)}#chapter-progress{color:var(--muted)}
.js .reveal{opacity:0;transform:translateY(35px);transition:opacity 1s var(--ease),transform 1.2s var(--ease)}.js .reveal.visible{opacity:1;transform:none}body.paused *{animation-play-state:paused!important}body.paused .reveal{opacity:1;transform:none;transition:none}
@media(min-width:1500px){.hero-copy{top:30%}.opening,.memories,.letter-section,.gift{padding-left:max(var(--gutter),calc((100vw - 1550px)/2));padding-right:max(var(--gutter),calc((100vw - 1550px)/2))}}
@media(max-width:1000px){.hero h1{font-size:12vw}.hero-photo{width:75%}.hero-copy{top:31%}.memories-heading{grid-template-columns:1fr 1.8fr}.memories-heading>p:last-child{display:none}.letter-layout{gap:7vw}}
@media(max-width:700px){:root{--gutter:6vw}.masthead{padding-top:22px}.monogram{font-size:33px}.masthead-caption{font-size:12px}.motion{width:40px;height:40px}.hero{min-height:720px;height:100svh;max-height:1100px}.hero-photo{width:100%;height:83%;top:0}.hero-photo img{object-position:56% 24%;filter:saturate(.65)}.hero-shade{background:linear-gradient(0deg,#101210 0%,#101210 8%,#101210b3 27%,transparent 65%,#10121045)}.hero-copy{top:auto;bottom:155px;left:6vw}.hero h1{font-size:19vw;line-height:.97;letter-spacing:-.075em}.hero h1 em{margin-left:.22em}.hero-eyebrow{font-size:12px;letter-spacing:.05em;margin-bottom:20px}.hero-dedication{font-size:14px;margin-top:23px}.hero-bottom{bottom:58px}.hero-bottom>p{font-size:12px}.hero-bottom>p em{font-size:21px}.hero-edition{display:none}.scroll-link{gap:12px}.down{width:36px;height:36px}.opening{padding:65px var(--gutter) 65px}.section-rule span:last-child{max-width:48%;text-align:right}.opening-copy{font-size:10vw;margin:65px 0 50px;line-height:1.18}.opening-foot{margin:0;gap:25px;align-items:flex-start}.opening-foot p{font-size:13px;max-width:235px}.asterisk{font-size:44px}.scene{height:125svh}.scene-sticky{height:85svh;min-height:520px}.scene-window{clip-path:inset(var(--scene-inset,5%) var(--scene-inset,5%) 0)}.scene-window>img{object-position:54% 35%}.scene-copy{bottom:12%;left:8vw}.scene-copy p{font-size:15vw}.scene-copy .eyebrow{font-size:12px}.scene-index{font-size:12px;bottom:5%;right:8vw}.memories{padding:75px var(--gutter) 90px}.memories-heading{display:block;margin-bottom:55px}.memories h2{font-size:18vw;margin-top:25px}.memory-grid{grid-template-columns:repeat(6,1fr);gap:50px 4vw}.basketball{grid-column:1/6}.memory-quote{grid-column:2/7;margin:5px 0 10px;justify-self:end}.memory-quote>span{font-size:65px}.memory-quote p{font-size:11vw}.friendship{grid-column:2/7;margin:0}.laughter{grid-column:1/6;grid-row:auto;margin-top:15px}.memory figcaption{font-size:12px;gap:10px;flex-wrap:wrap}.clip-control{width:44px;height:44px}.bridge{height:75svh;min-height:520px}.bridge-image{background-position:53% 30%}.bridge-title{font-size:21vw}.bridge-bottom{font-size:12px}.letter-section{padding:55px var(--gutter) 85px}.letter-layout{grid-template-columns:1fr;gap:45px;margin-top:65px}.letter-title h2{font-size:22vw}.letter-star{display:none}.letter-copy{font-size:17px}.letter-copy .letter-lead{font-size:27px}.gift{padding:90px var(--gutter) 0}.gift h2{font-size:11.5vw;margin:30px 0 55px}.gift h2 em{display:block}.domain-card{padding:25px 0 35px}.domain-name{font-size:7.8vw;letter-spacing:-.07em;padding:27px 0}.domain-yours{font-size:25px}.gift-note{font-size:15px;margin-top:35px}.signoff{font-size:8vw;margin:65px 0}.signoff em{display:block}.soundtrack{left:14px;bottom:14px}.soundtrack>button{padding:11px 13px}.chapter-indicator{right:14px;bottom:17px;gap:8px;font-size:12px;padding:8px 10px}#chapter-name{display:none}footer{font-size:12px;padding-bottom:90px}footer a{text-align:right}}
@media(max-width:700px){.market{height:175vh}.market-sticky{min-height:650px;padding:58px var(--gutter) 30px;grid-template-columns:1fr;grid-template-rows:auto 38vh auto auto;gap:15px}.market-head{grid-column:1;align-items:end}.market-head h2{font-size:19vw}.quote-value{font-size:8vw}.quote-change{font-size:10px}.chart-wrap{min-height:0}.trade-ticket{grid-column:1;padding:14px}.ticket-status{padding-bottom:11px}.ticket-row,.ticket-total{padding:9px 0;font-size:11px}.market-disclaimer{grid-column:1;font-size:9px}.chart-labels{font-size:9px}.ticker-track{font-size:10px}.gift{padding-top:75px}}
@media(min-width:701px){.hero-shade{background:linear-gradient(90deg,#101210 20%,#101210 35%,#101210b0 43%,#10121030 57%,transparent 70%),linear-gradient(0deg,#101210b0,transparent 32%,#10121020)}.hero-bottom{bottom:80px}.scene-window>img{object-position:50% 20%}}
.entering{overflow:hidden}.sound-entry{border:0;padding:35px;background:transparent;color:var(--paper);width:min(600px,100%);max-height:100svh;text-align:center;overflow:auto}.sound-entry::backdrop{background:#101210eb;backdrop-filter:blur(18px)}.sound-entry:not([open]){display:none}.entry-content h2{font-size:clamp(65px,10vw,120px);line-height:1;letter-spacing:-.06em;font-weight:400;margin:30px 0}.entry-content h2 em{color:var(--accent)}.entry-track{font-size:13px;line-height:1.7;color:var(--muted);margin:0 0 30px}.entry-content button{display:block;margin:auto}#enter-sound{border:1px solid var(--accent);border-radius:40px;background:var(--accent);color:var(--ink);padding:17px 26px;font-size:15px}#enter-sound span{margin-left:20px}#enter-silent{border:0;background:transparent;text-decoration:underline;text-underline-offset:5px;font-size:13px;padding:20px;color:var(--muted)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}.scene{height:auto}.scene-sticky{position:relative}.scene-window{clip-path:none;will-change:auto}}

/* Reduced editorial copy: let the media carry the page. */
.letter-layout{margin-top:30px}.gift{padding-top:150px}.gift .domain-card{border-top:0}.gift footer{justify-content:center;padding-bottom:55px}.gift footer a{font-size:20px}.ticker-tape{color:#d9ddd7}

/* Give each memory the frame its source was made for. */
.memories{padding:12vw var(--gutter) 14vw}
.memory-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(70px,9vw,150px) 2.5vw}
.basketball{grid-column:1/9}
.basketball .media-wrap{aspect-ratio:16/9}
.friendship{grid-column:9/13;margin-top:11vw}
.friendship .media-wrap{aspect-ratio:4/5}
.laughter{grid-column:3/9;grid-row:2;margin-top:0}
.laughter .media-wrap{aspect-ratio:9/16}
.memory .media-wrap{box-shadow:0 35px 90px #0005}
.basketball video,.laughter video{object-position:center}

@media(max-width:700px){
  .memories{padding:18vw var(--gutter) 24vw}
  .memory-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:18vw 4vw}
  .basketball{grid-column:1/7}
  .friendship{grid-column:2/7;margin-top:0}
  .laughter{grid-column:1/6;grid-row:auto;margin-top:0}
}

/* A single, intentional birthday pause. */
.letter-section{min-height:82svh;padding:10vw var(--gutter);display:grid;place-items:center}
.letter-layout{display:block;width:100%;margin:0;text-align:center}
.letter-title h2{font-size:clamp(76px,10vw,170px);line-height:.86;letter-spacing:-.065em;margin:0}
.letter-title h2 em{display:inline-block;margin-top:.08em}
.letter-signoff{margin-top:clamp(45px,5vw,80px);font:clamp(18px,1.7vw,27px)/1.5 var(--serif)}
.letter-signoff span{color:#667061;margin-left:.35em}

@media(max-width:700px){
  .letter-section{min-height:72svh;padding:24vw var(--gutter)}
  .letter-title h2{font-size:20vw;line-height:.9}
  .letter-signoff{max-width:270px;margin:45px auto 0}
  .letter-signoff span{display:block;margin:8px 0 0}
}

.gift footer{margin-top:90px}

@media(max-width:700px){.motion{width:44px;height:44px}.soundtrack>button{min-height:44px}}

/* Let the mobile trade unfold in document flow so the filled order stays visible. */
@media(max-width:700px){
  .market{height:auto}
  .market-sticky{position:relative;height:auto;min-height:0;overflow:visible;display:block;padding:70px var(--gutter) 78px}
  .market-head{display:block}
  .market-head h2{font-size:clamp(64px,18vw,105px)}
  .market-quote{display:flex;align-items:baseline;gap:16px;text-align:left;margin-top:26px}
  .quote-value{font-size:clamp(35px,10vw,52px)}
  .quote-change{margin:0;font-size:11px}
  .chart-wrap{height:clamp(280px,75vw,410px);min-height:0;margin-top:26px}
  .trade-ticket{min-height:0;margin-top:18px}
  .gift{padding-bottom:0}
}

/* Keep a useful player available when mobile browsers reject sound. */
#soundtrack-player{width:266px;height:auto;padding:12px;background:#101210f5}
#soundtrack-player iframe{width:240px;height:200px}
#player-prompt{font-size:12px;line-height:1.35;color:var(--paper);margin:10px 0 6px}
.player-link{display:inline-block;font-size:11px;color:var(--muted);margin-top:10px;text-decoration:underline;text-underline-offset:3px}
.soundtrack{transition:opacity .25s ease,transform .25s ease}
body.gift-visible:not(.sound-playing) .soundtrack{opacity:0;pointer-events:none;transform:translateY(20px)}
body.gift-visible.sound-playing .soundtrack{bottom:auto;top:16px}
body.sound-needs-tap .soundtrack>button{border-color:#d7e9a8a8;color:var(--accent)}
@media(max-width:700px){#soundtrack-player{left:0;right:auto;bottom:56px}.gift{padding-top:85px}.gift footer{margin-top:58px}}
