:root{--green:#004f42;--dark:#00382f;--gold:#ffc72c;--cream:#fbf7ed;--paper:#fff;--ink:#172b25;--muted:#52665e;--line:#d2ddd6;--danger:#922728;--danger-bg:#fff2ef;--shadow:0 8px 26px #00382f09;color:var(--ink);background:var(--cream);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;line-height:1.6}a{color:var(--green);text-underline-offset:.2em}a:hover{color:var(--dark)}button,input,textarea{font:inherit}[hidden]{display:none!important}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--green);outline-offset:3px;box-shadow:0 0 0 6px var(--gold)}.skip-link{position:absolute;left:-9999px;z-index:10;background:var(--gold);color:var(--ink);padding:.75rem 1rem}.skip-link:focus{left:1rem;top:1rem}.site-header{background:var(--green);border-bottom:5px solid var(--gold);color:#fff}.header-inner{max-width:1220px;margin:auto;padding:1.2rem 1.75rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.brand{display:flex;align-items:center;gap:1.05rem;text-decoration:none;color:#fff}.brand:hover{color:#fff}.brand-name{font-size:2.15rem;font-weight:900;letter-spacing:-.07em;line-height:1}.brand-dot{color:var(--gold)}.brand-caption{border-left:1px solid #ffffff50;padding-left:1rem;font-size:.79rem;letter-spacing:.035em;max-width:8rem;line-height:1.45}.header-actions{display:flex;gap:.8rem;align-items:center}.header-actions form{margin:0}.group-badge{font-size:.85rem;font-weight:750;border:1px solid #8fb9ac;border-radius:999px;padding:.3rem .8rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;padding:.7rem 1.05rem;min-height:46px;border-radius:.4rem;border:1px solid var(--green);font-weight:750;font-size:.93rem;line-height:1.4;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.primary{background:var(--green);color:#fff}.primary:hover{background:var(--dark);color:#fff}.secondary{background:transparent;color:var(--green)}.secondary:hover{background:#e9f0e9;color:var(--dark)}.header-button{border-color:#8bb3a7;color:#fff;background:transparent;padding:.45rem .85rem;min-height:40px}.header-button:hover{background:#fff;color:var(--green)}button:disabled{opacity:.6;cursor:wait}.full-width{width:100%}.demo-banner{text-align:center;background:var(--gold);color:#29320d;padding:.45rem 1rem;font-size:.9rem}.page-shell{max-width:1220px;padding:2.8rem 1.75rem 4rem;margin:auto;min-height:calc(100vh - 220px)}h1,h2,h3{color:var(--dark);line-height:1.15;margin-top:0}h1{font-size:clamp(2.25rem,4.6vw,3.8rem);font-weight:780;letter-spacing:-.04em;margin-bottom:1rem}h2{font-size:1.65rem;letter-spacing:-.025em;margin-bottom:.8rem}h3{font-size:1.3rem;letter-spacing:-.02em;margin-bottom:.4rem}p{margin-top:0}.eyebrow{color:var(--green);font-size:.73rem;letter-spacing:.14em;font-weight:850;text-transform:uppercase;margin:0 0 .8rem}.lede{font-size:1.09rem;line-height:1.75;color:var(--muted);max-width:60ch}.small{font-size:.82rem}.muted{color:var(--muted)}.card{background:var(--paper);border:1px solid var(--line);border-radius:.75rem;box-shadow:var(--shadow);padding:1.6rem}.notice{border:1px solid #adc7b9;border-left:4px solid var(--green);border-radius:.45rem;padding:.95rem 1.15rem;background:#eef5ee;font-size:.91rem}.notice p:last-child{margin-bottom:0}.notice.error{border-color:#dfaeaa;border-left-color:var(--danger);background:var(--danger-bg)}.error-text,.field-error,.errorlist{color:var(--danger)}.errorlist{padding-left:1.2rem;margin:.4rem 0;font-size:.9rem}.login-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.85fr);gap:5rem;align-items:center;max-width:1060px;margin:2rem auto 3rem}.login-intro .lede{max-width:44ch;margin-bottom:1.8rem}.intro-detail{display:flex;gap:1rem;align-items:flex-start;max-width:43ch;margin:.9rem 0}.intro-detail>span{font-size:.72rem;color:var(--green);font-weight:850;border-top:2px solid var(--gold);padding-top:.2rem}.intro-detail p{font-size:.9rem;margin:0;color:var(--muted)}.login-card{padding:2rem;border-top:5px solid var(--gold)}.login-card h2{font-size:2rem}.login-form{margin:1.4rem 0}.field{margin-bottom:1.1rem}label{display:block;font-size:.87rem;font-weight:750;margin-bottom:.35rem}input[type=text],input[type=password],textarea{width:100%;padding:.75rem .85rem;border:1px solid #96ada0;border-radius:.4rem;background:#fff;color:var(--ink);max-width:100%}.home-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem;margin-bottom:1.5rem}.home-heading .lede{max-width:43ch;margin-bottom:1.2rem}.welcome-note{margin-bottom:2.4rem}.welcome-note p{margin-bottom:.5rem}.section-heading{font-size:1.2rem;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem}.section-heading>span{font-size:.8rem;font-weight:500;color:var(--muted);letter-spacing:0}.character-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.character-card{display:flex;flex-direction:column;padding:1.4rem;gap:1rem}.character-top{display:flex;justify-content:space-between;align-items:center}.initial-badge{width:3.6rem;height:3.6rem;border-radius:50%;background:#e5efe6;color:var(--green);display:grid;place-items:center;font-family:Georgia,serif;font-size:1.4rem;letter-spacing:-.04em}.character-card:nth-child(3n+2) .initial-badge{background:#fff0bb}.character-card:nth-child(3n) .initial-badge{background:#f3e8db}.character-type{font-size:.64rem;color:#687b70;letter-spacing:.08em;text-transform:uppercase}.character-role{color:var(--green);font-size:.88rem;margin:0 0 .7rem;font-weight:650}.character-description{font-size:.88rem;color:var(--muted);margin:0 0 .3rem}.character-card form{margin-top:auto}.character-card .button{justify-content:space-between;font-size:.82rem}.recent-section{margin-top:3rem}.conversation-list{border:1px solid var(--line);background:#fff;border-radius:.65rem;overflow:hidden}.conversation-row{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.3rem;border-top:1px solid var(--line);text-decoration:none;gap:1rem}.conversation-row:first-child{border-top:0}.conversation-row:hover{background:#f1f6ef}.conversation-row strong,.conversation-row small{display:block}.conversation-row small{font-size:.76rem;color:var(--muted);margin-top:.15rem}.row-action{font-size:.85rem}.home-footnote{margin:2rem 0 0;font-size:.86rem;color:var(--muted);max-width:80ch}.back-link{display:inline-block;font-size:.85rem;text-decoration:none;margin-bottom:1.5rem}.interview-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.interview-heading h1{font-size:clamp(2rem,3.2vw,2.9rem);margin-bottom:.55rem}.interview-heading .eyebrow{margin-bottom:.55rem}.interview-tools{display:flex;gap:.5rem;flex-wrap:wrap;padding-bottom:.75rem}.interview-tools .button{font-size:.8rem;min-height:40px;padding:.5rem .75rem}.tool-status{min-height:1.1rem;margin:.25rem 0 .6rem;text-align:right}.interview-layout{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:1.35rem;align-items:start}.chat-panel{background:#fff;border:1px solid var(--line);border-radius:.75rem;overflow:hidden;box-shadow:var(--shadow)}.chat-header{padding:1rem 1.25rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;border-bottom:1px solid var(--line)}.chat-header h2{font-size:1rem;letter-spacing:0;margin:0}.saved-label{font-size:.72rem;color:var(--muted)}.transcript{list-style:none;margin:0;padding:1.1rem 1.25rem;min-height:350px}.turn{padding:.1rem 0 .65rem}.message{max-width:91%;border:1px solid var(--line);border-radius:.75rem;padding:.8rem 1rem;margin:.65rem 0;overflow-wrap:anywhere}.message.question{background:#eaf2ea;margin-left:auto;border-color:#c1d3c5}.message.answer{background:var(--cream);margin-right:auto;border-color:#e7dfcd}.message-label{color:var(--green);font-size:.74rem;font-weight:800;margin:0 0 .35rem}.message-text{white-space:pre-wrap;font-size:.94rem;tab-size:2;overflow-wrap:anywhere}.turn-status{font-size:.87rem;color:var(--muted);margin:0}.turn-status.error-text{color:var(--danger)}.turn[data-status=pending] .turn-status:not([hidden])::before{content:"";display:inline-block;width:.45rem;height:.45rem;border-radius:50%;background:var(--green);margin-right:.5rem;animation:pulse 1.2s ease-in-out infinite}.empty-chat{text-align:center;padding:3.4rem .5rem;color:var(--muted)}.empty-mark{font-family:Georgia,serif;font-size:4rem;line-height:.8;color:#acc5b4;margin-bottom:1rem}.empty-chat h3{font-size:1.4rem}.empty-chat p{font-size:.88rem;line-height:1.8;margin-bottom:0}.composer{position:sticky;bottom:0;padding:1rem 1.25rem;background:#fff;border-top:1px solid var(--line)}.composer textarea{min-height:90px;max-height:240px;resize:vertical}.composer textarea:read-only{background:#f5f6f3}.composer-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.65rem}.composer-actions p{margin:0;font-size:.75rem;max-width:38ch}.composer-actions .button{flex-shrink:0;font-size:.82rem}.recovery{margin:1rem 1.25rem}.recovery-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.recovery-actions .button,.recovery-actions a{font-size:.8rem}.interview-sidebar .card{margin-bottom:1rem}.compact-card{padding:1.25rem}.compact-card h2{font-size:1.3rem}.compact-card p{font-size:.84rem;color:var(--muted)}.compact-card .eyebrow{font-size:.63rem;color:var(--green)}.text-link{font-size:.8rem;font-weight:700;text-decoration:none}.privacy-note{color:var(--muted);padding:.25rem .25rem;line-height:1.65;font-size:.75rem}.record-list{padding:0;list-style:none;margin:0 0 .8rem}.record-list li{border-top:1px solid var(--line)}.record-list a{display:flex;justify-content:space-between;gap:.6rem;padding:.65rem 0;font-size:.82rem;line-height:1.5;text-decoration:none}.record-list a:hover{text-decoration:underline}.record-download{font-size:1.05rem}.error-card{max-width:650px;margin:3rem auto}.error-card h1{font-size:2.3rem}.site-footer{max-width:1164px;margin:0 auto;border-top:1px solid #c6d1c7;padding:1.4rem 0 2rem;display:flex;justify-content:space-between;gap:1rem;color:var(--muted);font-size:.76rem}.site-footer p{margin:0}@keyframes pulse{0%,100%{opacity:.3}50%{opacity:1}}
@media(min-width:1100px){.character-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.character-card{padding:1.25rem}.character-card h3{font-size:1.22rem}}
@media(max-width:900px){.login-layout{gap:2rem;grid-template-columns:1fr 1fr}.home-heading{align-items:flex-start;gap:2rem}.interview-layout{grid-template-columns:minmax(0,1fr) 230px}.interview-tools{max-width:260px;justify-content:flex-end}.site-footer{margin-inline:1.75rem}.character-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.page-shell{padding:1.7rem 1rem 3rem}.header-inner{padding:1rem}.brand-caption{display:none}.brand-name{font-size:1.9rem}.header-actions{gap:.45rem}.group-badge{font-size:.75rem;padding:.25rem .55rem}.header-button{font-size:.77rem}.home-heading,.interview-heading{display:block}.home-heading h1 br{display:none}.home-heading .lede{max-width:none}.home-heading{margin-bottom:1rem}.interview-tools{max-width:none;justify-content:flex-start;padding-top:.5rem}.interview-layout{grid-template-columns:1fr}.interview-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.interview-sidebar .card{margin:0}.privacy-note{grid-column:1/-1;margin:0}.login-layout{grid-template-columns:1fr;gap:1.7rem;max-width:480px;margin:0 auto}.login-intro h1{font-size:2.6rem}.login-intro .lede{margin-bottom:1rem}.intro-detail{display:none}.login-card{padding:1.5rem}.site-footer{margin-inline:1rem;flex-direction:column;gap:.2rem}.section-heading{align-items:flex-start;flex-direction:column;gap:.3rem}.tool-status{text-align:left}.transcript{padding:.6rem .85rem}.message{max-width:95%;padding:.75rem .8rem}.composer{padding:.85rem}.composer-actions{align-items:flex-start;gap:.7rem}.composer-actions .button{min-height:44px}.chat-header{padding:.9rem}.saved-label{font-size:.66rem}.empty-chat{padding:3rem .4rem}.recovery{margin:.85rem}.conversation-row{padding:.85rem 1rem}.row-action{font-size:.75rem}}
@media(max-width:440px){.character-grid{grid-template-columns:1fr}.character-card{gap:.85rem}.character-description{max-width:40ch}.interview-sidebar{grid-template-columns:1fr}.composer-actions{flex-wrap:wrap}.composer-actions p{max-width:none}.composer-actions .button{width:100%}.conversation-row{align-items:flex-start}.interview-tools .button{flex:1}.home-heading h1{font-size:2.4rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(prefers-contrast:more){:root{--muted:#30483d;--line:#73897a}.card,.message,.chat-panel,.notice{border-width:2px}}
@media(forced-colors:active){.initial-badge,.group-badge,.button{border:1px solid currentColor}}
.instructor-login{max-width:520px;margin:1.5rem auto;border-top:5px solid var(--gold);padding:2rem}.instructor-login h1{font-size:2.5rem}.instructor-heading{margin-bottom:1.8rem}.instructor-heading h1{font-size:clamp(2.2rem,4vw,3rem)}.instructor-group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.instructor-group-card{display:flex;flex-direction:column}.instructor-group-card .button{margin-top:auto;justify-content:space-between}.instructor-group-card h2{font-size:1.5rem}.instructor-username-label{margin-bottom:.15rem}.instructor-username{font-weight:700;overflow-wrap:anywhere;margin-bottom:1.4rem}.instructor-inline-username{overflow-wrap:anywhere}.instructor-edit-layout{display:grid;grid-template-columns:minmax(0,650px) minmax(220px,300px);gap:1.4rem;align-items:start}.instructor-password-fields{border:0;border-top:1px solid var(--line);margin:1.5rem 0 0;padding:1rem 0 0;min-width:0}.instructor-password-fields legend{font-weight:750;color:var(--dark);padding:0 .6rem 0 0}.instructor-confirm{border-top:1px solid var(--line);padding-top:1rem;margin-top:.5rem}.instructor-confirm>p{margin:.35rem 0 0}.instructor-form-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.4rem}.instructor-edit-note h2{font-size:1.2rem}.instructor-edit-note p{font-size:.88rem}@media(max-width:760px){.instructor-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.instructor-edit-layout{grid-template-columns:1fr}.instructor-edit-note{grid-row:1}.instructor-login{padding:1.5rem;margin:.5rem auto}.header-actions{flex-wrap:wrap;justify-content:flex-end}}@media(max-width:440px){.instructor-group-grid{grid-template-columns:1fr}.instructor-form-actions .button{flex:1}.instructor-login h1{font-size:2.2rem}}
