/* Original Aparté composition: quiet typography, an orbit and a single drawn thread. */
:root{--entry-bg:#f9edf3;--entry-accent:#b77b99;--entry-ink:#725c6a}
html[data-entry],html[data-entry] body{background:var(--entry-bg)!important}html[data-entry] body:after{background:var(--entry-bg)!important}
.entry-screen{box-sizing:border-box;color:var(--entry-ink);background:var(--entry-bg);isolation:isolate;font-family:-apple-system,'PingFang SC',sans-serif}
.entry-screen *{box-sizing:border-box}.entry-screen [hidden]{display:none!important}.entry-screen button{cursor:pointer;touch-action:manipulation}.entry-screen button:active{opacity:.65}.entry-screen :focus-visible{outline:1px solid var(--entry-accent);outline-offset:5px}
.entry-top{position:relative;text-align:center;flex:none;font:9px/1.8 Georgia,'Songti SC',serif;letter-spacing:4px;opacity:.65}.entry-top>span{margin:0 12px}
.entry-content{position:relative;width:min(100%,320px);margin:auto;text-align:center;display:flex;flex-direction:column;align-items:center;padding:32px 0;animation:entry-appear .55s ease-out both}
.entry-emblem{width:96px;height:96px;position:relative;display:grid;place-items:center;margin-bottom:34px;flex:none}
.entry-emblem img{width:56px;height:56px;border-radius:16px;box-shadow:0 2px 12px #9e788c0a;animation:entry-breathe 4s ease-in-out infinite}
.entry-orbit{position:absolute;inset:0;border-radius:50%;border:1px solid color-mix(in srgb,var(--entry-accent) 15%,transparent)}.entry-orbit:before{content:'';position:absolute;width:3px;height:3px;background:var(--entry-accent);border:1px solid var(--entry-bg);border-radius:50%;left:17px;top:8px;opacity:.65}
.entry-hairline{width:86px;height:1px;background:linear-gradient(90deg,transparent,var(--entry-accent),transparent);opacity:.25;margin-bottom:14px}
.entry-title{display:flex;justify-content:center;align-items:center;gap:7px;margin:0!important;color:var(--entry-ink)!important;font:400 74px/1.32 'Songti SC','STSong','Noto Serif CJK SC',serif!important;letter-spacing:1px!important;text-shadow:none!important}
.entry-title span{display:block;animation:entry-letter .65s cubic-bezier(.2,.7,.3,1) both}.entry-title span:first-child{transform:translateY(7px)}.entry-title span:last-child{font-size:.86em;align-self:flex-start;opacity:.76;animation-delay:.08s}
.entry-wordmark,.welcome-screen .entry-wordmark{font:italic 23px/1.3 Georgia,serif!important;letter-spacing:2px!important;font-weight:400!important;color:var(--entry-accent)!important;margin:10px 0 20px!important;text-shadow:none!important}
.entry-thread{width:225px;height:35px;flex:none;overflow:visible;margin:0 0 23px;color:var(--entry-accent)}.entry-thread path{stroke:currentColor;stroke-width:.75;stroke-linecap:round;opacity:.6;stroke-dasharray:1;stroke-dashoffset:0;animation:entry-draw 1.4s ease-out both}
.entry-greeting{width:100%;padding:0 22px;min-height:100px}.entry-greeting>span{display:block;font:10px/1.8 'Songti SC',serif;letter-spacing:3px;opacity:.55;margin-bottom:14px}
.welcome-screen #welcome-words{font:400 16px/2 'Songti SC','STSong',serif;letter-spacing:1px;color:var(--entry-ink);margin:0;overflow-wrap:anywhere}
.entry-footer{position:relative;flex:none;text-align:center;min-height:76px;font:10px/1.8 'Songti SC',serif;letter-spacing:2px;opacity:.7}
.entry-loading{display:flex;flex-direction:column;align-items:center;gap:12px;font-size:10px;min-height:38px}.entry-dots{display:flex;gap:6px;height:4px}.entry-dots i{width:3px;height:3px;background:var(--entry-accent);border-radius:50%;animation:entry-breathe 2s ease-in-out infinite}.entry-dots i:nth-child(2){animation-delay:.25s}.entry-dots i:nth-child(3){animation-delay:.5s}
.entry-enter,.welcome-screen #welcome-enter{border:0;background:transparent;color:var(--entry-ink);font:11px/1.5 'Songti SC',serif;letter-spacing:2px;padding:10px 18px;min-height:44px;margin-top:5px}.entry-enter span{margin-left:15px}.entry-enter:disabled{opacity:.45}
.welcome-screen.entry-screen{position:fixed;inset:0;z-index:10000;display:flex;flex-direction:column;align-items:center;padding:calc(35px + env(safe-area-inset-top)) 28px calc(20px + env(safe-area-inset-bottom));overflow:auto;background:var(--entry-bg);transition:opacity .16s ease,visibility .16s ease}
.welcome-screen.out{opacity:0;visibility:hidden;pointer-events:none}.welcome-screen.out *{animation:none}
@keyframes entry-appear{from{opacity:0}to{opacity:1}}@keyframes entry-letter{from{opacity:0;translate:0 12px}to{translate:0 0}}@keyframes entry-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes entry-breathe{50%{opacity:.55}}
@media(max-height:700px){.entry-content{padding:15px 0}.entry-emblem{width:76px;height:76px;margin-bottom:20px}.entry-emblem img{width:46px;height:46px;border-radius:13px}.entry-title{font-size:60px!important}.entry-wordmark,.welcome-screen .entry-wordmark{font-size:19px!important;margin:6px 0 12px!important}.entry-thread{margin-bottom:15px;width:195px}.entry-greeting{min-height:80px}.entry-greeting>span{margin-bottom:8px}.welcome-screen #welcome-words{font-size:14px}.entry-footer{min-height:60px}.welcome-screen.entry-screen{padding-top:calc(22px + env(safe-area-inset-top));padding-bottom:calc(12px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.entry-screen *,.entry-screen *:before{animation:none!important;transition:none!important}}
html[data-motion=off] .entry-screen *{animation:none!important;transition:none!important}
.entry-greeting #welcome-words{text-wrap:balance}
/* A breathing title and a continuous silk thread, including during slow fetches. */
.entry-emblem{width:58px;height:58px;margin-bottom:24px;color:var(--entry-accent)}
.entry-emblem .epris-mark{width:100%;height:100%;overflow:visible;opacity:.8}
.entry-title{gap:15px;font-family:'Kaiti SC','STKaiti','KaiTi','Songti SC',serif!important;font-size:78px!important;font-weight:400!important;line-height:1.3!important;color:var(--entry-accent)!important}
.entry-title span{will-change:transform,opacity;transform-origin:50% 70%;animation:entry-title-breathe 5.6s ease-in-out infinite}
.entry-title span:first-child{--letter-tilt:-5deg;--letter-y:6px;transform:translateY(6px) rotate(-5deg)}
.entry-title span:last-child{--letter-tilt:3deg;--letter-y:-3px;align-self:center;font-size:.88em;animation-delay:-2.8s;opacity:.85}
.entry-wordmark,.welcome-screen .entry-wordmark{font-size:20px!important;letter-spacing:3px!important;margin:12px 0 23px!important;opacity:.7}
.entry-thread{height:44px;margin-bottom:22px;overflow:visible}
.entry-thread path{stroke-width:.7;stroke-dasharray:none;animation:none;opacity:.65}
.entry-thread .thread-still{display:none}.entry-thread .thread-orbit{stroke:currentColor;stroke-width:.65;stroke-dasharray:20 80;opacity:.45;transform-origin:143px 20px;animation:thread-orbit 3.6s linear infinite}
@keyframes entry-title-breathe{0%,100%{opacity:.45;transform:translateY(var(--letter-y)) rotate(var(--letter-tilt)) scale(.96)}50%{opacity:.95;transform:translateY(calc(var(--letter-y) - 3px)) rotate(var(--letter-tilt)) scale(1.035)}}
@keyframes thread-orbit{to{transform:rotate(360deg)}}
@media(max-height:700px){.entry-emblem{width:44px;height:44px;margin-bottom:18px}.entry-title{font-size:62px!important}.entry-wordmark,.welcome-screen .entry-wordmark{font-size:17px!important;margin:8px 0 14px!important}.entry-thread{margin-bottom:12px;height:34px}}
@media(prefers-reduced-motion:reduce){.entry-thread .thread-moving,.entry-thread .thread-orbit{display:none}.entry-thread .thread-still{display:block}.entry-title span{will-change:auto;opacity:.85}}
html[data-motion=off] .entry-thread .thread-moving,html[data-motion=off] .entry-thread .thread-orbit{display:none}html[data-motion=off] .entry-thread .thread-still{display:block}

.entry-screen.out .entry-thread .thread-orbit{animation:none}
