html,body,#root{min-height:100%}button:disabled{cursor:default;opacity:.5}:root{--bg:#0b0a0f;--stage:#121018;--fg:#ece7ef;--fg-dim:#8d8699;--line:#2a2633;--accent:#c9a46a;--accent-ink:#1a1408;--danger:#d9453f;--ok:#5fb37d;--card:#1a1722;--display:"Cormorant Garamond","Songti SC","Songti TC","Noto Serif CJK SC","Source Han Serif SC",SimSun,serif;--body:-apple-system,"PingFang TC","PingFang SC","Microsoft JhengHei","Noto Sans TC",system-ui,sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#efeae3;--stage:#f8f5f0;--fg:#1d1a22;--fg-dim:#6e6878;--line:#ddd6cc;--accent:#9a7232;--accent-ink:#fff8ea;--danger:#c73a34;--ok:#3f8f5c;--card:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=light]{--bg:#efeae3;--stage:#f8f5f0;--fg:#1d1a22;--fg-dim:#6e6878;--line:#ddd6cc;--accent:#9a7232;--accent-ink:#fff8ea;--danger:#c73a34;--ok:#3f8f5c;--card:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html,body{height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--body);margin:0;font-size:15px;line-height:1.5}*{box-sizing:border-box}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.wrap{flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:100%;padding-block:16px;padding-inline:16px;display:flex}.note{color:var(--fg-dim);text-align:center;max-width:390px;font-size:12px}.note b{color:var(--fg)}.stage{background:var(--stage);border:1px solid var(--line);border-radius:36px;flex-direction:column;width:100%;max-width:390px;height:780px;max-height:calc(100vh - 80px);display:flex;position:relative;overflow:hidden}@media (width<=480px){.wrap{gap:0;padding:0}.note{display:none}.stage{border:0;border-radius:0;max-width:none;height:100%;min-height:100vh;max-height:none}}.screen{flex-direction:column;padding-block:28px 24px;padding-inline:24px;display:none;position:absolute;inset:0}.screen.on{display:flex}.top{color:var(--fg-dim);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.seg{border:1px solid var(--line);border-radius:999px;display:flex;overflow:hidden}.seg button{letter-spacing:.04em;padding:4px 9px;font-size:11px}.seg button[aria-pressed=true]{background:var(--fg);color:var(--stage)}.brand{font-family:var(--display);letter-spacing:.06em;color:var(--fg);font-size:20px;font-weight:500}.gate{justify-content:flex-end;gap:18px}.gate h1{font-family:var(--display);text-wrap:balance;margin:0;font-size:44px;font-weight:500;line-height:1.05}.gate p{color:var(--fg-dim);margin:0;font-size:14px}.btn{text-align:center;letter-spacing:.02em;border-radius:999px;width:100%;padding:15px;font-weight:600;display:block}.btn.gold{background:var(--accent);color:var(--accent-ink)}.btn.ghost{border:1px solid var(--line);color:var(--fg-dim)}.fine{color:var(--fg-dim);text-align:center;font-size:11px;line-height:1.5}.auth{justify-content:flex-end;gap:14px;overflow-y:auto}.auth .top,.auth .tabs,.auth .form{flex-shrink:0}.auth .brand{font-size:22px}.auth .tabs button{font-size:25px}.auth .form{gap:14px}.auth .form input{min-height:52px}:root[data-theme=dark] .auth .form input{background:#272a3b;border-color:#0000}.auth-visual{flex:1 0 140px;min-height:140px;margin:0 -24px -10px;position:relative}.auth-visual img{object-fit:cover;object-position:center 31%;width:100%;height:100%;position:absolute;inset:0}.auth-visual:after{content:"";background:linear-gradient(to bottom,transparent 55%,var(--stage) 100%),linear-gradient(to top,transparent 85%,color-mix(in srgb,var(--stage) 72%,transparent));position:absolute;inset:0}.auth:not(.login) .auth-visual img{object-position:center 28%}.tabs{border-bottom:1px solid var(--line);gap:18px;display:flex}.tabs button{font-family:var(--display);color:var(--fg-dim);border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 2px;font-size:22px}.tabs button[aria-pressed=true]{color:var(--fg);border-color:var(--accent)}.form{flex-direction:column;gap:12px;display:flex}.form label{color:var(--fg-dim);flex-direction:column;gap:5px;font-size:12px;display:flex}.form input{font:inherit;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:12px;width:100%;padding:12px 14px;font-size:15px}.form input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}.auth.login .reg-only{display:none}.me{gap:12px;overflow-y:auto}.me h2{font-family:var(--display);margin:14px 0 4px;font-size:30px;font-weight:500}.me .row{border-bottom:1px solid var(--line);color:var(--fg-dim);justify-content:space-between;align-items:center;gap:10px;padding:12px 0;font-size:14px;display:flex}.me .row b{color:var(--fg);font-weight:500}.skeleton{background:var(--line);border-radius:6px;width:180px;max-width:60%;height:18px;animation:1.4s ease-in-out infinite skeleton-pulse;display:block}.skeleton.short{width:28px}@keyframes skeleton-pulse{50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.btn.danger{border:1px solid var(--danger);color:var(--danger)}.sw{width:44px;height:26px;display:inline-block;position:relative}.sw input{opacity:0;width:0;height:0}.sw i{background:var(--line);border-radius:999px;transition:all .2s;position:absolute;inset:0}.sw i:after{content:"";background:var(--fg);border-radius:50%;width:20px;height:20px;transition:all .2s;position:absolute;top:3px;left:3px}.sw input:checked+i{background:var(--accent)}.sw input:checked+i:after{transform:translate(18px)}.pick h2,.detail h2{font-family:var(--display);margin:14px 0 4px;font-size:30px;font-weight:500}.pick .sub{color:var(--fg-dim);margin:0 0 16px;font-size:13px}.cards{grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:12px;min-height:0;padding-bottom:8px;display:grid;overflow-y:auto}.card{background:var(--card);border:1px solid var(--line);text-align:left;border-radius:18px;flex-direction:column;gap:8px;min-width:0;padding:14px;display:flex}.card .av{width:64px;height:64px}.card .nm{font-family:var(--display);font-size:22px;font-weight:500;line-height:1.1}.card .tag{color:var(--fg-dim);letter-spacing:.05em;overflow-wrap:anywhere;font-size:11px}.card .availability{color:var(--fg-dim);margin-top:4px;font-size:10px}.card .one{color:var(--fg-dim);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.card.soon{opacity:.5}.soon .nm:after{content:" ·";color:var(--fg-dim)}.av{font-family:var(--display);color:#fff;text-shadow:0 1px 8px #0006;border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid;position:relative}.av:after{content:"";border:1px solid var(--accent);opacity:.5;border-radius:50%;position:absolute;inset:-4px}.av img{border-radius:inherit;object-fit:cover;object-position:center 25%;width:100%;min-width:0;height:100%;min-height:0;display:block;position:absolute;inset:0}.av.fushen{background:radial-gradient(circle at 30% 25%,#5a3a2a,#1c1116 70%)}.av.peiyan{background:radial-gradient(circle at 30% 25%,#2f4a5c,#0e161c 70%)}.av.julian{background:radial-gradient(circle at 30% 25%,#4a3d5f,#16111f 70%)}.av.nathan{background:radial-gradient(circle at 30% 25%,#5c4a2f,#1b150f 70%)}.detail{gap:10px}.detail .hero{align-items:center;gap:16px;margin-top:8px;display:flex}.detail .hero .av{width:92px;height:92px;font-size:34px}.detail .meta{color:var(--fg-dim);letter-spacing:.05em;font-size:12px}.detail .intro{color:var(--fg);flex:1;min-height:0;padding-right:4px;font-size:14px;line-height:1.65;overflow-y:auto}.detail .intro p{margin:0 0 10px}.detail .quote{font-family:var(--display);color:var(--accent);border-left:2px solid var(--accent);margin:4px 0 10px;padding-left:12px;font-size:17px;font-style:italic;font-weight:500}.back{color:var(--fg-dim);align-self:flex-start;padding:6px 0;font-size:13px}.call{text-align:center;padding-block:max(48px,calc(env(safe-area-inset-top) + 24px)) max(26px,env(safe-area-inset-bottom));background:var(--stage);justify-content:space-between;align-items:center;gap:0;padding-inline:0;overflow:hidden}.call .who{z-index:2;flex-shrink:0;max-width:100%;margin:0;padding-inline:16px;position:relative}.call .who .nm{font-family:var(--display);font-size:30px;font-weight:500;line-height:1.1}.call .who .st{color:var(--fg-dim);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:8px;min-height:21px;margin-top:6px;font-size:13px;display:flex}.call-portrait{aspect-ratio:2/3;isolation:isolate;flex:0 auto;width:100%;height:auto;min-height:0;margin:0;position:relative}.call-portrait:before{content:"";background:var(--portrait-image) center / cover no-repeat;filter:blur(18px);opacity:.4;z-index:-1;position:absolute;inset:-16px;-webkit-mask-image:linear-gradient(#0000,#000 17% 70%,#0000);mask-image:linear-gradient(#0000,#000 17% 70%,#0000)}.call-portrait img{object-fit:cover;object-position:center 25%;width:100%;height:100%;display:block;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 12% 78%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 12% 78%,#0000 100%)}.call-portrait:after{content:"";pointer-events:none;background:linear-gradient(to bottom,var(--stage) 0%,transparent 14%,transparent 75%,var(--stage) 100%);position:absolute;inset:0}.connection-pulse{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:1.5s ease-in-out infinite connection-pulse}@keyframes connection-pulse{50%{opacity:.3}}.voice-activity{align-items:center;gap:2px;height:12px;transition:opacity .12s;display:flex}.voice-activity i{background:var(--accent);border-radius:2px;width:2px;display:block}.pad{z-index:2;flex-shrink:0;justify-content:center;gap:40px;margin:0;display:flex;position:relative}.pad .k{color:var(--fg-dim);flex-direction:column;align-items:center;gap:8px;font-size:11px;display:flex}.pad .k span{background:var(--card);border:1px solid var(--line);border-radius:50%;place-items:center;width:60px;height:60px;display:grid}.pad .k em{font-style:normal}.pad .k[aria-pressed=true] span{background:var(--fg);color:var(--stage)}.pad .k.end span{background:var(--danger);border-color:var(--danger);color:#fff}.pad svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:26px;height:26px}@media (prefers-reduced-motion:reduce){.connection-pulse{animation:none}}.ended{text-align:center;justify-content:center;align-items:center;gap:14px}.ended .av{width:84px;height:84px;font-size:30px}.ended h2{font-family:var(--display);margin:0;font-size:28px;font-weight:500}.ended .dur{font-variant-numeric:tabular-nums;color:var(--fg-dim)}.ended .why{color:var(--fg-dim);font-size:13px}.ended .last{font-family:var(--display);color:var(--accent);text-wrap:balance;max-width:280px;font-size:18px;font-style:italic;font-weight:500}.ended .acts{flex-direction:column;gap:10px;width:100%;margin-top:14px;display:flex}#root{min-height:100vh}.mic-error{color:var(--danger);margin:0}.settings{background:var(--stage);color:var(--fg);border:1px solid var(--line);border-radius:18px;width:min(340px,100% - 48px);max-height:calc(100dvh - 32px);padding:24px;overflow-y:auto}.settings::backdrop{background:#0009}.settings h2{font-family:var(--display);margin:0 0 20px;font-weight:500}.settings .form label{align-items:stretch;gap:5px;margin-bottom:0}.settings .form input{border-radius:12px;width:100%;min-width:0;height:auto;min-height:48px}.settings input[type=checkbox]{accent-color:var(--accent);width:20px;height:20px}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/cormorant-500.woff2)format("woff2");unicode-range:U+20-24F,U+2000-206F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/cormorant-500-italic.woff2)format("woff2");unicode-range:U+20-24F,U+2000-206F}.entry-wrap{background:#060c15;padding:0}.entry-stage{background:#060c15;border:0;border-radius:0;width:100%;max-width:none;height:max(760px,100svh);min-height:100svh;max-height:none}.gate{color:#f4f0f5;padding:24px max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom));background:linear-gradient(#0000 30%,#040a1459 48%,#040a14ed 78%,#040a14 100%) 50%/100% 100% no-repeat,url(/cover.jpg) top/auto 100% no-repeat,#060c15;gap:12px}.gate .top{color:#ece7ef;flex-shrink:0}.gate .brand{color:#f4f0f5}.gate .seg{background:#0a111c88;border-color:#c5bdcd66}.gate .seg button[aria-pressed=true]{color:#15111b;background:#ece7ef}.gate-content{flex-direction:column;gap:12px;width:100%;max-width:460px;margin:0 auto;display:flex}.gate h1{color:#f4f0f5;font-size:clamp(30px,5vw,40px);line-height:1.15}.gate p{color:#d3cadb;line-height:1.6}.gate .btn.gold{color:#1a1408;background:#c9a46a}.gate .btn.ghost{color:#ece7ef;border-color:#9d91af77;padding:10px}.age-badge{color:#f0d7ab;background:#080e18aa;border:1px solid #cfb27e;border-radius:999px;align-self:flex-start;padding:3px 11px;font-size:16px;font-weight:700}.gate .legal-consent{font-size:12px;line-height:1.7}.legal-consent button,.legal-links button{text-underline-offset:3px;color:inherit;text-decoration:underline}.legal-links{flex-wrap:wrap;flex-shrink:0;justify-content:center;gap:8px 16px;display:flex}.legal-dialog{border:1px solid var(--line);background:var(--stage);width:min(680px,100vw - 24px);max-height:calc(100svh - 32px);color:var(--fg);border-radius:18px;padding:0;overflow:hidden}.legal-dialog[open]{flex-direction:column;display:flex}.legal-dialog::backdrop{background:#000b}.legal-dialog header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.legal-dialog h2{margin:0;font-size:20px}.legal-dialog header button{border:1px solid var(--line);border-radius:8px;flex-shrink:0;padding:6px 10px}.legal-dialog article{overscroll-behavior:contain;min-height:0;padding:8px 20px 20px;font-size:15px;line-height:1.8;overflow-y:auto}.legal-dialog article h2{margin:16px 0 8px;line-height:1.5}.legal-dialog h3{margin:20px 0 8px;font-size:17px;line-height:1.5}.legal-dialog p{overflow-wrap:anywhere;margin:8px 0}.legal-list-item{text-indent:-12px;padding-left:12px}.timing-dialog .timing-content{min-height:0;padding:12px 16px 16px;overflow-y:auto}.timing-dialog .timing-content p{margin:0 0 12px;font-size:14px;line-height:1.6}.timing-dialog .timing-actions{gap:10px;display:flex}.timing-dialog .timing-actions .btn{flex:1;min-width:0;padding:12px 8px;font-size:15px}.timing-dialog .timing-notice{min-height:1.6em;margin:12px 0}.timing-dialog textarea{border:1px solid var(--line);background:var(--stage);width:100%;height:40svh;min-height:120px;color:var(--fg);box-sizing:border-box;resize:vertical;-webkit-user-select:text;user-select:text;border-radius:10px;padding:10px;font:12px/1.6 monospace;display:block}.password-field{display:flex;position:relative}.form .password-field input{padding-right:52px}.password-eye{width:44px;height:40px;color:var(--fg-dim);place-items:center;display:grid;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.password-eye svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.account-loading{place-items:center;display:grid}.account-check{text-align:center;flex-direction:column;align-items:center;gap:18px;width:100%;max-width:340px;padding:24px;display:flex}.account-check p{margin:0}:root[data-theme=light] .entry-wrap,:root[data-theme=light] .entry-stage{background:#e9e0d3}:root[data-theme=light] .gate{color:#201c26;background:linear-gradient(#0000 26%,#f5efe440 46%,#f5efe4f5 72%,#f5efe4 100%) 50%/100% 100% no-repeat,url(/cover.jpg) top/auto 100% no-repeat,#e9e0d3}:root[data-theme=light] .gate h1{color:#201c26}:root[data-theme=light] .gate p{color:#4b424f}:root[data-theme=light] .gate .btn.ghost{color:#342936;border-color:#9c8b77}:root[data-theme=light] .age-badge{color:#583b12;background:#fff7e9d9;border-color:#8d6b37}@media (width>=481px){.wrap{min-height:100vh}.stage:not(.entry-stage){height:auto;min-height:780px;max-height:none}.screen.on:not(.gate){flex:none;min-height:780px;position:relative;inset:auto}.screen.on>:not(dialog){flex-shrink:0}.cards{min-height:auto;overflow:visible}.detail .intro{flex:none;overflow:visible}.me,.auth{overflow:visible}}
