:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Noto Sans CJK SC",sans-serif;background:#e96a97;color:#1c1c1c;font-size:100%;-webkit-text-size-adjust:100%}
*{box-sizing:border-box}body{margin:0}button,input,a{font:inherit;color:inherit}a{text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}[hidden]{display:none!important}
:focus-visible{outline:2px solid #1c1c1c;outline-offset:5px}
.entry-page{min-height:100svh;display:flex;flex-direction:column;padding:calc(24px + env(safe-area-inset-top)) max(48px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(48px,env(safe-area-inset-left))}
.entry-header{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;flex-shrink:0}.entry-header-actions{display:flex;align-items:center;gap:24px}.entry-wordmark{font-size:1.4375rem;font-weight:650;letter-spacing:-.5px;min-height:44px;display:flex;align-items:center}[data-brand=xiaozhuo] .entry-wordmark{letter-spacing:1px}
.entry-login,.entry-language,.entry-enter{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;font-size:.875rem;font-weight:500;border:0;background:transparent}.entry-language{padding:8px 0;min-width:50px}.entry-login{padding:11px 0 11px 12px}.entry-arrow{transition:transform .2s ease}.entry-login:hover .entry-arrow,.entry-enter:hover .entry-arrow{transform:translate(2px,-2px)}
.entry-home{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 0 56px}.entry-art{width:126px;height:126px;margin-bottom:22px;flex-shrink:0}.entry-art img{display:block;width:100%;height:100%;object-fit:contain;transform:none}
.entry-home h1{margin:0;min-height:3.52rem;display:flex;align-items:center;justify-content:center;column-gap:.2em;font-size:2.75rem;line-height:1.28;font-weight:600;letter-spacing:-1.5px}.entry-home h1 span{display:inline-block;max-width:100%;text-wrap:balance}:lang(zh-CN) .entry-home h1{column-gap:0}
.entry-subtitle{margin:22px 0 0;font-size:.875rem;line-height:1.8;font-weight:500}.entry-enter{margin-top:28px;padding:10px 0 8px}.brush{position:relative}.brush::after{content:"";position:absolute;pointer-events:none;left:-2px;right:-2px;bottom:-1px;height:3.5px;background:currentColor;clip-path:polygon(0% 65%,8% 42%,22% 26%,39% 17%,58% 28%,77% 28%,93% 48%,100% 61%,94% 61%,100% 71%,85% 76%,65% 77%,47% 88%,31% 82%,13% 81%,4% 73%)}
.entry-auth{flex:1;padding:42px 0;display:flex;align-items:center;justify-content:center}.entry-form{width:min(100%,310px)}.entry-form h1{margin:0 0 10px;font-size:1.6875rem;line-height:1.3;font-weight:600}.entry-intro{margin:0 0 26px;color:#59353f;font-size:.8125rem;line-height:1.6}.entry-form label{display:block;margin:16px 0 7px;font-size:.75rem}.entry-form input{display:block;width:100%;min-height:46px;border:1px solid #b15f7c;border-radius:4px;background:#fbf9f5;color:#1c1c1c;padding:11px 12px;font-size:1rem;line-height:1.4}.entry-form input::placeholder{color:#736569}
.entry-submit{display:flex;justify-content:center;align-items:center;width:100%;margin-top:24px;border:0;border-radius:4px;background:#1c1c1c;color:#fbf9f5;min-height:46px;padding:10px 12px;font-size:.875rem;font-weight:500}.entry-notice{font-size:.8125rem;line-height:1.7;margin:12px 0 0;overflow-wrap:anywhere}.entry-notice:empty{display:none}.entry-help{display:flex;flex-direction:column;align-items:center;margin-top:8px}.entry-link,.entry-help a{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:.8125rem;background:none;border:0;padding:8px 0}.entry-back{display:flex;align-items:center;justify-content:center;gap:12px;width:max-content;max-width:100%;margin:16px auto 0;padding:10px 0;min-height:44px;font-size:.875rem}
@media(max-width:900px){.entry-home h1{flex-direction:column;min-height:7.04rem}}
@media(max-width:820px){.entry-page{padding-left:max(32px,env(safe-area-inset-left));padding-right:max(32px,env(safe-area-inset-right))}.entry-home h1{font-size:2.5rem;min-height:6.4rem}}
@media(max-width:600px){.entry-page{padding:calc(18px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}.entry-wordmark{font-size:1.3125rem}.entry-header-actions{gap:16px}.entry-home{padding:40px 0 68px}.entry-home h1{font-size:1.75rem;line-height:1.35;letter-spacing:-.8px;min-height:5.4rem}:lang(zh-CN) .entry-home h1{font-size:2rem;letter-spacing:-1px}.entry-art{margin-bottom:26px}.entry-form{width:min(100%,345px)}.entry-form h1{font-size:1.75rem}.entry-intro{font-size:.875rem;line-height:1.5;margin-bottom:24px}.entry-form label{font-size:.8125rem;line-height:1.4;margin-bottom:8px}.entry-form input{min-height:50px;font-size:1.0625rem;padding:12px}.entry-submit{font-size:1rem;min-height:48px}}
.entry-phone .entry-page{min-height:100dvh;padding:0 24px}.entry-phone .entry-header{min-height:56px}.entry-phone .entry-home{padding:24px 0 64px}.entry-phone .entry-login,.entry-phone .entry-subtitle,.entry-phone .entry-enter{font-size:1rem}.entry-phone .entry-auth{padding:24px 0 40px}
.entry-keyboard .entry-auth{align-items:flex-start;padding-top:12px;padding-bottom:12px}.entry-keyboard .entry-page{min-height:var(--entry-viewport,100dvh)}
@media(max-height:500px){.entry-auth{align-items:flex-start;padding:12px 0}.entry-home{justify-content:flex-start;padding-top:24px}}
@media(prefers-reduced-motion:reduce){.entry-arrow{transition:none}}
/* Keep the Mac's existing local network recovery control usable on this surface. */
.network-dialog{width:min(520px,calc(100vw - 32px));max-height:90dvh;padding:0;overflow:auto;border:1px solid #b15f7c;border-radius:12px;background:#fbf9f5;color:#1c1c1c}.network-dialog::backdrop{background:#1c1c1c66}.network-dialog .dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;border-bottom:1px solid #d8c6cc}.network-dialog h2{margin:0;font-size:1.125rem;font-weight:600}.network-dialog .account-body{display:grid;gap:12px;padding:24px}.network-dialog label,.network-dialog .usage-note,.network-status{margin:0;font-size:.875rem;line-height:1.6}.network-status:empty{display:none}.network-dialog input{width:100%;padding:10px;min-height:44px;border:1px solid #b15f7c;border-radius:4px;font-size:1rem}.network-actions{display:flex;justify-content:flex-end;gap:12px}.network-dialog button{padding:8px 12px;min-height:44px;border:1px solid #b15f7c;border-radius:4px;background:transparent}.network-dialog .primary{background:#1c1c1c;color:#fbf9f5}.network-dialog .dialog-close{display:flex;align-items:center;justify-content:center;width:44px;border:0;padding:10px}.network-dialog .icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7}

/* Home-page entry sequence (with entry-sequence.js). Add after entry.css.
   The underline's shape and position stay in entry.css (.brush::after, 3.5 px tall, 2 px past each
   side of the link). This file only overlays the hand canvas and masks the underline. Without the
   script, or under reduced motion, nothing here applies and both stay complete. */

.entry-art { position: relative; }
.entry-art-canvas { display: none; position: absolute; inset: 0; width: 100%; height: 100%; }
.entry-art.is-sequenced .entry-art-canvas { display: block; }
/* Hidden visually only: the static <img> keeps its alt text for screen readers. */
.entry-art.is-sequenced img { opacity: 0; }

/* --brush-p: 0 = nothing, 1 = whole stroke; the front is feathered over 8 px.
   Percentages follow the link's width, so it fits 中文 / English and every font size. */
.entry-enter.brush.is-sequenced::after {
  -webkit-mask-image: linear-gradient(90deg, #000 calc(var(--brush-p, 1) * (100% + 8px) - 8px), transparent calc(var(--brush-p, 1) * (100% + 8px)));
  mask-image: linear-gradient(90deg, #000 calc(var(--brush-p, 1) * (100% + 8px) - 8px), transparent calc(var(--brush-p, 1) * (100% + 8px)));
  opacity: var(--brush-o, 1);
}
