.app-shell:has(.chat-layout){height:100vh;height:100dvh;overflow:hidden}.page:has(.chat-layout){display:flex;flex-direction:column;flex:1;min-height:0;width:min(1180px,100%);padding:.75rem .75rem .5rem;overflow:hidden}.chat-layout{width:100%;margin:0 auto;display:grid;grid-template-columns:260px minmax(0,1fr);gap:.75rem;align-items:stretch;flex:1;min-height:0;height:100%;position:relative}.chat-backdrop{display:none}.chat-sidebar{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.9rem;box-shadow:var(--shadow-soft)}.chat-sidebar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem;flex-shrink:0}.chat-sidebar-head strong{display:block;font-size:.98rem}.chat-sidebar-sub{margin:.2rem 0 0;font-size:.78rem}.btn-sm{padding:.4rem .7rem;font-size:.85rem;border-radius:10px}.chat-session-list{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:.35rem;-webkit-overflow-scrolling:touch}.chat-session-empty{margin:.5rem 0 0;font-size:.9rem}.chat-session-item{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;width:100%;text-align:left;border:1px solid transparent;border-radius:10px;background:transparent;padding:.65rem .7rem;cursor:pointer;color:inherit;font:inherit}.chat-session-item:hover:not(:disabled){background:#018b8d12}.chat-session-item.active{border-color:#018b8d47;background:#018b8d1a}.chat-session-item:disabled{opacity:.65;cursor:not-allowed}.chat-session-title{font-size:.9rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chat-session-meta{font-size:.72rem;color:var(--ink-soft)}.chat-main{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-soft)}.chat-mobile-bar{display:none;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .75rem;border-bottom:1px solid var(--line);flex-shrink:0;font-weight:600}.chat-mobile-title{flex:1;min-width:0;text-align:center;font-size:.92rem;line-height:1.3}.icon-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:#f3f6f6;color:var(--ink);width:2.25rem;height:2.25rem;border-radius:10px;font-size:1.1rem;line-height:1;cursor:pointer}.icon-btn:disabled{opacity:.5}.chat-thread{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:.85rem;padding:1rem 1.1rem;-webkit-overflow-scrolling:touch}.chat-empty{margin:auto;text-align:center;color:var(--ink-soft);max-width:36rem;padding:1rem .25rem 1.5rem}.chat-empty h2{margin:0 0 .4rem;font-size:1.25rem;color:var(--ink)}.suggest-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:1.25rem;text-align:left}.suggest-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:#f8fbfb;border-radius:12px;padding:.85rem .9rem;font:inherit;font-size:.9rem;color:var(--ink);line-height:1.45;cursor:pointer;text-align:left;transition:border-color .15s ease,box-shadow .15s ease}.suggest-card:hover:not(:disabled){border-color:#018b8d73;box-shadow:var(--shadow-soft);background:#fff}.suggest-card:disabled{opacity:.6;cursor:not-allowed}.turn{display:flex;flex-direction:column;gap:.5rem;align-items:stretch}.turn .bubble.user{align-self:flex-end}.turn .bubble.assistant{align-self:flex-start}.followup-wrap{align-self:flex-start;width:min(100%,36rem);max-width:86%}.followup-grid{margin-top:0;grid-template-columns:1fr}.bubble{max-width:86%;padding:.75rem .95rem;border-radius:14px;border:1px solid var(--line);background:#fff}.bubble.user{align-self:flex-end;background:#018b8d1f;border-color:#018b8d38;border-top-right-radius:4px}.bubble.assistant{align-self:flex-start;border-top-left-radius:4px}.bubble.blocked{border-color:#b4231859;background:#fff7f6}.bubble-meta{display:flex;gap:.5rem;align-items:center;font-size:.78rem;color:var(--ink-soft);margin-bottom:.3rem}.bubble-body{line-height:1.65;font-size:.95rem}.bubble.user .bubble-body{white-space:pre-wrap}.cursor{display:inline-block;width:.55ch;height:1.05em;margin-left:2px;vertical-align:text-bottom;background:var(--mars);animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.chat-error{margin:0 1rem;flex-shrink:0}.chat-composer{display:grid;grid-template-columns:1fr auto;gap:.65rem;align-items:end;border-top:1px solid var(--line);padding:.75rem 1rem .35rem;flex-shrink:0;background:#fff}.chat-composer textarea{border:1px solid var(--line);border-radius:12px;padding:.75rem .9rem;resize:none;min-height:52px;max-height:120px;background:#f8fbfb}.chat-composer textarea:focus{outline:2px solid rgba(1,139,141,.18);border-color:var(--mars);background:#fff}.chat-composer .stop-btn{min-width:5.5rem;border-color:#c45c5c;color:#a33;background:#fff5f5}.chat-composer .stop-btn:hover{background:#ffe8e8;border-color:#b04444;color:#8f2a2a}.composer-hint{margin:0;padding:0 1rem .65rem;font-size:.72rem;color:var(--ink-soft);text-align:center;flex-shrink:0}@media(max-width:860px){.page:has(.chat-layout){width:100%;padding:0}.chat-layout{grid-template-columns:1fr;gap:0}.chat-main{border-radius:0;border-left:0;border-right:0;border-bottom:0;box-shadow:none}.chat-mobile-bar{display:flex}.chat-backdrop.show{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#16323373;z-index:40}.chat-sidebar{position:fixed;top:0;left:0;bottom:0;width:min(84vw,300px);height:100dvh;z-index:50;border-radius:0;border:0;transform:translate(-105%);transition:transform .22s ease;box-shadow:8px 0 28px #1028282e}.chat-sidebar.open{transform:translate(0)}.suggest-grid{grid-template-columns:1fr}.chat-thread{padding:.85rem}.bubble{max-width:92%}.chat-composer{padding:.65rem .75rem .25rem}.composer-hint{padding-bottom:.55rem}}@media(max-width:640px){.chat-composer{grid-template-columns:1fr}.chat-composer .btn{width:100%}}.md-body{line-height:1.7;color:var(--ink);word-break:break-word;overflow-wrap:anywhere}.md-body>:first-child{margin-top:0}.md-body>:last-child{margin-bottom:0}.md-body p,.md-body ul,.md-body ol,.md-body pre,.md-body blockquote,.md-body table,.md-body .md-table-wrap{margin:.55em 0}.md-body h1,.md-body h2,.md-body h3,.md-body h4,.md-body h5,.md-body h6{margin:.9em 0 .4em;line-height:1.3;color:var(--mars-deep);font-family:var(--font-display);font-weight:700}.md-body h1{font-size:1.35rem}.md-body h2{font-size:1.22rem}.md-body h3{font-size:1.1rem}.md-body h4,.md-body h5,.md-body h6{font-size:1rem}.md-body strong{font-weight:700;color:var(--ink)}.md-body em{font-style:italic}.md-body del{color:var(--ink-soft)}.md-body a{color:var(--mars-deep);text-decoration:underline;text-underline-offset:2px}.md-body a:hover{color:var(--mars)}.md-body ul,.md-body ol{padding-left:1.35rem}.md-body li{margin:.25em 0}.md-body li>ul,.md-body li>ol{margin:.2em 0}.md-body input[type=checkbox]{margin-right:.4rem}.md-body blockquote{margin-left:0;padding:.35rem .85rem;border-left:3px solid var(--scheveningen, #f9d46c);background:#f9d46c29;color:var(--ink-soft)}.md-body hr{border:0;border-top:1px solid var(--line);margin:.9em 0}.md-body code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:#018b8d1a;border:1px solid rgba(1,139,141,.16);border-radius:6px;padding:.08em .35em}.md-body pre{background:#163233;color:#e7f4f4;border-radius:12px;padding:.85rem 1rem;overflow-x:auto}.md-body pre code{background:transparent;border:0;padding:0;color:inherit;font-size:.88rem;line-height:1.55}.md-table-wrap{overflow-x:auto}.md-body table{width:100%;border-collapse:collapse;font-size:.92rem}.md-body th,.md-body td{border:1px solid var(--line);padding:.45rem .65rem;text-align:left;vertical-align:top}.md-body th{background:var(--mist);color:var(--mars-deep);font-weight:700}.md-body tr:nth-child(2n) td{background:#f7f3ec73}.md-body img{max-width:100%;height:auto;border-radius:10px}.md-body.is-streaming .cursor{margin-left:.15rem}.home{display:flex;flex-direction:column;gap:2rem;padding-bottom:1.5rem}.hero{min-height:0;padding:.35rem 0 .1rem;display:grid;align-content:start}.eyebrow{margin:0 0 .75rem;color:var(--mars);font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:.8rem;display:inline-flex;align-items:center;gap:.55rem}.eyebrow:after{content:"";width:2.2rem;height:.28rem;border-radius:999px;background:linear-gradient(90deg,var(--scheveningen),transparent)}.hero h1{margin:0;font-size:clamp(1.85rem,4vw,2.75rem);line-height:1.2;color:var(--ink);max-width:12em;font-family:var(--font-display)}.hero-copy{position:relative}.hero-copy:before{content:"";position:absolute;left:-1.2rem;top:.4rem;bottom:.4rem;width:4px;border-radius:999px;background:linear-gradient(180deg,var(--mars),var(--scheveningen))}.lede{margin:.75rem 0 1.15rem;color:var(--ink-soft);font-size:1rem;line-height:1.65;max-width:34rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem}.home-section{max-width:46rem}.section-kicker{margin:0 0 .55rem;color:var(--mars);font-size:.82rem;font-weight:700;letter-spacing:.12em}.section-title{margin:0 0 .85rem;font-family:var(--font-display);font-size:clamp(1.55rem,3vw,2.1rem);line-height:1.25;color:var(--ink)}.section-lead{margin:0;color:var(--ink-soft);line-height:1.75;font-size:1.02rem}.window-grid{margin-top:1.75rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.75rem 1.5rem;max-width:none}.home-section:has(.window-grid),.home-section:has(.layer-list),.home-section:has(.scene-list){max-width:none}.window-item h3{margin:0;font-family:var(--font-display);font-size:1.45rem;color:var(--mars-deep)}.window-role{margin:.35rem 0 .7rem;color:var(--scheveningen-deep);font-size:.86rem;font-weight:600}.window-item p:last-child{margin:0;color:var(--ink-soft);line-height:1.7;font-size:.98rem}.layer-list{list-style:none;margin:1.75rem 0 0;padding:0;display:grid;gap:1.1rem;max-width:40rem}.layer-list li{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start;padding-top:1.1rem;border-top:1px solid var(--line)}.layer-index{width:1.8rem;height:1.8rem;border-radius:999px;display:grid;place-items:center;background:#018b8d1f;color:var(--mars-deep);font-weight:700;font-size:.9rem}.layer-head{display:flex;flex-wrap:wrap;gap:.55rem .85rem;align-items:baseline;margin-bottom:.25rem}.layer-head strong{font-size:1.05rem}.layer-head span{color:var(--ink-soft);font-size:.86rem}.layer-list p{margin:0;color:var(--ink-soft);line-height:1.65}.scene-list{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:.55rem;max-width:40rem}.scene-list a{display:block;padding:.85rem 0;border-bottom:1px solid var(--line);color:var(--ink);line-height:1.5;transition:color .15s ease,padding-left .15s ease}.scene-list a:hover{color:var(--mars-deep);padding-left:.35rem}.home-cta{margin-top:.5rem;padding:2rem 0 .5rem;border-top:1px solid var(--line);max-width:36rem}.home-cta h2{margin:0 0 .6rem;font-family:var(--font-display);font-size:clamp(1.45rem,2.8vw,1.9rem)}.home-cta p{margin:0 0 1.2rem;color:var(--ink-soft);line-height:1.65}@media(max-width:860px){.hero{padding-top:.25rem}.home{gap:2rem}.window-grid{grid-template-columns:1fr;gap:1.35rem}.hero-copy:before{left:-.85rem}}.legal-page{max-width:44rem;margin:0 auto;padding:.5rem 0 2.5rem}.legal-nav{display:flex;gap:.6rem;margin:0 0 1.25rem;color:var(--ink-soft);font-size:.9rem}.legal-body h1{font-size:1.65rem}.legal-body h2{margin-top:1.6rem;font-size:1.15rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}:root{--mars: #018b8d;--mars-deep: #016366;--mars-soft: #2aa3a5;--scheveningen: #f9d46c;--scheveningen-deep: #d4ae3a;--scheveningen-soft: #fff4c8;--mist: #e7f4f4;--sand: #f7f3ec;--ink: #163233;--ink-soft: #3d5556;--accent: #c45c26;--line: rgba(1, 139, 141, .14);--danger: #b42318;--ok: #0f7a3a;--shadow: 0 10px 28px rgba(1, 99, 102, .08);--shadow-soft: 0 1px 3px rgba(16, 40, 40, .06), 0 1px 2px rgba(16, 40, 40, .04);--radius: 14px;--font-display: "Fraunces", "Noto Serif SC", "PingFang SC", serif;--font-body: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;min-height:100dvh}body{margin:0;color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.6;background:#f3f7f7}a{color:var(--mars-deep);text-decoration:none}button,input,textarea,select{font:inherit}h1,h2,h3,.brand-mark{font-family:var(--font-display);font-weight:700;letter-spacing:.01em}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topnav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;border-bottom:1px solid var(--line);background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:baseline;gap:.65rem}.brand-mark{font-size:1.35rem;color:var(--mars-deep);background:linear-gradient(120deg,var(--mars-deep) 0%,var(--mars) 62%,var(--scheveningen-deep) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.brand-sub{color:var(--ink-soft);font-size:.85rem}.nav-links{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.nav-links a,.nav-links button.linkish{color:var(--ink-soft);background:none;border:0;cursor:pointer;padding:.35rem .5rem}.nav-links a.active,.nav-links a:hover,.nav-links button.linkish:hover{color:var(--mars-deep)}.page{width:min(1100px,calc(100% - 2rem));margin:0 auto;padding:1.25rem 0 2.5rem;flex:1}.site-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;padding:.85rem 1rem 1.4rem;color:var(--ink-soft);font-size:.82rem;border-top:1px solid var(--line);background:#ffffffb3}.site-footer a{color:var(--mars-deep)}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:1.2rem 1.3rem}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:10px;padding:.65rem 1.1rem;cursor:pointer;background:var(--mars);color:#fff;box-shadow:none;transition:background .15s ease,opacity .15s ease}.btn:hover{background:var(--mars-deep);filter:none;transform:none;box-shadow:none}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn.secondary{background:#fff;color:var(--mars-deep);border:1px solid var(--line);box-shadow:none;filter:none}.btn.secondary:hover{background:#f3f8f8;filter:none;box-shadow:none}.btn.danger{background:var(--danger);box-shadow:none}.btn.accent{background:linear-gradient(135deg,var(--scheveningen) 0%,var(--scheveningen-deep) 100%);color:var(--ink);box-shadow:0 8px 20px #d4ae3a47}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}.field label{font-size:.9rem;color:var(--ink-soft)}.agree-row{display:flex;gap:.5rem;align-items:flex-start;line-height:1.45}.field-row{display:flex;gap:.5rem;align-items:stretch}.field-row input{flex:1;min-width:0}.field-row .btn{flex-shrink:0;white-space:nowrap;align-self:stretch}.field input,.field textarea,.field select{border:1px solid var(--line);border-radius:12px;padding:.75rem .9rem;background:#ffffffe6;color:var(--ink)}.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid rgba(1,139,141,.25);border-color:var(--mars)}.error{color:var(--danger);font-size:.9rem;margin:.5rem 0}.success{color:var(--ok);font-size:.9rem}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th,.table td{text-align:left;padding:.65rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;background:var(--mist);color:var(--mars-deep);font-size:.8rem}.badge.gold{background:var(--scheveningen-soft);color:#7a5d10;border:1px solid rgba(249,212,108,.7)}.badge.warn{background:#fde8e6;color:var(--danger)}.codebox{margin-top:.75rem;padding:.85rem 1rem;border:1px dashed var(--line);border-radius:12px;background:var(--mist);display:flex;flex-direction:column;gap:.5rem}.codebox code{word-break:break-all;font-size:.88rem}.muted{color:var(--ink-soft)}.grid-2{display:grid;grid-template-columns:1.1fr .9fr;gap:1.25rem}@media(max-width:860px){.grid-2{grid-template-columns:1fr}.brand-sub{display:none}.topnav{padding:.7rem .85rem}.nav-links{gap:.35rem}.nav-links a,.nav-links button.linkish{padding:.3rem .4rem;font-size:.9rem}.page{width:calc(100% - 1.25rem);padding:1rem 0 1.75rem}.panel{padding:1rem}}@media(max-width:860px){.app-shell:has(.chat-layout) .topnav{display:none}}
