:root{font-family:Arial,Helvetica,sans-serif;color:#665048;background:#f8fcff;font-size:16px}*{box-sizing:border-box}body{margin:0}header{max-width:1140px;margin:auto;padding:25px 32px;display:flex;justify-content:space-between;gap:20px;font-size:14px}header b{font-family:Georgia,serif;font-size:20px;font-weight:normal;color:#ac5c54}.occasion{color:#947b72}.intro{text-align:center;padding:4px 20px 23px}.intro p{font-size:12px;letter-spacing:3px;margin:0 0 9px;color:#a77c6c}h1{font:normal clamp(31px,4.2vw,48px)/1.2 Georgia,serif;letter-spacing:-1px;color:#825146;margin:0 0 9px}h1 em{color:#d37967;font-weight:normal}.intro>span{font-size:15px;color:#96766a}.scene{max-width:1080px;width:calc(100% - 44px);margin:auto;position:relative;background:linear-gradient(145deg,#ddf3ff,#e9f8fd 55%,#fff0c9);border-radius:32px;overflow:hidden;border:1px solid #d0e5eb;box-shadow:0 18px 55px #9957460c}.wheel{position:relative;width:min(100%,680px);aspect-ratio:1;margin:0 auto}.frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}.cabin{position:absolute;width:19%;aspect-ratio:1;border:0;padding:0;background:transparent;transform:translate(-50%,-10%);cursor:pointer;z-index:2;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.cabin-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:var(--tint)}.cabin-inner{position:absolute;left:14.5%;top:39%;width:71%;height:44%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff8eb;color:#73594d;border-radius:3px;overflow:hidden;line-height:1.2;box-shadow:inset 0 0 8px #c6b7a935;pointer-events:none}.cabin-inner strong{font:normal clamp(10px,1.7vw,18px)/1.15 Georgia,serif;display:block}.cabin-inner small{font-size:clamp(8px,1vw,11px);margin-top:4px;color:#af8576}.cabin-inner img{width:100%;height:100%;object-fit:cover}.cabin:focus-visible{outline:3px solid #795548;outline-offset:3px;border-radius:16px}.cabin:hover{z-index:5}.cabin:hover .cabin-inner{background:#fffef7}.scene-note{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:14px;color:#9a5f50;pointer-events:none}.controls{display:flex;justify-content:center;align-items:center;gap:20px;margin:20px 20px 0}.controls button{font:14px Arial,sans-serif;border:1px solid #dcc7ba;border-radius:30px;background:#fffdf9;color:#886355;padding:11px 20px;cursor:pointer}.controls span{font:italic 16px Georgia,serif;color:#aa8273}.draft{text-align:center;font-size:12px;color:#9f887d;margin:16px 20px 24px}dialog{width:min(550px,calc(100% - 36px));border:1px solid #efd7c6;border-radius:24px;padding:36px;background:#fffaf5;color:#79594a;box-shadow:0 20px 90px #54352444}dialog::backdrop{background:#49312c66;backdrop-filter:blur(5px)}.close{position:absolute;right:12px;top:9px;border:0;background:none;font:30px Arial;color:#94695b;cursor:pointer;width:42px;height:42px}#memory-person{font-size:12px;letter-spacing:2px;color:#b18473}h2{font:normal 32px/1.2 Georgia,serif;margin:14px 0 24px}dialog video,dialog audio,dialog img{max-width:100%;width:100%;border-radius:10px}.empty{padding:30px 20px;background:#f6ece3;border-radius:15px;text-align:center}.empty p{margin:0;font-size:16px;line-height:1.6}.empty span{font-size:14px;color:#a28676;display:block;margin-top:12px}dialog a{color:#ab6654;display:inline-block;margin-top:15px}button:focus-visible{outline:3px solid #8a6c58;outline-offset:4px}@media(max-width:600px){header{padding:20px;justify-content:center}.occasion{display:none}.intro{padding:5px 15px 22px}.intro>span{font-size:14px;display:block;max-width:260px;margin:auto}.scene{width:calc(100% - 20px);border-radius:24px;padding:10px 0 26px}.wheel{width:110%;margin-left:-5%}.scene-note{font-size:12px;bottom:10px}.controls{gap:12px;flex-wrap:wrap}.controls span{font-size:14px}.cabin-inner strong{font-size:12px}.cabin-inner small{font-size:8px;margin-top:2px}dialog{padding:32px 24px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* A cheerful gift from two daughters to their mother. */
header b{font-family:Arial,Helvetica,sans-serif;font-weight:700;color:#39819b}.intro p{color:#47879e;font-weight:700}.intro h1{font-family:ui-rounded,"Arial Rounded MT Bold",Arial,sans-serif;font-weight:800;color:#39798e;letter-spacing:-1.5px}.intro>span{color:#65818a}.controls span{font:600 15px/1.5 Arial,sans-serif;color:#518092}.scene-note{color:#567c88}.controls button{border-color:#c8dde4;color:#39798e}h2{font-family:ui-rounded,Arial,sans-serif;font-weight:700;color:#48798a}

body{padding-bottom:24px}dialog{max-height:90dvh;overflow-y:auto;width:min(780px,calc(100% - 28px))}dialog .memory-photo{display:block;width:100%;height: min(58dvh,650px);object-fit:contain;background:#f0f5f5}dialog video{display:block;max-height:62dvh;background:#151c21}.gallery-nav{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:16px}.gallery-nav button{width:48px;height:44px;border-radius:24px;border:1px solid #bdd6df;background:#f5fbfd;color:#39798e;font-size:24px;cursor:pointer}.gallery-nav button:disabled{opacity:.3;cursor:default}.gallery-nav span{min-width:65px;text-align:center;font-size:14px;font-variant-numeric:tabular-nums}.video-status{font-size:14px;line-height:1.5}dialog a{color:#39798e;font-size:14px}#memory-title{padding-right:12px}@media(max-width:600px){dialog{padding:36px 16px 20px}h2{font-size:25px;margin-bottom:16px}.memory-photo{touch-action:pan-y}}

.intro .story-theme{display:block;font:600 clamp(17px,2.3vw,21px)/1.4 Arial,sans-serif;color:#518092;margin:10px auto 12px;max-width:none}.intro .story-intro{max-width:560px;margin:0 auto 5px;font:normal 15px/1.7 Arial,sans-serif;letter-spacing:0;color:#65818a}.closing{text-align:center;max-width:580px;margin:40px auto 12px;padding:0 24px}.closing-label{font-size:11px;font-weight:700;letter-spacing:2px;color:#6994a1}.closing h2{font-size:clamp(23px,3vw,30px);margin:12px 0 16px}.closing>p:not(.closing-label){font-size:15px;line-height:1.8;color:#65818a}.closing .closing-love{font-weight:700;color:#39798e!important;margin:22px 0 4px}.closing .signature{font:italic 26px Georgia,serif!important;color:#39798e!important;margin:4px 0 30px}#memory-story{font-size:15px;line-height:1.65;color:#65818a;margin:-10px 0 22px}@media(max-width:600px){.intro .story-intro{font-size:14px;max-width:340px}.closing{margin-top:30px}#memory-story{font-size:14px;margin-top:-5px}}
