
:root{color-scheme:dark;--ink:#edf2e7;--muted:#a0ae95;--paper:#090c09;--surface:#121810;--line:#2c3826;--forest:#0e130d;--green:#d2f78c;--accent:#d2f78c;--gold:#dfc18d;--serif:Georgia,'Times New Roman',serif;--sans:'Avenir Next',Avenir,'Segoe UI',sans-serif;font-family:var(--sans);color:var(--ink);background:var(--paper);font-size:15px}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #d2f78c;outline-offset:4px}button{border:0}button,.btn{transition:background .15s}button:hover:not(:disabled){filter:brightness(.96)}.skip{position:fixed;top:-60px;background:var(--paper);padding:15px;z-index:100}.skip:focus{top:0}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:var(--forest);color:#edf2e7;padding:34px 24px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:230px}.brand{font-size:26px;font-weight:600;letter-spacing:3px;display:flex;align-items:center;gap:12px;text-decoration:none}.brand svg{width:31px;height:31px;fill:var(--green)}.brand-sub{color:#7e8f72;margin:9px 0 43px 43px;font-size:11px;letter-spacing:.7px}.nav{display:grid;gap:7px}.nav button{display:flex;align-items:center;gap:13px;background:none;color:#a0ae95;border-radius:10px;text-align:left;padding:14px 15px;font-size:14px}.nav button.active{background:#293d1e;color:#d2f78c}.ico{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;flex:none}.nav .count{margin-left:auto;background:#30441f;color:#d2f78c;padding:2px 7px;border-radius:20px;font-size:11px}.sidebar-bottom{margin-top:auto;padding-top:42px;font-size:12px;color:#a0ae95;line-height:1.7}.sidebar-bottom a{display:block;margin-top:20px;text-decoration:none}.connection-dot{display:inline-block;width:7px;height:7px;background:#d2f78c;border-radius:50%;margin-right:8px}.connection-dot.off{background:#dfc18d}.main-wrap{grid-column:2}.topbar{height:86px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 44px;color:var(--muted);font-size:13px}.topbar .name{color:var(--ink);font-size:14px}.avatar{display:inline-grid;place-items:center;background:#2e4121;border-radius:50%;width:33px;height:33px;margin-left:12px;font-size:12px}.content{max-width:1450px;margin:auto;padding:36px 44px 60px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px;gap:20px}.page-head h1{font-family:var(--serif);font-weight:400;font-size:37px;letter-spacing:-1.1px;margin:0 0 9px}.page-head p{color:var(--muted);margin:0;line-height:1.6}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:9px;padding:12px 18px;background:var(--accent);color:#17240e;text-decoration:none;font-size:13px;font-weight:500;white-space:nowrap}.btn.secondary{background:#27381c;color:var(--ink)}.btn.quiet{background:transparent;color:var(--muted);border:1px solid var(--line)}.btn.light{background:var(--green);color:var(--forest)}.btn.small{padding:9px 13px;font-size:12px}.hero{background:#0c120a;color:#edf2e7;border-radius:18px;min-height:310px;padding:38px 42px;position:relative;overflow:hidden;display:flex;align-items:center;gap:20px}.hero-copy{position:relative;z-index:1;max-width:510px}.hero .overline{font-size:12px;color:#d2ebad;display:flex;align-items:center;gap:8px}.hero h2{font:400 clamp(34px,3.4vw,52px)/1.12 var(--serif);letter-spacing:-1.3px;margin:21px 0 17px}.hero p{max-width:405px;color:#b2c39e;font-size:14px;line-height:1.75;margin:0 0 25px}.hero-art{width:360px;position:absolute;right:8px;top:-12px;bottom:-10px;opacity:.85}.hero-art svg{width:100%;height:100%}.hero-links{display:flex;align-items:center;gap:18px}.hero-note{font-size:11px;color:#a0ae95}.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);margin:24px 0 32px;background:#172010;border-radius:12px}.metric{padding:20px 24px;border-right:1px solid #2c3826}.metric:last-child{border:0}.metric strong{font-family:var(--serif);font-weight:400;font-size:29px;display:block;margin-bottom:5px}.metric span{font-size:12px;color:var(--muted)}.two-col{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:26px}.section-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.section-top h2{font-size:18px;font-weight:500;margin:0}.section-top small{font-size:12px;color:var(--muted)}.panel{background:var(--surface);border:1px solid var(--line);padding:25px;border-radius:13px}.stack{display:grid;gap:18px}.activity{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.activity:last-child{border:0}.activity-mark{width:32px;height:32px;background:#203017;border-radius:8px;display:grid;place-items:center;color:#a8ce6b}.activity h3{margin:0 0 4px;font-size:13px;font-weight:500;overflow-wrap:anywhere}.activity p{margin:0;font-size:11px;color:var(--muted);line-height:1.5}.activity small{font-size:11px;color:var(--muted)}.chip{font-size:11px;background:#26391b;color:#d2f78c;display:inline-block;padding:5px 9px;border-radius:6px}.empty{padding:25px 8px;color:var(--muted);line-height:1.7;font-size:14px}.empty strong{display:block;color:var(--ink);font-weight:500;margin-bottom:7px}.prompt-note{font:400 24px/1.4 var(--serif);margin:10px 0 16px;letter-spacing:-.3px}.muted{color:var(--muted);font-size:13px;line-height:1.7}.fine{color:var(--muted);font-size:11px;line-height:1.6}.line{height:1px;background:var(--line);margin:22px 0}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.spread{justify-content:space-between}.field{display:grid;gap:9px;margin-bottom:17px;font-size:13px}.field input,.field textarea,.field select,input.date{background:var(--surface);border:1px solid #33442a;border-radius:8px;color:var(--ink);padding:12px;width:100%}.field textarea{resize:vertical;min-height:115px;line-height:1.7}.field select{min-height:44px}.source-grid{display:grid;grid-template-columns:1fr 320px;gap:25px}.source-list{display:grid;gap:10px;max-height:650px;overflow:auto}.source{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:16px}.source-top{display:flex;gap:13px;align-items:flex-start}.source input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px;margin:3px 0;flex:none}.source label{font-weight:500;cursor:pointer;font-size:14px;overflow-wrap:anywhere}.source .meta{margin:7px 0;font-size:11px;color:var(--muted)}details summary{cursor:pointer;font-size:12px;color:var(--accent);margin-top:12px}pre{font:12px/1.7 var(--sans);white-space:pre-wrap;word-break:break-word;max-height:250px;overflow:auto;background:#172010;padding:15px;border-radius:8px}.study-layout{max-width:920px;margin:0 auto}.study-card{background:var(--surface);border:1px solid var(--line);border-radius:17px;overflow:hidden}.study-card-head{padding:20px 32px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}.study-body{padding:34px 38px}.study-body h2{font:400 29px/1.45 var(--serif);letter-spacing:-.4px;margin:15px 0 26px}.study-answer{min-height:140px!important;background:var(--paper)!important}.rating{display:flex;gap:8px}.rating button{background:#26391b;color:var(--ink);border-radius:8px;width:43px;height:40px}.rating button.selected{background:var(--accent);color:#17240e}.answer-box{margin-top:22px;border-top:1px solid var(--line);padding-top:22px;line-height:1.8;font-size:14px}.answer-box h3{font-size:15px;font-weight:500}.quote{border-left:3px solid #476231;padding-left:16px;margin:18px 0;color:var(--muted);font-size:12px}.feedback{padding:22px;background:#203017;border-radius:11px;margin:20px 0;line-height:1.7}.feedback strong{display:block;margin-bottom:8px}.level-path{display:flex;gap:0;margin-bottom:27px}.level-step{flex:1;padding:16px 20px;border-bottom:2px solid #2c3826;color:var(--muted);font-size:12px}.level-step.active{border-color:var(--accent);color:var(--ink)}.level-step span{display:block;font-weight:500;font-size:14px;margin-bottom:4px}.progress-track{height:5px;background:#26391b;border-radius:20px;margin-top:12px;overflow:hidden}.progress-fill{height:100%;background:#a8ce6b}.observation h3{font-size:16px;font-weight:500;margin:0 0 10px}.observation p{font-size:13px;color:var(--muted);line-height:1.75}.sample{font-size:11px;color:var(--muted)}.timer{text-align:center;padding:32px 0}.timer-number{font:400 clamp(65px,8vw,110px)/1.3 var(--serif);font-variant-numeric:tabular-nums;color:var(--ink);letter-spacing:-5px}.timer .row{justify-content:center;margin:20px 0}.notice{background:#1f2a16;border:1px solid #3c512b;border-radius:10px;padding:15px 18px;font-size:13px;line-height:1.6;margin:20px 0}.error{background:#302a1b;border-color:#66562e;color:#dcc692}.connecting{max-width:650px;margin:35px auto}.connecting h2{font:400 30px/1.3 var(--serif)}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th,td{border-bottom:1px solid var(--line);padding:13px 10px;vertical-align:top}th{font-weight:500;color:var(--muted)}.busy-banner{padding:15px 22px;background:#203017;display:flex;align-items:center;gap:12px;font-size:13px;border-radius:10px;margin-bottom:22px}.spinner{width:15px;height:15px;border:2px solid #476231;border-top-color:var(--ink);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);padding:14px 22px;background:var(--forest);color:white;box-shadow:0 8px 35px #0006;border-radius:10px;font-size:13px;z-index:30;max-width:90vw;display:none}#toast.show{display:block}.footer-note{font-size:11px;color:var(--muted);margin-top:30px}.mobile-brand{display:none}.project-filter{max-width:230px}.hint{padding:14px 18px;background:#302a1b;border-radius:8px;margin:18px 0;font-size:13px;line-height:1.7}.source-toolbar{display:flex;gap:14px;align-items:center;margin-bottom:18px}.source-toolbar input{max-width:160px}.stack .panel h3{margin-top:0;font-size:16px;font-weight:500}button.link{color:var(--accent);background:none;text-decoration:underline;padding:0;font-size:12px}.source-summary{margin:0 0 20px;font-size:13px;color:var(--muted);line-height:1.7}.metric small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.connection-summary{display:flex;gap:12px;align-items:center;padding:18px 0}.connection-summary strong{font-weight:500;display:block;font-size:14px}.connection-summary span{font-size:12px;color:var(--muted)}.help-list{padding-left:20px;font-size:13px;line-height:1.9;color:var(--muted)}.wordmark{font-size:11px;color:#d2ebad;letter-spacing:.4px}
@media(min-width:1500px){.content{padding-top:45px}.hero-art{right:45px}}
@media(max-width:1100px){.sidebar{width:190px;padding:30px 17px}.shell{grid-template-columns:190px 1fr}.topbar{padding:0 28px}.content{padding:30px 28px}.hero-art{right:-70px;opacity:.45}.hero-copy{max-width:430px}.two-col{grid-template-columns:1fr}.source-grid{grid-template-columns:1fr 280px}.metric{padding:20px 16px}}
@media(max-width:760px){.shell{display:block;padding-bottom:76px}.sidebar{position:fixed;top:auto;bottom:0;left:0;width:100%;height:68px;padding:4px 6px;z-index:20;border-radius:15px 15px 0 0}.sidebar .brand,.brand-sub,.sidebar-bottom{display:none}.nav{display:flex;justify-content:space-around;gap:0}.nav button{font-size:9px;display:flex;flex-direction:column;gap:5px;padding:8px 10px;border-radius:8px}.nav .count{display:none}.nav .ico{width:18px;height:18px}.topbar{height:65px;padding:0 20px}.topbar .breadcrumb{display:none}.mobile-brand{display:block;font-size:17px;letter-spacing:2px;font-weight:600}.content{padding:27px 20px}.page-head{align-items:flex-start;flex-wrap:wrap;gap:14px}.page-head h1{font-size:31px}.page-head p{font-size:13px}.hero{padding:28px 25px;min-height:320px;border-radius:13px}.hero h2{font-size:38px;max-width:310px}.hero-art{width:275px;right:-110px;opacity:.23}.hero-copy{max-width:100%}.hero p{font-size:13px;max-width:300px}.hero-note{display:none}.metric-strip{grid-template-columns:1fr 1fr;gap:0}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid #2c3826}.metric strong{font-size:26px}.two-col,.source-grid{grid-template-columns:1fr}.source-grid aside{order:-1}.source-list{max-height:none}.panel{padding:20px}.study-card-head{padding:18px 20px}.study-body{padding:22px}.study-body h2{font-size:24px}.study-card-head .fine{max-width:120px;word-break:break-word}.level-step{padding:12px 10px;font-size:10px}.level-step span{font-size:12px}.study-actions .btn{flex:1}.topbar .name{font-size:12px}.source-toolbar{flex-wrap:wrap}.study-body .row.spread{align-items:flex-start}.hero-links{gap:9px}.section-top h2{font-size:17px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Vibe Study: animation is confined to the wordmark and 46px mascot. */
.brand{gap:8px;letter-spacing:0;font-size:17px;white-space:nowrap}
.brand-word{font-weight:650;letter-spacing:-.6px;text-decoration:none;line-height:1.2;color:#d5a5ff;background:linear-gradient(100deg,#ff8bc7,#ffd478,#b7ff9e,#82eaff,#be9aff,#ff8bc7);background-size:250% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:vibe-rainbow 6s linear infinite;display:inline-block}
.brand-sub{margin-left:54px;font-size:10px;letter-spacing:.2px}
.study-buddy{width:46px;height:50px;flex:0 0 46px;padding:0;background:transparent;border-radius:13px;display:inline-grid;place-items:center;position:relative;isolation:isolate;touch-action:manipulation}
.study-buddy .buddy-svg{width:46px;height:46px;fill:none;overflow:visible;animation:buddy-hover 4s ease-in-out infinite}
.buddy-shell{fill:#171122;stroke:#6b488d;stroke-width:1.6}
.buddy-antenna{stroke:#aa70ed;stroke-width:2;stroke-linecap:round}.buddy-antenna-dot{fill:#d2a2ff}
.buddy-features{stroke:#c891ff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none;filter:drop-shadow(0 0 2px #a347ff)}
.buddy-cheeks{stroke:#8f5ab4;stroke-width:2;stroke-linecap:round;opacity:.55}
.study-buddy.is-smiling .buddy-features{stroke:var(--buddy-rainbow);filter:drop-shadow(0 0 3px #d9b2ff);animation:buddy-spectrum 1.25s linear both}
.study-buddy.is-smiling .buddy-shell{stroke:var(--buddy-rainbow);fill:#21142e}
.study-buddy.is-smiling .buddy-eyes{stroke-width:4}
.study-buddy.is-smiling .buddy-cheeks{stroke:#ff8bc7;opacity:1}
.study-buddy.is-speaking .buddy-mouth{transform-origin:32px 40px;animation:buddy-talk .24s ease-in-out infinite alternate}
.buddy-speech{position:fixed;z-index:60;left:24px;bottom:26px;width:min(355px,calc(100vw - 40px));padding:20px;background:#181021;border:1px solid #775198;border-radius:17px;box-shadow:0 12px 45px #0007;color:#f2e7ff}
.buddy-speech[hidden]{display:none}.buddy-speech p{font-size:16px;line-height:1.65;margin:0 0 15px}.buddy-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.buddy-controls button{font-size:11px;background:none;color:#cdb1e5;padding:5px 0;text-decoration:underline;text-underline-offset:3px}.buddy-controls .buddy-close{margin-left:auto;font-size:17px;text-decoration:none;padding:2px 6px}.buddy-voice-note{display:block;font-size:10px;color:#aa8dbe;margin-top:9px}
@keyframes vibe-rainbow{to{background-position:250% 0}}
@keyframes buddy-hover{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-2px) rotate(3deg)}}
@keyframes buddy-spectrum{to{filter:drop-shadow(0 0 3px #d9b2ff) hue-rotate(360deg)}}
@keyframes buddy-talk{from{transform:scaleY(.65)}to{transform:scaleY(1.15)}}
.buddy-paused .brand-word,.buddy-paused .buddy-svg,.buddy-paused .buddy-features,.buddy-paused .buddy-mouth{animation:none!important}
@media(min-width:761px) and (max-width:1100px){.brand{font-size:15px;gap:5px}.study-buddy,.study-buddy .buddy-svg{width:39px;flex-basis:39px}.brand-sub{margin-left:44px}}
@media(max-width:760px){.mobile-brand{display:flex;align-items:center;gap:7px;letter-spacing:0;font-size:18px}.mobile-brand .study-buddy{width:39px;height:43px;flex-basis:39px}.mobile-brand .buddy-svg{width:39px;height:39px}.topbar{padding-left:16px;padding-right:16px;gap:10px}.topbar .name{white-space:nowrap;font-size:11px}.topbar .avatar{margin-left:7px;width:28px;height:28px}.buddy-speech{left:20px;bottom:84px}.sidebar .brand{display:none}}
@media(prefers-reduced-motion:reduce){.brand-word,.buddy-svg,.buddy-features,.buddy-mouth{animation:none!important}}

/* Provider library keeps the existing charcoal and lime palette. */
.provider-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-height:360px;overflow-y:auto;padding:3px 6px 3px 2px;overscroll-behavior:contain;scrollbar-color:var(--muted) transparent}
.provider-card{display:flex;gap:12px;text-align:left;align-items:center;border:1px solid var(--line);background:var(--panel);color:var(--text);padding:15px 12px;border-radius:12px;cursor:pointer;min-width:0}
.provider-card[hidden]{display:none}.provider-card:hover,.provider-card.selected{border-color:#d2f78c;background:#172010}.provider-card:focus-visible{outline:2px solid #d2f78c;outline-offset:2px}
.provider-card strong{display:block;font-size:13px}.provider-card small{display:block;font-size:11px;color:var(--muted);line-height:1.5;margin:5px 0}.provider-card .fine{font-size:10px}
.provider-mark{font-size:25px;flex:0 0 30px;text-align:center;color:#d2f78c}.auth-options{display:flex;flex-wrap:wrap;gap:10px}.auth-options .btn:disabled{opacity:.45;cursor:not-allowed}.key-connect{background:#172010;border:1px solid var(--line);border-radius:12px;padding:16px;margin:20px 0}
@media(max-width:600px){.provider-grid{grid-template-columns:1fr;max-height:320px}}
