/* Digital Twin only. Existing homepage tokens, stylesheet and behavior are reused. */
.twin-page .twin-layout{max-width:1100px;margin:0 auto;padding:132px 0 44px;display:grid;grid-template-columns:310px minmax(0,1fr);gap:48px;align-items:start}
.twin-page .twin-back{font-size:.875rem;color:var(--text-secondary);display:inline-block;margin-bottom:46px}
.twin-page .twin-back:hover{color:var(--text)}
.twin-page .twin-kicker{font-family:'JetBrains Mono',monospace;font-size:.75rem;letter-spacing:.16em;color:var(--text-secondary);margin-bottom:20px}
.twin-page h1{font-size:clamp(3.5rem,6.4vw,5rem);font-weight:800;line-height:.96;letter-spacing:-.065em;margin-bottom:26px}
.twin-page h1 span{color:var(--text-secondary)}
.twin-page .twin-description{font-size:1.0625rem;color:var(--text-secondary);line-height:1.8}
.twin-page .twin-profile{display:flex;gap:12px;align-items:center;border-top:1px solid var(--border);margin-top:40px;padding-top:25px}
.twin-page .twin-profile strong{font-size:1rem;font-weight:600;display:block}
.twin-page .twin-profile div>span{font-size:.875rem;color:var(--text-secondary)}
.twin-page .twin-note{font-size:.875rem;line-height:1.85;color:var(--text-secondary);margin-top:22px}
.twin-page .twin-topics{display:flex;gap:14px;flex-wrap:wrap;font-size:.75rem;letter-spacing:.04em;color:var(--text-secondary);margin-top:24px;font-family:'JetBrains Mono',monospace}
.twin-page .twin-chat{background:var(--card-bg);border:1px solid var(--border);border-radius:26px;box-shadow:var(--shadow);min-width:0;overflow:hidden}
.twin-page .twin-chat-header{padding:24px 28px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px}
.twin-page .twin-chat-header h2{font-size:1rem;font-weight:600;letter-spacing:-.02em}
.twin-page .twin-chat-header p{font-size:.8125rem;color:var(--text-secondary);margin-top:2px}
.twin-page .twin-quiet{font-size:.875rem;color:var(--text-secondary);min-height:44px;padding:6px 8px;white-space:nowrap}
.twin-page .twin-quiet:hover{color:var(--text)}
.twin-page .twin-messages{height:clamp(280px,40vh,500px);overflow-y:auto;overscroll-behavior:contain;padding:28px;scrollbar-width:thin;scrollbar-color:var(--text-secondary) transparent;overflow-wrap:anywhere}
.twin-page .twin-message{max-width:94%;margin-bottom:26px;animation:twin-appear .25s var(--ease)}
.twin-page .twin-message:last-child{margin-bottom:4px}
.twin-page .twin-message-label{display:block;font-size:.75rem;font-family:'JetBrains Mono',monospace;letter-spacing:.1em;color:var(--text-secondary);margin-bottom:8px}
.twin-page .twin-message-text{white-space:pre-wrap;font-size:1rem;line-height:1.8}
.twin-page .twin-message-user{margin-left:auto;width:fit-content;max-width:88%}
.twin-page .twin-message-user .twin-message-text{background:var(--btn-solid-bg);color:var(--btn-solid-text);border-radius:18px 18px 4px 18px;padding:12px 18px}
.twin-page .twin-message-user .twin-message-label{text-align:right}
.twin-page .twin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.twin-page .twin-actions .project-button{font-size:.8125rem;min-height:44px}
.twin-page .twin-source{font-size:.75rem;color:var(--text-secondary);margin-top:12px;line-height:1.6}
.twin-page .twin-suggestions{padding:8px 28px 20px;display:flex;flex-wrap:wrap;gap:8px}
.twin-page .twin-suggestions button{font-size:.875rem;line-height:1.5;border:1px solid var(--border);border-radius:999px;padding:10px 14px;color:var(--text-secondary);text-align:left;min-height:44px;transition:border-color .2s,color .2s}
.twin-page .twin-suggestions button:hover{border-color:var(--text-secondary);color:var(--text)}
.twin-page .twin-composer{border-top:1px solid var(--border);padding:20px 28px 10px}
.twin-page .twin-composer>label{display:block;font-size:.875rem;color:var(--text-secondary);margin-bottom:8px}
.twin-page .twin-input-row{display:flex;align-items:flex-end;gap:12px;border:1px solid var(--border);background:var(--bg);border-radius:18px;padding:12px}
.twin-page textarea{resize:vertical;min-height:52px;max-height:200px;width:100%;min-width:0;background:transparent;color:var(--text);border:0;font:1rem/1.6 var(--font-body);padding:2px;outline:none}
.twin-page textarea::placeholder{color:var(--text-secondary);opacity:1}
.twin-page .twin-input-row:focus-within{outline:2px solid var(--text-secondary);outline-offset:3px}
.twin-page .twin-input-row .project-button{flex-shrink:0;min-height:44px;font-size:.875rem}
.twin-page .twin-composer-footer{display:flex;justify-content:space-between;gap:12px;color:var(--text-secondary);font-size:.75rem;margin-top:10px}
.twin-page .twin-chat-footer{padding:8px 28px 22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--text-secondary);font-size:.75rem}
.twin-page .twin-chat-footer label{font-size:.8125rem;display:flex;align-items:center;gap:8px;cursor:pointer;min-height:28px}
.twin-page input[type=checkbox]{accent-color:var(--text);width:16px;height:16px}
.twin-page .twin-thinking{padding:0 28px 12px;font-size:.875rem;color:var(--text-secondary)}
.twin-page .twin-thinking span{letter-spacing:.2em;animation:twin-pulse 1s infinite;margin-right:8px}
.twin-page .twin-error{margin:0 28px 16px;padding:12px 16px;border:1px solid var(--text-secondary);border-radius:12px;font-size:.875rem}
.twin-page .twin-error button{text-decoration:underline;min-height:44px;margin-left:10px;font-size:.875rem}
.twin-page button:disabled{opacity:.45;cursor:not-allowed;transform:none}
.twin-page :focus-visible{outline:2px solid var(--text);outline-offset:4px}
.twin-page [hidden]{display:none!important}
.twin-page .twin-skip{position:fixed;left:20px;top:-120px;z-index:2100;background:var(--card-bg);padding:12px 20px;border:1px solid var(--text)}
.twin-page .twin-skip:focus{top:20px}
.twin-page .twin-noscript{padding:24px;text-align:center}
@keyframes twin-appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes twin-pulse{50%{opacity:.4}}
@media(max-width:1160px){.twin-page .twin-layout{padding-left:24px;padding-right:24px;gap:32px;grid-template-columns:280px minmax(0,1fr)}}
@media(max-width:900px){.twin-page .twin-layout{grid-template-columns:1fr;gap:28px;padding-top:110px;max-width:760px}.twin-page .twin-back{margin-bottom:20px}.twin-page h1 br{display:none}.twin-page h1 br::after{content:' '}.twin-page h1{font-size:3.5rem;margin-bottom:16px}.twin-page .twin-description br{display:none}.twin-page .twin-profile,.twin-page .twin-topics,.twin-page .twin-note{display:none}.twin-page .twin-messages{height:360px}}
@media(max-width:640px){.twin-page .twin-layout{padding:96px 16px 24px;gap:22px}.twin-page .twin-kicker{margin-bottom:12px}.twin-page h1{font-size:3rem}.twin-page .twin-description{font-size:1rem}.twin-page .twin-chat{border-radius:22px}.twin-page .twin-chat-header{padding:18px}.twin-page .twin-messages{padding:22px 18px;height:340px}.twin-page .twin-suggestions{padding:6px 18px 18px}.twin-page .twin-composer{padding:16px 18px 8px}.twin-page .twin-composer-footer{flex-wrap:wrap}.twin-page .twin-composer-footer>span:first-child{display:none}.twin-page .twin-composer-footer>span:last-child{margin-left:auto}.twin-page .twin-chat-footer{padding:8px 18px 18px}.twin-page .twin-error{margin:0 18px 16px}.twin-page .twin-thinking{padding-left:18px}.twin-page .twin-input-row{gap:8px}.twin-page .twin-input-row .project-button{padding:10px 14px}}
