@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=Inter:wght@400;500;600;700&display=swap");:root{--teal:#317d5c;--teal-dark:#245a42;--teal-mid:#3d9970;--teal-light:#8fb09d;--teal-pale:#e2eddc;--clay:#00355f;--clay-light:#00a5c7;--clay-pale:#e6f2fa;--sun:#fde57b;--sun-pale:#faedb8;--cream:#f1f1ee;--cream-dark:#e2eddc;--paper:#fff;--ink:#000;--ink-mid:#4a4a4a;--ink-light:#6b7572;--ink-muted:#9e9e9c;--border:#dcdcd8;--border-soft:#e8e8e4;--mode-eld:#317d5c;--mode-planning:#00355f;--mode-scaffold:#f26c4c;--mode-assess:#00a5c7;--font-display:"Fraunces",Georgia,serif;--font-body:"Inter",system-ui,-apple-system,sans-serif;--max-width:820px;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--shadow-sm:0 1px 3px rgba(30,94,110,.06);--shadow-md:0 4px 18px rgba(30,94,110,.09),0 2px 4px rgba(0,0,0,.03);--shadow-lg:0 12px 40px rgba(30,94,110,.13),0 4px 12px rgba(0,0,0,.04)}*{margin:0;padding:0;box-sizing:border-box}body,html{font-family:var(--font-body);color:var(--ink);background:var(--cream);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{cursor:pointer;border:none;background:none}button,input,textarea{font-family:inherit;color:inherit}input,textarea{font-size:inherit}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--cream)}.shell{max-width:var(--max-width);margin:0 auto;padding:0 20px;width:100%}.header{border-bottom:1px solid var(--border-soft);background:var(--paper);padding:18px 0;position:-webkit-sticky;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:hsla(0,0%,100%,.92)}.header-inner{justify-content:space-between;gap:16px}.header-inner,.logo{display:flex;align-items:center}.logo{gap:12px}.tntp-logo{height:32px;width:auto}.logo-divider{width:1px;height:28px;background:var(--border)}.logo-mark{font-family:var(--font-display);font-weight:700;font-size:28px;color:var(--teal);letter-spacing:-.02em}.logo-mark em{font-style:italic;color:var(--clay)}.logo-sub{font-size:12px;color:var(--ink-light);letter-spacing:.04em;text-transform:uppercase;font-weight:600}.header-meta{font-size:13px;color:var(--ink-light);text-align:right}.header-meta strong{color:var(--ink-mid);font-weight:600}.hero{padding:48px 0 32px;text-align:center}.hero h1{font-family:var(--font-display);font-size:clamp(32px,5vw,44px);font-weight:500;line-height:1.15;letter-spacing:-.02em;color:var(--ink);margin-bottom:14px}.hero h1 em{font-style:italic;color:var(--clay);font-weight:500}.hero p{font-size:17px;color:var(--ink-mid);max-width:580px;margin:0 auto;line-height:1.55}.modes{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px;margin:32px 0 24px}@media (min-width:640px){.modes{grid-template-columns:repeat(4,1fr)}}.mode-btn{background:var(--paper);border:1.5px solid var(--border);border-radius:var(--radius-md);padding:16px 14px;text-align:left;transition:all .15s ease;position:relative;overflow:hidden}.mode-btn:hover{border-color:var(--teal-light);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.mode-btn.active{border-color:var(--teal);background:var(--teal-pale);box-shadow:var(--shadow-sm)}.mode-btn.active:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--teal)}.mode-icon{font-size:22px;margin-bottom:6px;display:block}.mode-label{font-weight:600;font-size:14px;color:var(--ink);margin-bottom:2px}.mode-tagline{font-size:12px;color:var(--ink-light);line-height:1.35}.starters{display:grid;grid-template-columns:1fr;grid-gap:10px;gap:10px;margin-bottom:24px}@media (min-width:640px){.starters{grid-template-columns:1fr 1fr}}.starter{background:var(--paper);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:14px 16px;font-size:14px;color:var(--ink-mid);text-align:left;transition:all .15s ease;line-height:1.45}.starter:hover{border-color:var(--teal-light);background:var(--teal-pale);color:var(--ink);transform:translateY(-1px)}.starters-label{font-size:12px;font-weight:600;color:var(--ink-light);text-transform:uppercase;letter-spacing:.06em;margin:8px 0 10px}.chat{flex:1 1;gap:18px;padding:24px 0 140px}.chat,.msg{display:flex;flex-direction:column}.msg{gap:6px;max-width:100%}.msg-label{font-size:12px;font-weight:600;color:var(--ink-light);letter-spacing:.04em;text-transform:uppercase}.msg-user .msg-label{color:var(--clay)}.msg-assistant .msg-label{color:var(--teal)}.msg-body{font-size:15px;line-height:1.55;color:var(--ink);background:var(--paper);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:16px 20px;word-wrap:break-word;overflow-wrap:break-word}.msg-user .msg-body{background:var(--clay-pale);border-color:#cdd8e8}.msg-body strong{font-weight:700;color:var(--ink)}.msg-body em{font-style:italic}.msg-body code{background:var(--cream-dark);padding:1px 6px;border-radius:4px;font-family:SF Mono,Menlo,monospace;font-size:13.5px}.msg-body ol,.msg-body ul{margin:6px 0 6px 20px;padding:0}.msg-body li{margin-bottom:3px;line-height:1.5}.msg-body li+li{margin-top:2px}.msg-body h1,.msg-body h2,.msg-body h3{font-family:var(--font-display);font-weight:700;margin:12px 0 4px;line-height:1.25}.msg-body h2{font-size:18px}.msg-body h3{font-size:16px}.msg-body p{margin:0 0 6px}.msg-body p:last-child{margin-bottom:0}.msg-body p+p{margin-top:0}.msg-body hr{border:none;border-top:1px solid var(--border);margin:10px 0}.msg-body table{width:100%;border-collapse:collapse;margin:8px 0;font-size:14px}.msg-body td,.msg-body th{border:1px solid var(--border);padding:8px 12px;text-align:left;vertical-align:top;line-height:1.45}.msg-body th{background:var(--cream);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.02em;color:var(--ink-mid)}.msg-body td{background:var(--paper)}.msg-body tr:nth-child(2n) td{background:var(--cream)}.msg-body blockquote{border-left:3px solid var(--teal);margin:8px 0;padding:8px 16px;background:var(--teal-pale);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-style:italic;color:var(--ink-mid)}.cursor{display:inline-block;width:7px;height:16px;background:var(--teal);margin-left:2px;animation:blink 1s infinite;vertical-align:text-bottom}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.composer{position:fixed;bottom:0;left:0;right:0;background:linear-gradient(to top,var(--cream) 70%,hsla(38,58%,96%,0));padding:20px 0 24px;z-index:5}.composer-inner{max-width:var(--max-width);margin:0 auto;padding:0 20px}.composer-box{display:flex;gap:8px;align-items:flex-end;background:var(--paper);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:10px 10px 10px 16px;box-shadow:var(--shadow-md);transition:border-color .15s ease}.composer-box:focus-within{border-color:var(--teal)}.composer textarea{flex:1 1;border:none;outline:none;resize:none;background:transparent;font-size:15px;line-height:1.5;color:var(--ink);padding:8px 0;min-height:24px;max-height:200px;font-family:inherit}.composer textarea::placeholder{color:var(--ink-muted)}.send-btn{background:var(--teal);color:#fff;font-weight:600;font-size:14px;padding:9px 18px;border-radius:var(--radius-md);transition:all .15s ease;flex-shrink:0}.send-btn:hover:not(:disabled){background:var(--teal-dark)}.send-btn:disabled{background:var(--ink-muted);cursor:not-allowed;opacity:.6}.composer-hint{font-size:11px;color:var(--ink-muted);text-align:center;margin-top:8px;letter-spacing:.02em}.actions{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.action-btn{font-size:13px;color:var(--ink-light);background:var(--paper);border:1px solid var(--border-soft);padding:6px 12px;border-radius:100px;font-weight:500;transition:all .15s ease}.action-btn:hover{border-color:var(--teal-light);color:var(--teal);background:var(--teal-pale)}.mode-banner{font-size:13px;color:var(--ink-light);margin:0 0 16px;padding:8px 14px;background:var(--paper);border:1px solid var(--border-soft);border-radius:100px;display:inline-flex;align-items:center;gap:8px}.mode-banner strong{color:var(--teal);font-weight:600}.footer{padding:24px 0;text-align:center;font-size:12px;color:var(--ink-muted);border-top:1px solid var(--border-soft);margin-top:60px}.footer em{font-style:italic;color:var(--clay)}.error-banner{background:#fde8e2;border:1px solid #f0b8a0;color:#8b3a1c;padding:12px 16px;border-radius:var(--radius-md);font-size:14px;margin-bottom:16px}