@charset "UTF-8";
:root { color-scheme: dark; --bg:#080d0b; --surface:#111a16; --raised:#17221c; --line:#2a3a30; --text:#e4ece6; --muted:#a0b3a7; --green:#8adbb1; --accent:#b2edcd; --error:#efac9f; }
* { box-sizing:border-box; }
html { background:var(--bg); scroll-behavior:smooth; }
body { margin:0; font:17px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; background:var(--bg); color:var(--text); }
a { color:inherit; text-underline-offset:4px; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { cursor:wait; opacity:.65; }
:focus-visible { outline:2px solid var(--green); outline-offset:4px; }
[hidden] { display:none !important; }
.wrap { width:min(1120px,calc(100% - 64px)); margin-inline:auto; }
.narrow { max-width:760px; }
.site-header { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:24px; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; font-weight:620; letter-spacing:-.02em; }
.brand img { border-radius:8px; width:58px; height:58px; object-fit:cover; }
.main-nav { display:flex; align-items:center; gap:24px; font-size:15px; }
.main-nav a { text-decoration:none; color:var(--muted); }
.main-nav a:hover { color:var(--accent); }
.main-nav .language { padding-left:18px; border-left:1px solid var(--line); color:var(--green); }
.hero { padding-top:60px; padding-bottom:45px; }
.eyebrow { color:var(--green); font-size:13px; letter-spacing:.13em; text-transform:uppercase; margin:0 0 16px; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { line-height:1.2; font-weight:560; letter-spacing:-.025em; }
h1 { font-size:clamp(30px,4vw,44px); max-width:800px; margin-bottom:24px; }
h2 { font-size:25px; margin-bottom:12px; }
h3 { font-size:21px; }
p { margin-bottom:18px; }
.hero-intro { color:var(--muted); max-width:770px; font-size:18px; line-height:1.7; margin-bottom:0; }
.section-heading { margin-bottom:25px; }
.section-heading p { color:var(--muted); font-size:15px; margin:0; max-width:690px; }
.row { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; }
.character-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.character-card { display:flex; align-items:center; gap:24px; padding:25px; border:1px solid var(--line); background:var(--surface); border-radius:18px; text-decoration:none; transition:background .18s,border-color .18s; }
.character-card:hover { background:var(--raised); border-color:#607c6b; }
.card-portrait { flex-shrink:0; width:112px; height:136px; object-fit:cover; object-position:center 30%; border-radius:13px; }
.card-copy { flex:1; min-width:0; }
.card-heading { display:flex; justify-content:space-between; gap:15px; align-items:baseline; }
.card-heading h3 { margin:0 0 5px; font-size:25px; }
.card-arrow { color:var(--green); font-size:24px; }
.card-copy p { font-size:14px; color:var(--muted); margin:0 0 13px; }
.card-copy .character-phrase { font-size:15px; color:var(--text); margin:0 0 8px; }
.capabilities { display:flex; gap:8px; flex-wrap:wrap; }
.capabilities span { font-size:11px; border:1px solid #365040; color:#b9d5c4; padding:2px 9px; border-radius:20px; }
.home-services { padding-block:58px; }
.service-list { border-top:1px solid var(--line); }
.service-row { display:flex; justify-content:space-between; gap:20px; padding:17px 0; border-bottom:1px solid var(--line); text-decoration:none; }
.service-row:hover { color:var(--accent); }
.service-price { flex-shrink:0; color:var(--muted); font-size:14px; }
.service-price span { padding-left:16px; color:var(--green); }
.subtle { color:var(--muted); font-size:14px; }
.home-services > .subtle { margin:18px 0 0; }
.text-link { color:var(--green); text-decoration:none; font-size:15px; }
.text-link:hover { text-decoration:underline; }
.closing-section { border-top:1px solid var(--line); padding-block:35px 50px; display:flex; justify-content:space-between; align-items:center; gap:40px; }
.closing-section h2 { font-size:21px; max-width:660px; line-height:1.5; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; border:1px solid var(--line); border-radius:10px; padding:11px 18px; text-decoration:none; font-size:15px; line-height:1.3; white-space:nowrap; }
.primary { background:var(--green); border-color:var(--green); color:#102318; font-weight:600; }
.primary:hover { background:var(--accent); border-color:var(--accent); }
.quiet { color:var(--text); background:var(--raised); }
.text-button { background:none; border:none; color:var(--green); padding:5px 0; font-size:13px; }
.site-footer { display:flex; justify-content:space-between; align-items:baseline; gap:30px; border-top:1px solid var(--line); padding-block:24px 34px; color:var(--muted); font-size:13px; }
.site-footer p { margin:0; }
.site-footer a { text-decoration:none; white-space:nowrap; }
.site-footer a:hover { color:var(--green); text-decoration:underline; }
.document-page { padding-block:48px 64px; }
.document-page h1 { font-size:36px; }
.document-page > .text-link { display:inline-block; margin-bottom:24px; }
.lead { color:var(--muted); font-size:18px; }
.document-section { margin-block:36px; }
.document-section li { margin-bottom:10px; }
.service-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:35px; }
.service-card { padding:26px; background:var(--surface); border:1px solid var(--line); border-radius:14px; }
.service-card h2 { font-size:22px; }.service-card h2 a { text-decoration:none; }
.service-card p { color:var(--muted); font-size:15px; }
.price { color:var(--green) !important; font-weight:550; }
.package { border-left:2px solid var(--line); padding-left:20px; margin-block:26px; }
.faq { border-bottom:1px solid var(--line); padding-block:15px; }.faq summary { cursor:pointer; }.faq p { color:var(--muted); padding-top:14px; margin-bottom:0; }
.steps li { padding-left:8px; margin-bottom:12px; }
.example-line { border-left:2px solid var(--line); padding-left:18px; }
.order-form { display:grid; gap:22px; margin-top:32px; }
.order-form label { display:block; font-size:15px; }
input,select,textarea { width:100%; background:#0c130f; color:var(--text); border:1px solid #3c5043; border-radius:9px; padding:12px 14px; margin-top:8px; }
textarea { resize:vertical; min-height:80px; }
input::placeholder,textarea::placeholder { color:#84988b; }
.order-form .button { justify-self:start; }
.checkbox { display:flex !important; align-items:flex-start; gap:12px; font-size:13px !important; color:var(--muted); }
.checkbox input { width:18px; height:18px; margin-top:2px; flex-shrink:0; accent-color:var(--green); }
.optional-fields { color:var(--muted); }.optional-fields summary { cursor:pointer; }.optional-fields label { margin-top:20px; }
.honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.form-error { color:var(--error); margin:0; }.form-error:empty { display:none; }
.form-success { padding:25px; border:1px solid #527b60; border-radius:12px; margin-block:30px; background:var(--surface); }
.conversation-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:32px; padding-block:30px; }
.profile { min-width:0; }
.portrait { display:block; position:relative; width:200px; aspect-ratio:3/4; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:#111b16; padding:0; }
.portrait img,.portrait video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.portrait video { opacity:0; pointer-events:none; }.portrait video.is-visible { opacity:1; }
.voice-trigger:hover { border-color:var(--green); }
.voice-trigger[data-state="speaking"] { box-shadow:0 0 0 2px #689e7d; }
.voice-badge { position:absolute; right:10px; bottom:10px; color:var(--green); background:#0b1711da; border-radius:50%; width:32px; height:32px; line-height:30px; }
.profile h1 { font-size:29px; margin:20px 0 6px; }.profile .character-phrase { color:var(--green); font-size:14px; margin-bottom:12px; }
.profile-description { color:var(--muted); font-size:14px; }
.voice-hint { color:var(--muted); font-size:12px; }
.voice-controls { display:flex; gap:8px; flex-direction:column; margin-bottom:12px; }.voice-controls .button { font-size:12px; white-space:normal; }
.other-characters { display:flex; flex-wrap:wrap; gap:8px 15px; border-top:1px solid var(--line); padding-top:18px; margin-top:22px; font-size:13px; }
.other-characters a { color:var(--muted); text-decoration:none; }.other-characters [aria-current] { color:var(--green); }
.order-link { display:block; margin-top:22px; }
.chat-panel { display:flex; flex-direction:column; min-width:0; height:min(760px,calc(100dvh - 180px)); min-height:510px; border:1px solid var(--line); border-radius:16px; background:var(--surface); overflow:hidden; }
.chat-toolbar { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:17px 22px; border-bottom:1px solid var(--line); color:var(--muted); font-size:12px; }
.chat-toolbar > div { display:flex; align-items:center; gap:9px; }.chat-toolbar button { white-space:nowrap; }
.status-dot { width:6px; height:6px; border-radius:50%; background:var(--green); flex-shrink:0; }
.chat-scroll { flex:1; min-height:0; overflow:auto; padding:24px; scrollbar-color:#3a5142 transparent; }
.chat-empty { display:flex; flex-direction:column; justify-content:center; min-height:100%; color:var(--muted); font-size:15px; }
.suggestions { display:grid; gap:10px; max-width:480px; }.suggestions button { text-align:left; background:#142319; color:#bfdbca; border:1px solid #354b3b; border-radius:10px; padding:11px 14px; font-size:14px; }
.suggestions button:hover { border-color:var(--green); }
.chat-log { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:23px; }
.message { max-width:90%; align-self:flex-start; min-width:40px; }
.message.user { align-self:flex-end; background:#1e3327; border:1px solid #304f3b; border-radius:13px 13px 3px 13px; padding:12px 16px; }
.message .who { display:block; font-size:11px; color:var(--muted); margin-bottom:5px; }.message .body { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.65; font-size:15px; }
.message.failed { border-color:#90665c; }.message.failed .who { color:var(--error); }
.history-more { display:block; margin:0 auto 20px; }
.chat-form { display:flex; align-items:flex-end; gap:12px; padding:17px; border-top:1px solid var(--line); background:#0e1712; }
.chat-form textarea { flex:1; min-height:70px; max-height:180px; margin:0; font-size:15px; line-height:1.5; }.chat-form .button { height:44px; }
.chat-error { padding:12px 20px; font-size:13px; color:var(--error); background:#35241f; display:flex; gap:15px; justify-content:space-between; align-items:center; }
.chat-error button { flex-shrink:0; }
.visually-hidden,.skip-link:not(:focus) { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link:focus { display:block; padding:15px; background:var(--green); color:#102318; }
@media (max-width:900px) {
 .wrap { width:calc(100% - 40px); }.main-nav { gap:16px; font-size:13px; }.brand { font-size:16px; }.brand img { width:46px; height:46px; }
 .character-card { gap:18px; padding:20px; }.card-portrait { width:88px; height:118px; }.card-copy p { font-size:13px; }.card-heading h3 { font-size:23px; }
 .conversation-layout { grid-template-columns:175px minmax(0,1fr); gap:20px; }.portrait { width:170px; }.chat-toolbar { padding:14px; }.chat-scroll { padding:18px; }
}
@media (max-width:650px) {
 body { font-size:16px; }.wrap { width:calc(100% - 32px); }.site-header { flex-wrap:wrap; gap:17px; padding-block:16px; }.brand img { width:42px; height:42px; }.brand { font-size:16px; }.main-nav { width:100%; justify-content:space-between; gap:12px; font-size:12px; }.main-nav .language { padding-left:14px; }
 .hero { padding-block:34px 30px; }.hero h1 { font-size:32px; }.hero-intro { font-size:16px; line-height:1.65; }.eyebrow { font-size:11px; }
 h2 { font-size:23px; }.section-heading p { font-size:14px; }.character-grid,.service-cards { grid-template-columns:1fr; }.character-card { gap:18px; padding:20px; }.card-portrait { width:88px; height:116px; }.card-copy p { font-size:14px; }.card-copy .character-phrase { font-size:14px; }
 .home-services { padding-block:38px; }.row { align-items:flex-start; flex-direction:column; gap:15px; }.service-row { font-size:14px; }.service-price { font-size:12px; }.service-price span { padding-left:8px; }
 .closing-section { flex-direction:column; align-items:flex-start; gap:20px; padding-block:25px 35px; }.closing-section h2 { font-size:18px; }.site-footer { font-size:11px; gap:20px; }.site-footer a { font-size:12px; }
 .document-page { padding-block:32px 45px; }.document-page h1 { font-size:29px; }.lead { font-size:16px; }.service-card { padding:22px; }
 .conversation-layout { display:block; padding-top:20px; }.profile { display:grid; grid-template-columns:82px minmax(0,1fr); gap:0 16px; margin-bottom:20px; }.portrait { width:82px; border-radius:10px; grid-row:1/3; }.profile h1 { font-size:25px; margin:0 0 5px; }.profile .character-phrase { font-size:13px; margin-bottom:7px; }.profile-description { font-size:12px; margin-bottom:6px; }.voice-hint { grid-column:2; font-size:11px; margin:0; }
 .other-characters { grid-column:1/-1; margin-top:15px; padding-top:12px; gap:9px 19px; }.order-link { grid-column:1/-1; margin-top:12px; font-size:13px; }.voice-controls { grid-column:1/-1; flex-direction:row; margin-top:12px; }.profile > [data-role="enable-sound"] { grid-column:1/-1; margin-top:12px; }
 .chat-panel { height:66dvh; min-height:450px; border-radius:12px; }.chat-toolbar { gap:12px; align-items:flex-start; padding:13px 14px; font-size:11px; }.chat-toolbar button { font-size:11px; }.chat-scroll { padding:18px 14px; }.message { max-width:95%; }.message .body { font-size:14px; }.chat-form { padding:12px; gap:9px; }.chat-form textarea { font-size:16px; min-height:65px; }.chat-form .button { padding:11px 12px; font-size:13px; }.chat-empty { font-size:14px; }.suggestions button { font-size:13px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.character-card { transition:none; } }
