/* Selected warm appearance: a quiet bottle, with the letter opening above it. */
/* Ambient motion uses only transform and opacity; the bottle's draw effects stay independent. */
.ember-home .starfield{animation:ember-stars 52s ease-in-out -17s infinite alternate}
.ember-home .aurora{animation:ember-aurora 64s ease-in-out -23s infinite alternate}
.ember-home .ambient-motes{position:absolute;inset:0;pointer-events:none}
.ember-home .ambient-motes i{position:absolute;display:block;width:var(--mote-size);height:var(--mote-size);animation:ember-mote-drift var(--drift-time) ease-in-out var(--drift-delay) infinite alternate}
.ember-home .ambient-motes span{display:block;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle,#fff0bdc9 0 7%,#ebcb8366 15%,#e5bd7020 34%,transparent 70%);opacity:.38;animation:ember-mote-glow var(--glow-time) ease-in-out var(--glow-delay) infinite alternate}
.ember-home .studio-light-ribbons i{--beam-angle:-23deg;--beam-x:18px;--beam-y:10px;--beam-opacity:.2;animation:ember-light-sway 38s ease-in-out -14s infinite alternate}
.ember-home .studio-light-ribbons i:nth-child(2){--beam-angle:19deg;--beam-x:-14px;--beam-y:16px;--beam-opacity:.12;animation-duration:47s;animation-delay:-31s}
.ember-home .studio-light-ribbons i:nth-child(3){--beam-angle:41deg;--beam-x:12px;--beam-y:-12px;--beam-opacity:.09;animation-duration:43s;animation-delay:-9s}
.ember-home .ocean{animation:ember-tide 42s ease-in-out -13s infinite alternate}
.ember-home .ocean i{--wave-angle:3deg;--wave-x:20px;--wave-y:5px;animation:ember-waterline 29s ease-in-out -11s infinite alternate}
.ember-home .ocean i:nth-child(2){--wave-angle:6deg;--wave-x:-16px;--wave-y:7px;animation-duration:37s;animation-delay:-23s}
.ember-home .ocean i:nth-child(3){--wave-angle:-6deg;--wave-x:24px;--wave-y:-4px;animation-duration:46s;animation-delay:-7s}
@keyframes ember-stars{from{transform:translate(-9px,5px)}to{transform:translate(9px,-6px)}}
@keyframes ember-aurora{from{transform:translate(-12px,8px) rotate(-30deg);opacity:.82}to{transform:translate(16px,-10px) rotate(-27deg);opacity:1}}
@keyframes ember-mote-drift{from{transform:translate(calc(var(--drift-x) * -1),var(--drift-y))}to{transform:translate(var(--drift-x),calc(var(--drift-y) * -1))}}
@keyframes ember-mote-glow{from{opacity:.18;transform:scale(.8)}to{opacity:.58;transform:scale(1.08)}}
@keyframes ember-light-sway{from{transform:translate(calc(var(--beam-x) * -1),calc(var(--beam-y) * -1)) rotate(var(--beam-angle));opacity:var(--beam-opacity)}to{transform:translate(var(--beam-x),var(--beam-y)) rotate(calc(var(--beam-angle) + 1.6deg));opacity:calc(var(--beam-opacity) * .65)}}
@keyframes ember-tide{from{transform:translate(-8px,2px) rotate(-7deg)}to{transform:translate(8px,-5px) rotate(-6.2deg)}}
@keyframes ember-waterline{from{transform:translate(0,0) rotate(var(--wave-angle));opacity:.72}to{transform:translate(var(--wave-x),var(--wave-y)) rotate(var(--wave-angle));opacity:1}}
.ember-home[data-ambient-paused] :is(.starfield,.aurora,.ambient-motes i,.ambient-motes span,.studio-light-ribbons i,.ocean,.ocean i){animation-play-state:paused}
@media(max-width:700px){.ember-home .ambient-motes i:nth-child(n+11){display:none}}
@media(prefers-reduced-motion:reduce){.ember-home :is(.starfield,.aurora,.ambient-motes i,.ambient-motes span,.studio-light-ribbons i,.ocean,.ocean i){animation:none!important}}
.ember-home{height:100dvh;overflow:hidden}
.ember-home .site-shell{padding-bottom:0;overflow:clip}
.ember-home .brand-mark{display:block;width:36px;height:36px;flex-shrink:0}
.ember-home .brand{flex-shrink:0}
.ember-home .brand>span,.ember-home .brand small{white-space:nowrap}
.ember-home .header-actions{flex-shrink:0}
.ember-home .experience{display:flex;flex-direction:row;justify-content:center;align-items:flex-start;min-height:0;gap:0;padding-top:12px}
.ember-home .bottle-side{width:min(620px,100%);padding:0}
.ember-home .bottle-stage{height:calc(100dvh - var(--reader-top,115px) - 62px - env(safe-area-inset-bottom));min-height:220px;max-height:760px;margin:0}
.ember-home .draw-area{padding:0!important;margin:0;position:relative}
.ember-home #status{position:relative;min-height:20px;height:auto;max-width:100%;padding:0 10px;margin:0;overflow:visible;opacity:1;clip-path:none;white-space:normal;font-size:10px;line-height:20px;letter-spacing:1.5px;color:#bfc6ae}
.ember-home .bottle-guide{position:absolute;bottom:27px;left:calc(50% - 10px);width:20px;height:30px;stroke:#dac797;stroke-width:1;stroke-linecap:round;opacity:0;pointer-events:none}
.ember-home[data-guide] .bottle-guide{opacity:.8;animation:bottle-invitation 2.6s ease-in-out infinite}
.ember-home[data-guide] #status{color:#ddcda5}
@keyframes bottle-invitation{0%,100%{transform:translateY(3px);opacity:.4}50%{transform:translateY(-3px);opacity:.9}}
.ember-home .reading-side{position:fixed;top:var(--reader-top,115px);left:0;right:0;width:100%;height:calc(100dvh - var(--reader-top,115px) - 18px - env(safe-area-inset-bottom));min-height:0;padding:16px 24px;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#abc4aa3d transparent;z-index:8;pointer-events:none}
.ember-home .letter-bundle{display:flex;flex-direction:column;align-items:center;flex:0 0 auto;width:100%;margin-block:auto;padding:0}
.ember-home .letter{max-width:460px;flex:none;pointer-events:auto}
.ember-home .letter-hint{flex:none;margin:18px 0 0;font-size:9px;letter-spacing:1px;color:#a4b3a0}
.ember-home[data-state=reading] .reading-side{pointer-events:auto}
.ember-home[data-state=unfolding] .bottle-button,.ember-home[data-state=reading] .bottle-button{opacity:.2;filter:blur(2px);transition:opacity .7s,filter .7s}
.ember-home[data-state=unfolding] .bottle-halo,.ember-home[data-state=reading] .bottle-halo{opacity:.4}
.ember-home[data-state=unfolding] .letter-hint{visibility:hidden}
.ember-home[data-state=unfolding] .draw-area,.ember-home[data-state=reading] .draw-area{visibility:hidden}
.bottle-reader-open,.bottle-reader-open body{overflow:hidden;overscroll-behavior:none}
.ember-home .letter-top{position:relative;min-height:24px;padding-right:32px}
.ember-home .letter-close{position:absolute;right:-10px;top:-12px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;color:#9c967e;background:transparent;transition:color .2s,background .2s}
.ember-home .letter-close:hover{color:#6d6c54;background:#bcae8014}
.ember-home .letter-close:focus-visible{outline:1px solid #8b8b65;outline-offset:-6px}
.ember-home[data-look] .letter-close>.icon{width:16px;height:16px;stroke-width:1.3;opacity:1}
.ember-home .studio-paper-corner{width:65px;height:46px;right:56px;opacity:.5}
.ember-home[data-look=ember] .heart-inscription{width:36px;height:30px;color:#bca67e;opacity:.72;border:0;border-radius:0;background:none;box-shadow:none;rotate:-7deg}
.ember-home .heart-inscription svg{display:block;width:100%;height:100%;overflow:visible}
.ember-home .about-dialog{max-width:480px}
.ember-home .about-intro{font:22px/1.9 "Songti SC","SimSun",serif;color:#decca5;letter-spacing:1.2px;margin:26px 0 29px;padding:0}
.ember-home .about-intro .intro-line{display:block}
.ember-home .about-intro .intro-pause{margin:20px 0 7px 24px;font-size:.82em;color:#b2bba7}
.ember-home .about-intro .intro-emphasis{border-bottom:1px solid #c6ba8555;padding-bottom:5px;color:#ebd9ae}
.ember-home .about-brief{padding-top:20px;border-top:1px solid #bbcfb320;color:#a4b0a0;font-size:11px;line-height:2}
.ember-home .about-brief p{font-size:inherit;margin:0 0 12px}
.ember-home .about-brief a{font-size:10px;color:#b6bea3;text-underline-offset:4px}
.ember-home .fallback{top:50%;transform:translate(-50%,-45%)}
.ember-home .toast{bottom:calc(24px + env(safe-area-inset-bottom))}
@media(min-width:701px){
 .ember-home .experience{display:grid;grid-template-columns:1.12fr 1fr;gap:36px;align-items:center}
 .ember-home .bottle-side{width:100%;min-width:0}
 .ember-home .reading-side{position:relative;top:auto;left:auto;right:auto;min-width:0;padding:16px 10px}
 .ember-home[data-state] .bottle-button{opacity:1;filter:none}
 .ember-home[data-state] .bottle-halo{opacity:1}
 .ember-home[data-state] .draw-area{visibility:visible}
 .ember-home .letter{padding-top:34px;padding-bottom:26px}
 .ember-home .letter blockquote{font-size:22px;line-height:1.95}
 .ember-home .letter blockquote.long{font-size:19px;line-height:1.85}
 .ember-home .letter blockquote.poem{font-size:19px;line-height:1.75}
}
@media(min-width:701px) and (max-width:1000px){
 .ember-home .experience{grid-template-columns:1fr 1fr;gap:22px}
 .ember-home .reading-side{padding:12px}
 .ember-home .letter{padding:26px 20px 20px}
 .ember-home .letter blockquote{font-size:19px}
 .ember-home .letter blockquote.long,.ember-home .letter blockquote.poem{font-size:17px}
}
@media(max-width:700px){
 .ember-home .site-shell{padding:18px 20px 0}
 .ember-home .site-header{gap:12px;padding-bottom:16px}
 .ember-home .header-actions{gap:8px}
 .ember-home .brand>span{font-size:22px}
 .ember-home .brand small{font-size:8px;letter-spacing:2px}
 .ember-home .brand-mark{width:32px;height:32px}
 .ember-home .bottle-stage{margin:0 -18px}
 .ember-home[data-mobile-reader] .reading-side{top:var(--reader-top,91px);height:calc(100dvh - var(--reader-top,91px) - 18px - env(safe-area-inset-bottom));padding:12px 22px}
 .ember-home .letter{max-width:420px;padding-bottom:17px}
 .ember-home .studio-paper-corner{width:55px;height:40px;right:48px}
 .ember-home .studio-letter-seal{left:23px;bottom:24px}
 .ember-home .letter-actions{position:relative;z-index:3}
 .ember-home .about-intro{font-size:20px;letter-spacing:.7px}
 .ember-home .about-intro .intro-pause{margin:17px 0 6px 20px}
}
@media(max-width:360px){
 .ember-home .site-shell{padding-left:16px;padding-right:16px}
 .ember-home .site-header{gap:6px}
 .ember-home .header-actions{gap:4px}
 .ember-home .brand{gap:8px}
 .ember-home .brand>span{font-size:20px;letter-spacing:4px}
 .ember-home .brand small{letter-spacing:1px}
 .ember-home .bottle-stage{margin-inline:-14px}
 .ember-home .about-intro{font-size:18px}
}
@media(prefers-reduced-motion:reduce){.ember-home[data-guide] .bottle-guide{animation:none}}
@media(max-width:319px){
 .ember-home .site-shell{padding-left:12px;padding-right:12px}
 .ember-home .site-header{gap:4px}
 .ember-home .brand{gap:6px}
 .ember-home .brand-mark{width:28px;height:28px}
 .ember-home .brand>span{font-size:19px;letter-spacing:2px}
 .ember-home .brand small{letter-spacing:.5px}
 .ember-home .header-actions{gap:2px}
 .ember-home .header-actions>.icon-button,.ember-home .about-button{min-width:32px}
 .ember-home .bottle-stage{margin-inline:-10px}
}
.write-button{gap:7px;font-size:11px}.inline-write{font:inherit;color:inherit;background:none;border:0;padding:0;text-decoration:underline;text-decoration-color:#b6bea350;text-underline-offset:3px}
.write-dialog input{font-family:inherit;font-size:12px;line-height:1.8}
.write-dialog{max-width:480px}.write-intro{font:17px/1.8 "Songti SC",SimSun,serif;color:#d9c8a5;margin:0 0 20px}.write-dialog fieldset{border:0;margin:0;padding:0;min-width:0}.write-dialog textarea{display:block;width:100%;resize:vertical;min-height:170px;max-height:40dvh;border:1px solid #d5caa3;border-radius:6px;background:#fff7e6;color:#62503e;font:18px/1.8 "Songti SC",SimSun,serif;padding:18px;outline-offset:3px}.write-dialog textarea::placeholder{color:#aa9f87;font-size:15px}.write-meta{display:flex;align-items:center;justify-content:space-between;color:#bac1ac;font-size:10px;margin:18px 0 9px}.write-meta label span{color:#82988e;margin-left:5px}.write-meta .over-limit{color:#e2b593}.write-dialog input{width:100%;border:1px solid #c0cbb52b;border-radius:5px;background:#ffffff04;color:#e4d6b9;font:12px/1.8 inherit;padding:10px 12px}.write-note{font-size:10px;line-height:1.8;color:#9daf9e;margin:16px 0 9px}.note-error{font-size:11px;line-height:1.8;color:#e7c09a;margin:10px 0;min-height:0}.note-error:empty{display:none}.note-submit{width:100%;min-height:45px;border:1px solid #e2d9ad66;border-radius:5px;background:#d9d5b5;color:#4b5648;font-size:12px;letter-spacing:2px;margin-top:8px}.note-submit:disabled{opacity:.45}.sr-label{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
@media(max-width:700px){.write-button>span{display:none}.write-button>.icon{width:17px;height:17px}.write-dialog textarea{font-size:17px;min-height:145px;padding:14px}.write-intro{font-size:16px;margin-bottom:14px}.write-meta{margin-top:13px}.write-note{margin-top:12px}}
