:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#203044;--bg:#f7fbff;--surface:#ffffffdb;--surface-strong:#fff;--text:#203044;--muted:#68788d;--line:#d8e6f5;--accent:#3b8eea;--accent-2:#9fd2ff;--accent-3:#dcefff;--pink:#ffd8e7;--shadow:0 18px 50px #3171b724;background:#f7fbff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#ecf6ff;--bg:#101828;--surface:#172336db;--surface-strong:#172336;--text:#ecf6ff;--muted:#a9bad0;--line:#2c4563;--accent:#75b8ff;--accent-2:#4c84c6;--accent-3:#1b3555;--pink:#6e5572;--shadow:0 18px 50px #00000047;background:#101828}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at top left, #9fd2ff9e, transparent 32rem), radial-gradient(circle at 85% 8rem, #d4ebff94, transparent 26rem), radial-gradient(circle at 50% 0, #ffffffc7, transparent 22rem), linear-gradient(180deg, var(--bg), var(--bg));min-width:320px;color:var(--text);margin:0}body:before{content:"";z-index:-2;pointer-events:none;background:linear-gradient(115deg,#0000 0 42%,#ffffff6b 48%,#0000 54%) 0 0/220% 220%,radial-gradient(circle at 18% 22%,#75b8ff2e,#0000 18rem) 0 0/100% 100%,radial-gradient(circle at 78% 64%,#9fd2ff24,#0000 22rem) 0 0/100% 100%;animation:18s ease-in-out infinite ambientSweep;position:fixed;inset:0}:root[data-theme=dark] body:before{background:linear-gradient(115deg,#0000 0 42%,#75b8ff14 48%,#0000 54%),radial-gradient(circle at 18% 22%,#75b8ff1f,#0000 18rem),radial-gradient(circle at 78% 64%,#4c84c61f,#0000 22rem)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.site-header{z-index:20;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--surface-strong) 88%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.85rem clamp(1rem,4vw,3rem);display:grid;position:sticky;top:0;box-shadow:0 10px 36px #3171b714}.site-header.portal-header{grid-template-columns:minmax(0,auto) auto;justify-content:space-between}.site-header.portal-header .header-actions{justify-self:end}.site-header.portal-header .brand img{animation:7.2s ease-in-out infinite portalBrandPulse}.site-header.tool-header .nav{justify-content:center}.brand{align-items:center;gap:.7rem;display:inline-flex}.brand picture,.brand img{width:46px;height:46px}.brand picture{flex:none;display:block}.brand img{box-shadow:var(--shadow);border:2px solid #fff;border-radius:50%;display:block}.brand span,.brand small{display:block}.brand small{color:var(--muted);font-size:.78rem}.nav,.header-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.nav{justify-content:center}.nav a{white-space:nowrap}.nav a,.icon-button,.button,.ghost{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;padding:.58rem .78rem;transition:transform .18s,border-color .18s,background .18s,color .18s,box-shadow .18s;display:inline-flex}.nav a.active,.nav a:hover,.icon-button:hover,.button:hover,.ghost:hover{color:var(--accent);border-color:var(--line);background:var(--surface)}.header-actions{justify-content:flex-end}.icon-button{border-color:var(--line);background:var(--surface)}.supabase-mode-notice{border:1px solid color-mix(in srgb, var(--accent) 38%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--accent-3) 76%, transparent), var(--surface));width:min(1180px,100% - 2rem);color:var(--text);border-radius:14px;align-items:flex-start;gap:.65rem;margin:1rem auto 0;padding:.85rem 1rem;display:flex;box-shadow:0 14px 34px #3171b71f}.supabase-mode-notice svg{color:var(--accent);flex:none;margin-top:.12rem}.supabase-mode-notice code{color:var(--accent);font-weight:700}.page{width:min(1180px,100% - 2rem);margin:0 auto;padding:2rem 0 4rem;animation:.52s cubic-bezier(.2,.8,.2,1) both pageEnter}.page>section{animation:.62s cubic-bezier(.2,.8,.2,1) both sectionDriftIn}.page>section:nth-of-type(2){animation-delay:80ms}.page>section:nth-of-type(3){animation-delay:.14s}.page>section:nth-of-type(4){animation-delay:.2s}.page>section:nth-of-type(5){animation-delay:.26s}.page.narrow{width:min(880px,100% - 2rem)}.hero,.section-hero,.profile-header,.auth-card,.admin-panel,.side-panel,.article-shell,.comments{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:22px}.hero,.section-hero,.dashboard-panel,.portfolio-project-card,.feature-link-card,.library-section,.topic-entry-panel,.preview-panel,.admin-panel,.post-card,.section-card{position:relative}.hero:before,.section-hero:before,.dashboard-panel:before,.portfolio-project-card:before,.library-section:before,.topic-entry-panel:before,.preview-panel:before,.admin-panel:before{content:"";pointer-events:none;border-radius:inherit;opacity:.55;background:linear-gradient(135deg,#ffffff6b,#0000 28%),linear-gradient(90deg,#0000,#75b8ff1a,#0000);position:absolute;inset:0;-webkit-mask:linear-gradient(#000,#0000 72%);mask:linear-gradient(#000,#0000 72%)}:root[data-theme=dark] .hero:before,:root[data-theme=dark] .section-hero:before,:root[data-theme=dark] .dashboard-panel:before,:root[data-theme=dark] .portfolio-project-card:before,:root[data-theme=dark] .library-section:before,:root[data-theme=dark] .topic-entry-panel:before,:root[data-theme=dark] .preview-panel:before,:root[data-theme=dark] .admin-panel:before{background:linear-gradient(135deg,#75b8ff1f,#0000 30%),linear-gradient(90deg,#0000,#75b8ff0f,#0000)}.hero{grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);align-items:center;gap:2rem;padding:clamp(1.3rem,4vw,3rem);display:grid;overflow:hidden}.hero h1,.section-hero h1,.profile-header h1,.article-header h1,.auth-card h1{letter-spacing:0;margin:.5rem 0 1rem;font-size:clamp(2.1rem,6vw,4.7rem);line-height:1.08}.hero p,.section-hero p,.profile-header p,.article-header p{color:var(--muted);font-size:1.05rem;line-height:1.8}.eyebrow{color:var(--accent);align-items:center;gap:.35rem;font-weight:700;display:inline-flex}.hero-actions,.form-actions,.row-actions{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}.button{border-color:var(--line);background:var(--surface-strong);color:var(--text);font-weight:700}.button.primary{color:#fff;background:linear-gradient(135deg, var(--accent), #6cbfff);border-color:#0000}.button.small{padding:.45rem .68rem;font-size:.9rem}.hero-visual{place-items:center;display:grid;position:relative}.hero-visual picture,.hero-visual img,.profile-header picture,.profile-header img{aspect-ratio:1;width:min(100%,360px)}.hero-visual picture,.profile-header picture{display:block}.hero-visual img,.profile-header img{object-fit:cover;width:100%;height:100%;box-shadow:var(--shadow);border:8px solid #ffffffdb;border-radius:50%;display:block}.hero-note{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-strong) 88%, transparent);box-shadow:var(--shadow);border-radius:18px;gap:.15rem;padding:.85rem 1rem;display:grid;position:absolute;bottom:1rem;left:0}.hero-note span,.muted,.material-card small,.admin-list-item span{color:var(--muted);transition:transform .18s,border-color .18s,background .18s,color .18s,box-shadow .18s}.nav a:hover,.icon-button:hover,.button:hover,.ghost:hover{transform:translateY(-1px)}.button.primary{position:relative;overflow:hidden;box-shadow:0 12px 28px #3b8eea38}.button.primary:after{content:"";background:linear-gradient(90deg,#0000,#ffffff7a,#0000);width:48%;animation:4.8s ease-in-out infinite buttonShine;position:absolute;inset:-40% auto -40% -65%;transform:rotate(18deg)}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0 2rem;display:grid}.metric-grid div{border:1px solid var(--line);background:var(--surface);border-radius:16px;gap:.25rem;padding:1.1rem;display:grid}.metric-grid svg{color:var(--accent)}.metric-grid strong{font-size:1.5rem}.content-band,.two-column,.info-grid,.admin-grid,.auth-grid{margin-top:2rem}.section-heading{margin-bottom:1rem}.section-heading span{color:var(--accent);font-weight:700}.section-heading h2,.side-panel h2,.admin-panel h2,.comments h2,.archive-group h2{margin:.25rem 0 1rem}.section-grid,.post-list.grid,.material-grid,.info-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.section-card,.post-card,.material-card,.archive-item,.comment,.admin-list-item{border:1px solid var(--line);background:var(--surface);border-radius:16px}.section-card,.post-card,.material-card{padding:1.1rem}.section-card:hover,.post-card:hover,.material-card:hover{border-color:var(--accent-2);transform:translateY(-2px)}.section-card h3,.post-card h3,.material-card h3{margin-top:0}.section-card p,.post-card p,.material-card p{color:var(--muted);line-height:1.7}.two-column{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:1rem;display:grid}.post-list{gap:1rem;display:grid}.post-card-meta{color:var(--muted);flex-wrap:wrap;gap:.6rem;font-size:.9rem;display:flex}.tag-row{flex-wrap:wrap;gap:.4rem;display:flex}.tag,.topic-list span,.file-type{background:var(--accent-3);color:var(--accent);border-radius:999px;padding:.28rem .58rem;font-size:.85rem;font-weight:700;display:inline-flex}.text-link{color:var(--accent);font-weight:700}.email-copy{color:var(--accent);background:0 0;border:0;border-radius:999px;align-items:center;gap:.35rem;padding:0;font-weight:800;display:inline-flex}.email-copy span{font-weight:700}.email-copy strong{font-size:.82rem}.email-copy.inline{padding:.35rem 0}.email-copy.text{margin-left:.45rem}.email-copy.button{border:1px solid var(--line);background:var(--surface);padding:.58rem .78rem}.side-panel,.admin-panel,.comments,.auth-card,.section-hero,.profile-header{padding:1.25rem}.material-mini{border-bottom:1px solid var(--line);gap:.2rem;padding:.85rem 0;display:grid}.section-hero{margin-bottom:1rem}.topic-list,.toolbar{flex-wrap:wrap;align-items:center;gap:.6rem;margin:1rem 0;display:flex}.toolbar input{min-width:min(100%,320px)}input,textarea,select{border:1px solid var(--line);width:100%;color:var(--text);background:var(--surface-strong);border-radius:12px;padding:.72rem .8rem}textarea{resize:vertical;min-height:90px}.markdown-editor{min-height:360px;font-family:SFMono-Regular,Consolas,monospace}.form-hint{color:var(--muted);margin:.35rem 0 .55rem;font-size:.9rem;line-height:1.5;display:block}.markdown-toolbar{flex-wrap:wrap;gap:.45rem;margin:0 0 .7rem;display:flex}.template-toolbar{border:1px solid var(--line);background:color-mix(in srgb, var(--accent-3) 72%, transparent);border-radius:14px;flex-wrap:wrap;align-items:center;gap:.45rem;margin:0 0 .7rem;padding:.65rem;display:flex}.template-toolbar>span{color:var(--accent);align-items:center;gap:.35rem;font-weight:900;display:inline-flex}.template-toolbar button{border:1px solid color-mix(in srgb, var(--accent) 26%, var(--line));width:auto;color:var(--text);background:var(--surface-strong);cursor:pointer;border-radius:999px;padding:.42rem .62rem;font-size:.84rem;font-weight:800}.template-toolbar button:hover{color:var(--accent);border-color:var(--accent-2)}.editor-tool{border:1px solid var(--line);width:auto;color:var(--text);background:var(--surface-strong);cursor:pointer;border-radius:999px;align-items:center;gap:.28rem;padding:.46rem .62rem;font-size:.86rem;font-weight:800;display:inline-flex}.editor-tool:hover{border-color:var(--accent-2);color:var(--accent);background:var(--accent-3)}.markdown-preview-panel{border:1px solid var(--line);background:var(--surface);border-radius:16px;gap:.75rem;padding:1rem;display:grid}.editor-live-preview{background:color-mix(in srgb, var(--accent-3) 54%, var(--surface-strong));max-height:300px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent);margin:.75rem 0 .9rem;overflow:auto}.markdown-preview-panel h3{color:var(--accent);align-items:center;gap:.45rem;margin:0;display:flex}.profile-header{grid-template-columns:220px 1fr;align-items:center;gap:1.5rem;display:grid}.profile-header img{width:220px}.info-grid section{border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:1rem}.info-grid h2,.admin-panel h2{align-items:center;gap:.45rem;display:flex}.reader-grid{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.toc{border:1px solid var(--line);background:var(--surface-strong);border-radius:14px;gap:.45rem;padding:1rem;display:grid;position:sticky;top:90px}.toc a{color:var(--muted);font-size:.92rem}.toc-l3{padding-left:.8rem}.article-page{width:min(1040px,100% - 2rem)}.article-shell{padding:clamp(1rem,3vw,2rem)}.article-header{max-width:760px;margin-bottom:2rem}.article-header h1{font-size:clamp(2rem,5vw,4rem)}.markdown-body{min-width:0;line-height:1.86}.markdown-body p{margin:.8rem 0}.markdown-body strong{color:var(--ink);font-weight:850}.markdown-body em{color:color-mix(in srgb, var(--ink) 86%, var(--accent));font-style:italic}.markdown-body a{color:var(--accent);text-underline-offset:.2em;font-weight:750;text-decoration:underline;text-decoration-thickness:.09em}.markdown-body ul,.markdown-body ol{padding-left:1.35rem}.markdown-body li{margin:.25rem 0}.markdown-body h1,.markdown-body h2,.markdown-body h3{scroll-margin-top:110px}.markdown-body pre{background:#0f172a;border-radius:14px;padding:1rem;overflow:auto}.markdown-body code{font-family:SFMono-Regular,Consolas,monospace}.markdown-body :not(pre)>code{background:var(--accent-3);color:var(--accent);border-radius:6px;padding:.15rem .35rem}.markdown-body blockquote{border-left:4px solid var(--accent);color:var(--muted);margin-left:0;padding-left:1rem}.compact-reader{display:block}.md-align-center{text-align:center}.md-align-right{text-align:right}.md-safe-span{font-weight:700;display:inline}.article-image{border-radius:16px;max-width:100%}.comments{margin-top:1rem}.comment-form{gap:.7rem;display:grid}.comment-list{gap:.7rem;margin-top:1rem;display:grid}.comment{padding:1rem}.comment div{justify-content:space-between;gap:1rem;display:flex}.archive-group{margin-top:1rem}.archive-item,.admin-list-item{justify-content:space-between;gap:1rem;margin-bottom:.6rem;padding:.9rem 1rem;display:flex}.empty-state,.form-message{border:1px dashed var(--line);background:var(--surface);color:var(--muted);border-radius:14px;padding:1rem}.form-message{color:var(--accent)}.admin-feedback{border-style:solid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;display:grid;box-shadow:0 14px 34px #3171b71f}.admin-feedback span{overflow-wrap:anywhere}.message-success{color:#126348;background:color-mix(in srgb, #dff8ef 78%, var(--surface));border-color:#12634838}.message-error{color:#a33131;background:color-mix(in srgb, #ffe3e3 76%, var(--surface));border-color:#dc26263d}.message-info{color:var(--accent)}.icon-only{border-radius:999px;width:34px;height:34px;padding:0}.auth-grid,.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.span-all,.wide{grid-column:1/-1}.stack-form{gap:.85rem;display:grid}.stack-form label{color:var(--muted);gap:.35rem;font-weight:700;display:grid}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.admin-list{gap:.5rem;display:grid}.admin-list-item div{gap:.2rem;display:grid}.ghost{border-color:var(--line);background:0 0}.danger{color:#e4556a}.invite-list{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.invite-list code{background:var(--accent-3);border-radius:10px;padding:.45rem .6rem}.admin-stat-grid{margin-bottom:1rem}.admin-stat-list{gap:.45rem;display:grid}.admin-stat-list span{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:.75rem;padding:.55rem 0;display:flex}.admin-stat-list strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-stat-list em{color:var(--accent);font-style:normal;font-weight:900}.material-grid{margin-top:1rem}.file-type{text-transform:uppercase}.footer{border-top:1px solid var(--line);width:min(1180px,100% - 2rem);color:var(--muted);justify-content:space-between;gap:1rem;margin:0 auto;padding:2rem 0;display:flex}.footer p{margin:.3rem 0 0}.v2-hero{background:linear-gradient(135deg,#fffffff5,#e7f4ffc7) 0 0/100% 100%,radial-gradient(circle at 75% 40%,#75b8ff47,#0000 20rem) 0 0/140% 140%;min-height:440px;animation:14s ease-in-out infinite heroAura;position:relative}:root[data-theme=dark] .v2-hero{background:linear-gradient(135deg,#172336f0,#153253d1),radial-gradient(circle at 75% 40%,#75b8ff38,#0000 20rem)}.orb,.floating-stars{pointer-events:none;position:absolute}.orb{filter:blur(1px);border-radius:50%}.orb-a{background:#9fd2ff59;width:180px;height:180px;animation:6s ease-in-out infinite floatSoft;top:7%;right:17%}.orb-b{background:#ffffff9e;width:92px;height:92px;animation:7s ease-in-out infinite reverse floatSoft;bottom:10%;left:4%}.floating-stars{inset:0;overflow:hidden}.floating-stars span{color:#5aa8f5;text-shadow:0 0 18px #75b8ffcc;animation:6s ease-in-out infinite starDrift;position:absolute}.floating-stars span:first-child{animation-delay:0s;top:18%;left:8%}.floating-stars span:nth-child(2){animation-delay:1.2s;top:11%;left:42%}.floating-stars span:nth-child(3){animation-delay:2s;top:22%;right:8%}.floating-stars span:nth-child(4){animation-delay:.7s;bottom:12%;right:24%}.v2-hero .hero-copy,.v2-hero .hero-visual{z-index:1;position:relative}.v2-hero .hero-visual picture{animation:4.8s ease-in-out infinite avatarGlow}.v2-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-grid div{animation:.5s both cardRise}.metric-grid div:nth-child(2),.portfolio-project-card:nth-child(2),.topic-entry:nth-child(2),.task-item:nth-child(2){animation-delay:80ms}.metric-grid div:nth-child(3),.portfolio-project-card:nth-child(3),.topic-entry:nth-child(3),.task-item:nth-child(3){animation-delay:.15s}.metric-grid div:nth-child(4),.topic-entry:nth-child(4),.task-item:nth-child(4){animation-delay:.22s}.topic-entry:nth-child(5){animation-delay:.29s}.topic-entry:nth-child(6){animation-delay:.36s}.dashboard-grid{grid-template-columns:minmax(0,1fr) minmax(320px,.86fr);gap:1rem;margin-top:2rem;display:grid}.dashboard-panel{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:22px;padding:1.2rem;transition:transform .22s,border-color .22s,box-shadow .22s;overflow:hidden}.dashboard-panel:hover,.portfolio-project-card:hover,.library-section:hover,.topic-entry-panel:hover,.preview-panel:hover{border-color:color-mix(in srgb, var(--accent) 34%, var(--line));box-shadow:0 24px 64px #3171b72e}.dashboard-panel,.portfolio-project-card,.feature-link-card,.library-section,.topic-entry-panel,.preview-panel,.thesis-chart-card,.finding-card,.mechanism-step,.material-card,.post-card,.section-card{position:relative}.dashboard-panel:after,.portfolio-project-card:after,.feature-link-card:after,.library-section:after,.topic-entry-panel:after,.preview-panel:after,.thesis-chart-card:after,.finding-card:after,.mechanism-step:after,.material-card:after,.post-card:after,.section-card:after{content:"";border-radius:inherit;opacity:0;pointer-events:none;background:linear-gradient(120deg,#0000 20%,#ffffff57,#0000 58%);transition:opacity .24s,transform .68s;position:absolute;inset:0;transform:translate(-42%)}.dashboard-panel:hover:after,.portfolio-project-card:hover:after,.feature-link-card:hover:after,.library-section:hover:after,.topic-entry-panel:hover:after,.preview-panel:hover:after,.thesis-chart-card:hover:after,.finding-card:hover:after,.mechanism-step:hover:after,.material-card:hover:after,.post-card:hover:after,.section-card:hover:after{opacity:.72;transform:translate(42%)}.chart-panel{min-height:360px}.skill-radar-chart{background:radial-gradient(circle at 50% 38%,#75b8ff2e,#0000 45%),linear-gradient(#ffffffc7,#e7f4ff6b);border-radius:18px;gap:.65rem;min-height:320px;padding:.15rem .2rem 0;display:grid;position:relative;overflow:hidden}.skill-radar-chart:before{content:"";pointer-events:none;background:radial-gradient(circle,#3b8eea38 0 2px,#0000 3px),radial-gradient(circle,#75b8ff1f,#0000 64%);border-radius:50%;position:absolute;inset:1rem 14% 5rem}.radar-chart-stage{z-index:1;height:274px;animation:.56s both cardRise;position:relative}.skill-radar-svg{width:100%;height:100%;display:block;overflow:visible}.radar-ring{fill:#ffffff47;stroke:#538bce3d;stroke-width:1px;animation:6s ease-in-out infinite radarRingBreath}.radar-axis{stroke:#538bce38;stroke-width:1px;animation:.9s both radarAxisFade}.radar-fill{fill:url(#skillRadarGradient);opacity:.9;transform-box:fill-box;transform-origin:50%;animation:.82s both radarBloom}.radar-outline{fill:#0000;stroke:#3b8eea;stroke-dasharray:520;stroke-dashoffset:520px;stroke-linejoin:round;stroke-width:3px;filter:drop-shadow(0 8px 12px #3b8eea38);animation:.92s .12s both radarTrace,5.4s ease-in-out 1.1s infinite radarPulse}.radar-dot{fill:#3b8eea;stroke:#fff;stroke-width:2px;filter:drop-shadow(0 5px 8px #3b8eea38);animation:4.8s ease-in-out infinite radarDotFloat}.radar-axis-label{fill:#5f7087;dominant-baseline:middle;font-size:10px;font-weight:900}.radar-caption-badge{z-index:2;border:1px solid color-mix(in srgb, var(--accent) 22%, var(--line));background:color-mix(in srgb, var(--surface-strong) 72%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;text-align:center;border-radius:999px;gap:.02rem;min-width:5.3rem;padding:.42rem .66rem;animation:.52s both cardRise;display:inline-grid;position:absolute;inset:.7rem .7rem auto auto;box-shadow:0 12px 28px #3b8eea1f}.radar-caption-badge strong{letter-spacing:.02em;font-size:.78rem;line-height:1}.radar-caption-badge span{color:var(--muted);font-size:.68rem;font-weight:900;line-height:1.2}.radar-skill-chips{z-index:2;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;padding:0 .35rem .35rem;display:grid;position:relative}.radar-skill-chip{border:1px solid color-mix(in srgb, var(--accent) 16%, var(--line));background:color-mix(in srgb, var(--surface) 88%, transparent);border-radius:14px;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .65rem;font-size:.82rem;font-weight:900;display:flex;box-shadow:0 10px 26px #3171b714}.radar-skill-chip i{color:var(--accent);font-style:normal}.progress-row{gap:.45rem;margin:1rem 0;display:grid}.progress-row div:first-child{justify-content:space-between;gap:1rem;display:flex}.progress-row span{color:var(--accent);font-weight:800}.progress-track{background:color-mix(in srgb, var(--accent-3) 72%, transparent);border-radius:999px;height:11px;overflow:hidden}.progress-track i{border-radius:inherit;background:linear-gradient(90deg,#54a8ff,#b9e2ff,#fff,#54a8ff) 0 0/220% 100%;height:100%;animation:.9s both progressFill,4.8s ease-in-out infinite progressFlow;display:block}.learning-paths .section-card{transition:transform .18s,border-color .18s,box-shadow .18s;position:relative;overflow:hidden}.learning-paths .section-card:after{content:"";background:#75b8ff2e;border-radius:50%;height:130px;position:absolute;inset:auto -20% -45% 30%}.section-card,.post-card,.material-card{transition:transform .22s,border-color .22s,box-shadow .22s;animation:.56s both cardRise}.section-card:hover,.post-card:hover,.material-card:hover{transform:translateY(-4px);box-shadow:0 20px 45px #3171b72e}.contact-strip{background:var(--accent-3);color:var(--accent);border-radius:14px;align-items:center;gap:.5rem;margin-top:1rem;padding:.8rem;font-weight:800;display:flex}.library-page{gap:1.2rem;display:grid}.library-hero{border:1px solid var(--line);background:linear-gradient(135deg, color-mix(in srgb, var(--surface-strong) 95%, transparent), color-mix(in srgb, var(--accent-3) 78%, transparent)), radial-gradient(circle at 92% 12%, #75b8ff3d, transparent 18rem);box-shadow:var(--shadow);background-size:100% 100%,150% 150%;border-radius:22px;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:end;gap:1rem;padding:1.4rem;animation:16s ease-in-out infinite heroAura;display:grid}.library-hero h1{margin:.2rem 0 .55rem;font-size:clamp(2.2rem,5vw,4.4rem)}.library-hero p{max-width:760px;color:var(--muted)}.library-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.library-metrics span{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 82%, transparent);color:var(--muted);border-radius:16px;gap:.18rem;padding:.95rem;font-weight:800;display:grid}.library-metrics svg,.library-metrics strong{color:var(--accent)}.library-metrics strong{font-size:1.8rem;display:block}.topic-entry-panel{border:1px solid var(--line);background:var(--surface);border-radius:20px;gap:.8rem;margin-bottom:1rem;padding:1rem;display:grid}.topic-entry-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:.65rem;display:grid}.topic-entry{border:1px solid var(--line);width:100%;color:var(--text);background:var(--surface-strong);text-align:left;cursor:pointer;border-radius:14px;gap:.22rem;padding:.85rem;transition:transform .22s,border-color .22s,background .22s,box-shadow .22s;animation:.52s both cardRise;display:grid}.topic-entry:hover{border-color:var(--accent-2);background:var(--accent-3);transform:translateY(-3px);box-shadow:0 16px 34px #3171b724}.topic-entry span{color:var(--muted);font-size:.85rem}.library-filters{border:1px solid var(--line);background:var(--surface);border-radius:18px;grid-template-columns:minmax(260px,1.2fr) repeat(auto-fit,minmax(130px,.55fr));gap:.7rem;padding:.8rem;display:grid}.filter-status{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.55rem .9rem;margin:-.25rem 0 1rem;padding:0 .25rem;font-size:.92rem;display:flex}.filter-status strong{color:var(--text)}.filter-status span{overflow-wrap:anywhere}.search-field{position:relative}.search-field svg{color:var(--muted);position:absolute;top:50%;left:.8rem;transform:translateY(-50%)}.search-field input{width:100%;padding-left:2.3rem}.library-layout{grid-template-columns:minmax(0,1fr) minmax(330px,.52fr);align-items:start;gap:1rem;display:grid}.library-sections{gap:1rem;display:grid}.library-section{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 94%, transparent);border-radius:20px;gap:.8rem;padding:1rem;display:grid}.section-heading.compact{margin-bottom:0}.section-heading.compact h2{margin:.2rem 0 0}.library-grid,.material-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.library-card,.section-material-mini,.invite-card{border:1px solid var(--line);background:var(--surface-strong);border-radius:16px;gap:.75rem;padding:1rem;display:grid}.library-card{cursor:pointer;text-align:left}.library-card:after,.portfolio-project-card:after,.feature-link-card:after{content:"";pointer-events:none;border-radius:inherit;background:linear-gradient(120deg,#0000 0 35%,#ffffff47 45%,#0000 56%);transition:transform .52s;position:absolute;inset:-1px;transform:translate(-120%)}.library-card:hover:after,.portfolio-project-card:hover:after,.feature-link-card:hover:after{transform:translate(120%)}.library-card:hover,.section-material-mini:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));transform:translateY(-2px)}.library-card header,.section-material-mini header{justify-content:space-between;align-items:flex-start;gap:.7rem;display:flex}.library-card h3,.section-material-mini h3{margin:0;font-size:1.02rem}.library-card p,.section-material-mini p,.invite-card p{color:var(--muted);margin:0}.access-pill{border-radius:999px;flex:none;padding:.28rem .58rem;font-size:.78rem;font-weight:900;display:inline-flex}.access-public{color:#2f6f50;background:#6fcf972e}.access-invite_required{color:#2f6ca7;background:#b9e2ff9e}.access-admin_only{color:#9f5736;background:#ffc67833}.storage-pill{border-radius:999px;align-items:center;gap:.3rem;width:max-content;padding:.28rem .58rem;font-size:.78rem;font-weight:900;display:inline-flex}.storage-uploaded{color:#2f6f50;background:#6fcf9729}.storage-external{color:#2f6ca7;background:#b9e2ff9e}.storage-placeholder{color:#8a5a00;background:#ffd5803d}.library-preview{overscroll-behavior:contain;min-height:500px;max-height:calc(100vh - 112px);position:sticky;top:94px;overflow:auto}.preview-frame.large{height:min(72vh,760px)}.office-preview{background:#fff;min-height:620px}.locked-preview{border:1px dashed color-mix(in srgb, var(--accent) 45%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--surface-strong) 88%, transparent), color-mix(in srgb, var(--accent-3) 72%, transparent));text-align:center;border-radius:18px;place-items:center;min-height:360px;padding:1.3rem;display:grid}.locked-preview>div{justify-items:center;gap:.7rem;max-width:360px;display:grid}.subtle-icon{color:var(--accent)}.section-materials{margin-top:1.5rem}.compact-list{gap:.55rem;display:grid}.invite-card{margin-top:1rem}.invite-benefits{border:1px solid var(--line);background:var(--accent-3);border-radius:16px;gap:.55rem;padding:.85rem;display:grid}.invite-benefits span{color:var(--text);align-items:center;gap:.45rem;font-weight:800;display:flex}.invite-benefits svg{color:var(--accent)}.materials-layout{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:1rem;display:grid}.material-filters{grid-template-columns:minmax(220px,1fr) repeat(3,minmax(150px,.55fr)) auto;display:grid}.material-card-top{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.material-card-lock-note{border:1px dashed color-mix(in srgb, var(--accent) 34%, var(--line));color:var(--muted);background:color-mix(in srgb, var(--accent-3) 58%, var(--surface-strong));border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.45rem;padding:.72rem;font-size:.86rem;line-height:1.55;display:grid}.material-card-lock-note svg,.material-card-lock-note a{color:var(--accent)}.material-card-lock-note a{white-space:nowrap;font-weight:900}.status-pill{color:#2f6ca7;background:#b9e2ff94;border-radius:999px;padding:.28rem .58rem;font-size:.82rem;font-weight:800;display:inline-flex}.priority-important{border-color:#54a8ffa6}.priority-core{border-color:#4285f4db;box-shadow:0 18px 50px #4285f429}.preview-panel{border:1px solid var(--line);background:var(--surface);min-height:420px;box-shadow:var(--shadow);border-radius:22px;padding:1.1rem;position:sticky;top:94px}.preview-content{gap:.9rem;display:grid}.preview-status-strip{z-index:4;border:1px solid var(--line);background:color-mix(in srgb, var(--surface-strong) 92%, transparent);border-radius:14px;align-items:center;gap:.45rem;padding:.62rem .75rem;display:flex;position:sticky;top:0;box-shadow:0 10px 26px #3171b714}.preview-status-strip span{color:var(--muted)}.preview-status-strip strong{margin-left:auto}.preview-status-strip.ready{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 34%, var(--line))}.preview-status-strip.locked{color:#8a5a00;background:color-mix(in srgb, #fff3d2 62%, var(--surface));border-color:#c2800042}.preview-actions{z-index:3;background:linear-gradient(180deg, var(--surface) 78%, transparent);flex-wrap:wrap;align-items:center;gap:.55rem;padding:.2rem 0 .55rem;display:flex;position:sticky;top:3.2rem}.preview-meta{gap:.25rem;display:grid}.preview-meta span{color:var(--muted)}.preview-image,.preview-frame,.preview-text,.no-preview,.mobile-pdf-fallback{border:1px solid var(--line);background:var(--surface-strong);border-radius:16px;width:100%}.preview-image{object-fit:contain;max-height:360px}.preview-frame{height:460px}.preview-text{white-space:pre-wrap;max-height:420px;color:var(--text);padding:1rem;overflow:auto}.no-preview{min-height:220px;color:var(--muted);text-align:center;place-items:center;gap:.7rem;padding:1rem;display:grid}.no-preview svg{color:var(--accent)}.mobile-pdf-fallback{min-height:260px;color:var(--muted);text-align:center;place-items:center;gap:.75rem;padding:1rem;display:none}.mobile-pdf-fallback svg{color:var(--accent)}.portfolio-hero,.planner-hero,.portal-hero,.excel-practice-hero,.homework-grader-hero{background:linear-gradient(135deg, color-mix(in srgb, var(--surface-strong) 92%, transparent), color-mix(in srgb, var(--accent-3) 74%, transparent)), radial-gradient(circle at 86% 20%, #75b8ff3d, transparent 20rem);background-size:100% 100%,150% 150%;animation:16s ease-in-out infinite heroAura;position:relative;overflow:hidden}.portal-hero{grid-template-columns:minmax(0,1fr) minmax(220px,.42fr);align-items:center;gap:1.4rem;padding:clamp(1.4rem,4vw,3rem);display:grid}.portal-hero-copy{z-index:1;position:relative}.portal-hero-copy .eyebrow svg{animation:4.6s ease-in-out infinite portalSparkPulse}.portal-hero-copy h1{max-width:780px}.portal-hero-copy p{max-width:720px}.portal-hero-visual{isolation:isolate;place-items:center;gap:1rem;display:grid;position:relative}.portal-hero-visual picture,.portal-hero-visual img{aspect-ratio:1;width:min(100%,220px)}.portal-hero-visual picture{z-index:0;border-radius:50%;animation:7.4s ease-in-out infinite portalAvatarFloat;display:block;position:relative}.portal-hero-visual picture:before,.portal-hero-visual picture:after{content:"";border-radius:inherit;pointer-events:none;position:absolute}.portal-hero-visual picture:before{z-index:-1;border:1px solid #0000;border-top-color:color-mix(in srgb, var(--accent) 48%, transparent);border-right-color:color-mix(in srgb, var(--accent-2) 44%, transparent);opacity:.72;animation:8.6s linear infinite portalAvatarOrbit;inset:-12px}.portal-hero-visual picture:after{opacity:0;background:linear-gradient(120deg,#0000 18%,#ffffff94,#0000 44%);animation:5.8s ease-in-out infinite portalAvatarShine;inset:-3px;transform:translate(-72%)rotate(10deg)}.portal-hero-visual img{box-shadow:var(--shadow);border:7px solid #ffffffe0;border-radius:50%;animation:5.8s ease-in-out infinite portalAvatarGlow;display:block}.portal-sparkline{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-strong) 84%, transparent);border-radius:18px;grid-template-columns:repeat(5,1fr);align-items:end;gap:.35rem;width:min(100%,190px);height:54px;padding:.65rem;display:grid;box-shadow:0 12px 32px #3171b71a}.portal-sparkline span{background:linear-gradient(180deg, var(--accent), var(--accent-2));transform-origin:bottom;border-radius:999px;animation:4.8s ease-in-out infinite portalBarPulse;display:block}.portal-sparkline span:first-child{height:38%;animation-delay:-.2s}.portal-sparkline span:nth-child(2){height:68%;animation-delay:-1.2s}.portal-sparkline span:nth-child(3){height:52%;animation-delay:-.7s}.portal-sparkline span:nth-child(4){height:84%;animation-delay:-1.7s}.portal-sparkline span:nth-child(5){height:62%;animation-delay:-.45s}.portal-entry-grid,.practice-grid,.practice-support-grid{gap:1rem;margin-top:1rem;display:grid}.portal-entry-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.practice-grid,.practice-support-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-entry-card{border:1px solid var(--line);background:var(--surface);min-height:280px;box-shadow:var(--shadow);border-radius:22px;gap:.7rem;padding:1.35rem;transition:transform .22s,border-color .22s,box-shadow .22s;animation:.52s both portalCardReveal;display:grid;position:relative;overflow:hidden}.portal-entry-card:before{content:"";background:linear-gradient(90deg, var(--accent), var(--accent-2), color-mix(in srgb, var(--accent) 38%, #fff));opacity:.72;transform-origin:0;height:3px;transition:opacity .22s,transform .26s;position:absolute;inset:0 0 auto;transform:scaleX(.18)}.portal-entry-card:after{content:"";opacity:0;pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff52,#0000);width:48%;transition:opacity .22s,transform .52s;position:absolute;inset:-35% auto -35% -60%;transform:rotate(16deg)}.portal-entry-card:nth-child(2){animation-delay:70ms}.portal-entry-card:nth-child(3){animation-delay:.14s}.portal-entry-card:nth-child(4){animation-delay:.21s}.portal-entry-card:hover{border-color:color-mix(in srgb, var(--accent) 36%, var(--line));transform:translateY(-4px);box-shadow:0 24px 64px #3171b72e}.portal-entry-card:hover:before{opacity:1;transform:scaleX(1)}.portal-entry-card:hover:after{opacity:1;transform:translate(330%)rotate(16deg)}.portal-entry-card.reserved-entry{cursor:default}.portal-entry-card.reserved-entry:hover{border-color:var(--line);box-shadow:var(--shadow);transform:none}.portal-entry-card.reserved-entry:hover:before{opacity:.72;transform:scaleX(.18)}.portal-entry-card.reserved-entry:hover:after{opacity:0;transform:rotate(16deg)}.portal-entry-card.reserved-entry:hover .entry-icon{border-color:var(--line);transform:none}.portal-entry-card small,.entry-action,.practice-field span{color:var(--accent);font-weight:800}.portal-entry-card strong{font-size:clamp(1.45rem,3vw,2.1rem)}.portal-entry-card p,.practice-drop-zone p,.practice-result-panel p{color:var(--muted);margin:0;line-height:1.75}.entry-icon{border:1px solid var(--line);width:48px;height:48px;color:var(--accent);background:color-mix(in srgb, var(--accent-3) 68%, var(--surface));border-radius:16px;place-items:center;transition:transform .22s,border-color .22s,background .22s,color .22s;display:inline-grid}.portal-entry-card:hover .entry-icon{border-color:color-mix(in srgb, var(--accent) 34%, var(--line));background:color-mix(in srgb, var(--accent-3) 82%, var(--surface));transform:translateY(-2px)}.entry-action{align-items:center;gap:.35rem;margin-top:auto;display:inline-flex}.entry-action svg{transition:transform .18s}.portal-entry-card:not(.reserved-entry):hover .entry-action svg{transform:translate(3px)}.practice-entry .entry-icon,.homework-entry .entry-icon,.privacy-callout svg,.practice-drop-zone svg{color:#15805f}.downloads-entry .entry-icon,.downloads-entry .entry-action{color:#8b6f11}.downloads-entry:before{background:linear-gradient(90deg, #d9b43a, color-mix(in srgb, #d9b43a 42%, var(--accent-2)))}.excel-practice-page,.excel-practice-hero{gap:1rem;display:grid}.excel-practice-hero p{max-width:760px}.privacy-callout{border:1px solid color-mix(in srgb, #15805f 30%, var(--line));background:color-mix(in srgb, #dff8ef 68%, var(--surface));color:#126348;border-radius:16px;align-items:flex-start;gap:.65rem;width:fit-content;max-width:100%;padding:.85rem 1rem;display:inline-flex}:root[data-theme=dark] .privacy-callout{background:color-mix(in srgb, #143d32 58%, var(--surface));color:#9be7c9}.practice-config-panel,.practice-upload-panel,.practice-result-panel,.practice-guide-panel,.practice-history-panel{gap:1rem;display:grid}.practice-progress-list{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.practice-progress-list li{border:1px solid var(--line);background:var(--surface-strong);border-radius:16px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.72rem;padding:.85rem;display:grid}.practice-progress-list li>span{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--line));background:var(--surface);width:2rem;height:2rem;color:var(--accent);border-radius:999px;place-items:center;font-weight:900;display:inline-grid}.practice-progress-list strong{color:var(--text);display:block}.practice-progress-list small{color:var(--muted);margin-top:.2rem;line-height:1.5;display:block}.practice-progress-list li.is-active{border-color:color-mix(in srgb, var(--accent) 44%, var(--line));background:color-mix(in srgb, var(--accent-3) 58%, var(--surface));box-shadow:0 14px 34px #3171b71a}.practice-progress-list li.is-done{border-color:color-mix(in srgb, #15805f 30%, var(--line))}.practice-progress-list li.is-done>span{background:color-mix(in srgb, #15805f 84%, var(--accent));color:#fff;border-color:#0000}.practice-step-list,.practice-safety-list{color:var(--muted);gap:.65rem;margin:0;padding-left:1.2rem;line-height:1.7;display:grid}.practice-step-list li::marker{color:var(--accent);font-weight:900}.practice-safety-list li::marker{color:#15805f}.practice-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;display:grid}.practice-field{gap:.4rem;display:grid}.practice-drop-zone{border:1px dashed color-mix(in srgb, var(--accent) 42%, var(--line));background:color-mix(in srgb, var(--accent-3) 44%, var(--surface));text-align:center;border-radius:18px;place-items:center;gap:.7rem;min-height:260px;padding:1.2rem;transition:transform .2s,border-color .2s,background .2s,box-shadow .2s;display:grid;position:relative;overflow:hidden}.practice-drop-zone:before{content:"";border-radius:inherit;pointer-events:none;opacity:0;border:1px solid #0000;transition:opacity .2s;position:absolute;inset:0}.practice-drop-zone:hover{border-color:color-mix(in srgb, var(--accent) 58%, var(--line));background:color-mix(in srgb, var(--accent-3) 54%, var(--surface))}.practice-drop-zone.drag-active{background:color-mix(in srgb, #dff8ef 62%, var(--surface));border-color:#15805f;transform:translateY(-1px);box-shadow:0 18px 44px #15805f24}.practice-drop-zone.drag-active:before{opacity:1;border-color:#15805f5c}.practice-drop-zone input{max-width:300px}.practice-drop-icon{border:1px solid color-mix(in srgb, #15805f 22%, var(--line));background:color-mix(in srgb, #dff8ef 42%, var(--surface-strong));color:#15805f;border-radius:18px;place-items:center;width:58px;height:58px;display:inline-grid}.practice-status-message{align-items:flex-start;gap:.45rem;display:inline-flex}.practice-status-message svg{flex:none;margin-top:.15rem}.practice-status-message.is-loading{border-color:color-mix(in srgb, var(--accent) 30%, var(--line));background:color-mix(in srgb, var(--accent-3) 72%, var(--surface));color:var(--text)}.practice-status-message.is-loading svg{color:var(--accent);animation:.9s linear infinite spinSoft}.practice-score-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;display:grid}.practice-score-grid div{border:1px solid var(--line);background:var(--surface-strong);border-radius:14px;gap:.2rem;padding:.9rem;display:grid}.practice-score-grid strong{font-size:1.45rem}.practice-score-grid span{color:var(--muted);font-weight:700}.practice-breakdown{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--line));background:color-mix(in srgb, var(--accent-3) 52%, var(--surface));border-radius:16px;gap:.75rem;padding:.95rem;display:grid}.practice-breakdown>div:first-child{gap:.25rem;display:grid}.practice-breakdown>div:first-child strong{color:var(--text);align-items:center;gap:.35rem;display:inline-flex}.practice-breakdown p{color:var(--muted);margin:0}.practice-breakdown-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;display:grid}.practice-breakdown-item{border:1px solid var(--line);background:var(--surface-strong);border-radius:12px;gap:.1rem;min-width:0;padding:.65rem;display:grid}.practice-breakdown-item span,.practice-breakdown-item small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-weight:750;overflow:hidden}.practice-breakdown-item strong{color:var(--accent);font-size:1.2rem}.grading-list{gap:.75rem;max-height:620px;padding-right:.2rem;display:grid;overflow:auto}.grading-toggle{width:fit-content;color:var(--text);align-items:center;gap:.5rem;font-weight:800;display:inline-flex}.grading-toggle input{width:1.05rem;height:1.05rem;accent-color:var(--accent)}.grading-row{border:1px solid var(--line);background:var(--surface-strong);border-radius:14px;gap:.55rem;padding:.9rem;display:grid}.grading-row.is-correct{border-color:color-mix(in srgb, #15805f 30%, var(--line))}.grading-row.is-wrong{border-color:color-mix(in srgb, #d97706 42%, var(--line))}.grading-row>div,.grading-row dl,.grading-row dl div{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.grading-row>div{justify-content:space-between}.grading-row p,.grading-row dl,.grading-row dt,.grading-row dd{margin:0}.grading-row span,.grading-row small,.grading-row dt{color:var(--muted)}.grading-row dd{font-weight:800}.grading-row small{line-height:1.6}.practice-history-panel{margin-top:1rem}.practice-history-list{gap:.65rem;display:grid}.practice-history-row{border:1px solid var(--line);background:var(--surface-strong);border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.8rem .9rem;display:grid}.practice-history-row div{gap:.12rem;min-width:0;display:grid}.practice-history-row div:last-child{text-align:right}.practice-history-row strong{color:var(--text)}.practice-history-row span,.practice-history-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:750;overflow:hidden}.homework-grader-page,.homework-grader-hero{gap:1rem;display:grid}.homework-grader-hero p{max-width:800px}.homework-input-grid,.homework-workspace-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.homework-input-panel,.homework-ai-panel,.homework-chat-panel,.homework-access-panel{gap:1rem;display:grid}.homework-access-panel{max-width:680px}.homework-invite-form{gap:.85rem;display:grid}.homework-upload-box{border:1px dashed color-mix(in srgb, var(--accent) 40%, var(--line));background:color-mix(in srgb, var(--accent-3) 38%, var(--surface));min-height:126px;color:var(--muted);text-align:center;cursor:pointer;border-radius:18px;place-items:center;gap:.35rem;padding:1rem;transition:border-color .2s,background .2s,transform .2s;display:grid;position:relative}.homework-upload-box:hover,.homework-upload-box.is-dragging{border-color:color-mix(in srgb, var(--accent) 58%, var(--line));background:color-mix(in srgb, var(--accent-3) 52%, var(--surface));transform:translateY(-1px)}.homework-upload-box svg,.homework-upload-box strong{color:var(--accent)}.homework-upload-box input{max-width:280px}.homework-image-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.homework-image-tile{border:1px solid var(--line);background:var(--surface-strong);border-radius:14px;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.55rem;display:grid}.homework-image-tile img{object-fit:cover;border:1px solid var(--line);border-radius:10px;width:72px;height:56px}.homework-image-tile div{gap:.15rem;min-width:0;display:grid}.homework-image-tile strong,.homework-image-tile span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.homework-image-tile span{color:var(--muted);font-size:.86rem}.icon-button.compact{min-width:34px;min-height:34px;padding:.45rem}.homework-mode-toggle{border:1px solid var(--line);background:var(--surface-strong);border-radius:16px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;padding:.28rem;display:grid}.homework-mode-toggle button{box-shadow:none;background:0 0;border-color:#0000;justify-content:center}.homework-mode-toggle button.active{border-color:color-mix(in srgb, var(--accent) 34%, var(--line));background:color-mix(in srgb, var(--accent-3) 72%, var(--surface));color:var(--accent)}.homework-ai-form{grid-template-columns:repeat(2,minmax(0,1fr))}.homework-ai-notices{gap:.55rem;display:grid}.homework-ai-notices p{border:1px solid var(--line);background:var(--surface-strong);color:var(--muted);border-radius:14px;align-items:flex-start;gap:.45rem;margin:0;padding:.7rem .8rem;line-height:1.6;display:flex}.homework-ai-notices svg{color:var(--accent);flex:none;margin-top:.18rem}.homework-ai-notices .notice-warning{border-color:color-mix(in srgb, #d97706 34%, var(--line));background:color-mix(in srgb, #fff7ed 66%, var(--surface));color:color-mix(in srgb, #8a4b0f 72%, var(--text))}:root[data-theme=dark] .homework-ai-notices .notice-warning{background:color-mix(in srgb, #43270f 48%, var(--surface));color:#f3c17f}.homework-start-button{width:fit-content}.homework-start-button svg{animation:none}.homework-start-button:disabled svg{animation:.9s linear infinite spinSoft}.homework-chat-log{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-strong) 82%, var(--surface));border-radius:18px;align-content:start;gap:.75rem;min-height:360px;max-height:640px;padding:.75rem;display:grid;overflow:auto}.homework-chat-message{border:1px solid var(--line);background:var(--surface);border-radius:16px;gap:.35rem;width:min(92%,760px);padding:.85rem .95rem;display:grid}.homework-chat-message.user{border-color:color-mix(in srgb, var(--accent) 34%, var(--line));background:color-mix(in srgb, var(--accent-3) 62%, var(--surface));justify-self:end}.homework-chat-message.assistant{border-color:color-mix(in srgb, #15805f 26%, var(--line));justify-self:start}.homework-chat-message strong{color:var(--accent);text-transform:uppercase;letter-spacing:0;font-size:.84rem}.homework-chat-message p{white-space:pre-wrap;margin:0;line-height:1.7}.homework-chat-actions{flex-wrap:wrap;gap:.65rem;display:flex}.homework-follow-form{grid-template-columns:minmax(0,1fr) auto;gap:.65rem;display:grid}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.68}.portfolio-project-grid,.planner-grid,.feature-link-grid,.portfolio-split{gap:1rem;margin-top:1rem;display:grid}.portfolio-project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.portfolio-split,.planner-grid,.feature-link-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-project-card,.feature-link-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:18px;padding:1.15rem;transition:transform .22s,border-color .22s,box-shadow .22s;animation:.56s both cardRise;overflow:hidden}.portfolio-project-card:hover,.feature-link-card:hover{border-color:color-mix(in srgb, var(--accent) 34%, var(--line));transform:translateY(-4px);box-shadow:0 22px 54px #3171b72e}.portfolio-project-card h2,.feature-link-card strong{margin:.4rem 0 .7rem;font-size:1.2rem}.research-thesis-page{gap:1.2rem;display:grid}.research-thesis-hero{border:1px solid var(--line);background:linear-gradient(135deg, color-mix(in srgb, var(--surface-strong) 94%, transparent), color-mix(in srgb, var(--accent-3) 76%, transparent)), radial-gradient(circle at 86% 20%, #75b8ff3d, transparent 18rem);box-shadow:var(--shadow);border-radius:24px;grid-template-columns:minmax(0,1.1fr) minmax(280px,.55fr);align-items:stretch;gap:1rem;padding:clamp(1.4rem,4vw,2.8rem);display:grid}.research-thesis-hero h1{max-width:780px;color:var(--ink);margin:.45rem 0 .8rem;font-size:clamp(2.2rem,5vw,4.6rem);line-height:1.02}.research-thesis-hero p{max-width:780px;color:var(--muted);font-size:1.03rem;line-height:1.8}.thesis-keywords{flex-wrap:wrap;gap:.45rem;margin:1rem 0;display:flex}.thesis-keywords span{border:1px solid color-mix(in srgb, var(--accent) 22%, var(--line));color:var(--accent);background:var(--surface-strong);border-radius:999px;padding:.38rem .68rem;font-size:.86rem;font-weight:850}.thesis-overview-card,.thesis-card,.research-question-panel,.finding-card,.mechanism-step{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-strong) 90%, transparent);border-radius:18px;position:relative;box-shadow:0 14px 38px #2c6fb417}.thesis-overview-card{align-content:center;gap:.8rem;padding:1.1rem;display:grid}.thesis-overview-card>span{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:999px;width:fit-content;padding:.36rem .66rem;font-size:.86rem;font-weight:900}.thesis-overview-card div{background:var(--surface);border-radius:14px;gap:.15rem;padding:.9rem;display:grid}.thesis-overview-card strong{color:var(--ink);font-size:1.04rem}.thesis-overview-card em{color:var(--muted);font-style:normal}.research-question-panel{background:linear-gradient(135deg, color-mix(in srgb, var(--accent-3) 70%, var(--surface-strong)), var(--surface-strong));padding:1.25rem}.research-question-panel span,.thesis-card>span,.mechanism-band .section-heading span{color:var(--accent);align-items:center;gap:.4rem;font-weight:900;display:inline-flex}.research-question-panel h2{max-width:980px;color:var(--ink);margin:.55rem 0 0;font-size:clamp(1.45rem,3vw,2.35rem);line-height:1.35}.thesis-section{margin-top:.2rem}.thesis-summary-grid,.policy-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:start;gap:1rem;display:grid}.thesis-card{padding:1.1rem}.thesis-card.large p,.thesis-card p{color:var(--muted);line-height:1.75}.design-list{gap:.65rem;margin-top:.8rem;display:grid}.design-list div,.policy-row{background:var(--surface);border-radius:14px;padding:.8rem}.design-list strong,.policy-row strong,.finding-card strong{color:var(--ink)}.thesis-charts-section{border:1px solid var(--line);background:linear-gradient(135deg, color-mix(in srgb, var(--surface-strong) 88%, transparent), color-mix(in srgb, var(--accent-3) 62%, transparent)), radial-gradient(circle at 92% 8%, #75b8ff38, transparent 18rem);border-radius:24px;padding:1rem}.thesis-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.thesis-chart-card{border:1px solid color-mix(in srgb, var(--accent) 16%, var(--line));background:color-mix(in srgb, var(--surface-strong) 92%, transparent);border-radius:18px;gap:.75rem;min-width:0;padding:1rem;transition:transform .22s,border-color .22s,box-shadow .22s;display:grid;overflow:hidden;box-shadow:0 16px 40px #2c6fb41a}.thesis-chart-card:hover,.finding-card:hover,.mechanism-step:hover{border-color:color-mix(in srgb, var(--accent) 32%, var(--line));transform:translateY(-4px);box-shadow:0 22px 58px #2c6fb429}.thesis-chart-card.wide{grid-column:span 2}.chart-card-heading{gap:.18rem;display:grid}.chart-card-heading strong{color:var(--ink);font-size:1.05rem}.chart-card-heading span,.thesis-chart-card p{color:var(--muted);margin:0;font-size:.88rem;line-height:1.55}.thesis-chart-card .recharts-wrapper{font-family:inherit}.thesis-chart-card .recharts-cartesian-axis-tick-value{fill:var(--muted);font-size:.78rem;font-weight:750}.thesis-chart-card .recharts-tooltip-wrapper{outline:none}.correlation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.correlation-grid div{border:1px solid var(--line);background:var(--surface);border-radius:14px;gap:.18rem;padding:.75rem;display:grid}.correlation-grid .negative{background:linear-gradient(135deg,#3b8eea24,#a9d9ff33)}.correlation-grid .positive{background:linear-gradient(135deg,#0f766e1f,#a9d9ff2e)}.correlation-grid span{color:var(--muted);font-size:.78rem;font-weight:850}.correlation-grid strong{color:var(--ink);font-size:1.35rem}.finding-grid,.mechanism-flow{grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;display:grid}.finding-card{padding:1rem;overflow:hidden}.finding-card:before{content:"";background:linear-gradient(180deg, var(--accent), var(--accent-2));width:4px;position:absolute;inset:0 auto 0 0}.finding-card p,.mechanism-step p{color:var(--muted);line-height:1.68}.mechanism-band{border:1px solid var(--line);background:color-mix(in srgb, var(--accent-3) 54%, transparent);border-radius:22px;padding:1rem}.mechanism-flow{grid-template-columns:repeat(3,minmax(0,1fr))}.mechanism-step{background:var(--surface-strong);padding:1rem}.mechanism-step i{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:50%;place-items:center;width:2rem;height:2rem;margin-bottom:.7rem;font-style:normal;font-weight:900;display:grid}.mechanism-step h3{color:var(--ink);margin:0}.policy-row{margin-top:.7rem}.research-next-list{color:var(--muted);margin:.9rem 0 0;padding-left:1.15rem;line-height:1.8}.research-materials{margin-top:.4rem}.portfolio-project-card p,.feature-link-card span,.timeline-item p,.topic-meter span,.reading-row span,.review-list span,.planner-note p{color:var(--muted);line-height:1.65}.project-card-head,.topic-meter div,.reading-row,.task-item{justify-content:space-between;align-items:center;gap:.8rem;display:flex}.project-card-head{color:var(--accent);font-weight:800}.project-progress,.topic-meter i{background:color-mix(in srgb, var(--accent-3) 78%, transparent);border-radius:999px;height:10px;display:block;overflow:hidden}.project-progress i,.topic-meter b{border-radius:inherit;background:linear-gradient(90deg,#54a8ff,#b9e2ff,#fff,#54a8ff) 0 0/220% 100%;height:100%;animation:.9s both progressFill,5.2s ease-in-out infinite progressFlow;display:block}.portfolio-project-card dl{gap:.7rem;margin:1rem 0 0;display:grid}.portfolio-project-card dt{color:var(--accent);text-transform:uppercase;font-size:.78rem;font-weight:900}.portfolio-project-card dd{color:var(--muted);margin:.12rem 0 0;line-height:1.6}.timeline,.reading-database,.review-list,.task-list{gap:.7rem;display:grid}.timeline-item{padding-left:1.4rem;position:relative}.timeline-item:before{content:"";background:var(--accent);width:.65rem;height:.65rem;box-shadow:0 0 0 5px var(--accent-3), 0 0 20px #75b8ff5c;border-radius:50%;animation:3.8s ease-in-out infinite pulseDot;position:absolute;top:.35rem;left:0}.topic-meter{gap:.45rem;margin:.85rem 0;display:grid}.reading-row,.review-list a{border:1px solid var(--line);background:var(--surface-strong);border-radius:14px;padding:.85rem}.reading-row div,.review-list a{gap:.2rem;display:grid}.feature-link-card{gap:.25rem;transition:transform .18s,border-color .18s,box-shadow .18s;display:grid}.feature-link-card:hover{border-color:var(--accent-2);transform:translateY(-2px);box-shadow:0 20px 45px #3171b72e}.status-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;display:grid}.status-stat-grid div,.pipeline-step{border:1px solid var(--line);background:var(--surface-strong);border-radius:14px;gap:.15rem;padding:.85rem;display:grid}.status-stat-grid strong,.pipeline-step strong{color:var(--accent);font-size:1.5rem}.task-item{border:1px solid var(--line);background:var(--surface-strong);border-radius:14px;justify-content:flex-start;padding:.9rem;transition:transform .22s,border-color .22s,box-shadow .22s;animation:.52s both cardRise}.task-item:hover{border-color:color-mix(in srgb, var(--accent) 34%, var(--line));transform:translate(4px);box-shadow:0 14px 32px #3171b71f}.task-item svg,.task-item span{color:var(--accent);font-weight:900}.task-item p{margin:0;line-height:1.6}.planner-note{background:var(--accent-3);border-radius:14px;margin-top:1rem;padding:.9rem}.pipeline-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;display:grid}.draft-template{border:1px solid var(--line);color:#dbeafe;background:#0f172a;border-radius:14px;margin:0;padding:1rem;line-height:1.7;overflow:auto}.not-found{text-align:center}@keyframes avatarGlow{0%,to{transform:translateY(0)scale(1);box-shadow:0 18px 50px #3171b72e,0 0 #75b8ff00}50%{transform:translateY(-8px)scale(1.015);box-shadow:0 28px 60px #3171b73d,0 0 50px #75b8ff6b}}@keyframes portalBrandPulse{0%,to{box-shadow:var(--shadow);transform:translateY(0)scale(1)}50%{transform:translateY(-1px)scale(1.035);box-shadow:0 18px 42px #3b8eea33}}@keyframes portalSparkPulse{0%,to{opacity:.82;transform:rotate(0)scale(1)}50%{opacity:1;transform:rotate(10deg)scale(1.12)}}@keyframes portalAvatarFloat{0%,to{transform:translate(0,0)rotate(-1deg)}50%{transform:translateY(-9px)rotate(1deg)}}@keyframes portalAvatarOrbit{0%{transform:rotate(0)scale(1)}to{transform:rotate(360deg)scale(1)}}@keyframes portalAvatarShine{0%,54%{opacity:0;transform:translate(-72%)rotate(10deg)}64%{opacity:.72}82%,to{opacity:0;transform:translate(74%)rotate(10deg)}}@keyframes portalAvatarGlow{0%,to{box-shadow:0 18px 50px #3171b724,0 0 #75b8ff00}50%{box-shadow:0 26px 62px #3171b733,0 0 42px #75b8ff47}}@keyframes portalBarPulse{0%,to{opacity:.72;transform:scaleY(.82)}45%{opacity:1;transform:scaleY(1.05)}72%{opacity:.86;transform:scaleY(.92)}}@keyframes portalCardReveal{0%{opacity:0;filter:blur(7px)}to{opacity:1;filter:blur()}}@keyframes floatSoft{0%,to{transform:translate(0,0)}50%{transform:translate(14px,-18px)}}@keyframes starDrift{0%,to{opacity:.35;transform:translateY(0)rotate(0)}50%{opacity:1;transform:translateY(-18px)rotate(12deg)}}@keyframes cardRise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes radarBloom{0%{opacity:0;transform:scale(.68)}to{opacity:.9;transform:scale(1)}}@keyframes radarTrace{0%{stroke-dashoffset:520px;opacity:.35}to{stroke-dashoffset:0;opacity:1}}@keyframes radarPulse{0%,to{opacity:.9;filter:drop-shadow(0 8px 12px #3b8eea33)}50%{opacity:1;filter:drop-shadow(0 12px 18px #3b8eea52)}}@keyframes radarRingBreath{0%,to{opacity:.58}50%{opacity:.95}}@keyframes radarAxisFade{0%{opacity:0}to{opacity:1}}@keyframes radarDotFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-1.6px)}}@keyframes sectionDriftIn{0%{opacity:0;filter:blur(8px);transform:translateY(18px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes progressFill{0%{transform-origin:0;transform:scaleX(0)}to{transform-origin:0;transform:scaleX(1)}}@keyframes ambientSweep{0%,to{opacity:.72;background-position:0%,0 0,0 0}50%{opacity:1;background-position:100%,0 0,0 0}}@keyframes buttonShine{0%,64%{opacity:0;transform:translate(0)rotate(18deg)}72%{opacity:1}to{opacity:0;transform:translate(360%)rotate(18deg)}}@keyframes heroAura{0%,to{background-position:0 0,50%}50%{background-position:0 0,64% 42%}}@keyframes progressFlow{0%,to{background-position:0%}50%{background-position:100%}}@keyframes pulseDot{0%,to{box-shadow:0 0 0 5px var(--accent-3), 0 0 20px #75b8ff47;transform:scale(1)}50%{box-shadow:0 0 0 7px var(--accent-3), 0 0 28px #75b8ff70;transform:scale(1.16)}}@keyframes spinSoft{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=1120px){.portal-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=980px){.site-header,.hero,.portal-hero,.portal-entry-grid,.practice-grid,.practice-support-grid,.homework-input-grid,.homework-workspace-grid,.two-column,.library-hero,.library-layout,.profile-header,.reader-grid,.dashboard-grid,.materials-layout,.portfolio-project-grid,.portfolio-split,.planner-grid,.feature-link-grid,.research-thesis-hero,.thesis-summary-grid,.policy-grid,.finding-grid,.mechanism-flow,.thesis-chart-grid,.correlation-grid{grid-template-columns:1fr}.thesis-chart-card.wide{grid-column:span 1}.nav,.header-actions{justify-content:flex-start}.nav{flex-wrap:nowrap;padding-bottom:.2rem;overflow-x:auto}.practice-form-grid,.homework-ai-form{grid-template-columns:1fr}.practice-score-grid,.practice-breakdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-history-row{grid-template-columns:1fr}.practice-history-row div:last-child{text-align:left}.section-grid,.post-list.grid,.material-grid,.library-grid,.material-mini-grid,.info-grid,.auth-grid,.admin-grid,.metric-grid,.v2-metrics,.pipeline-grid,.status-stat-grid{grid-template-columns:1fr}.toc{position:static}.material-filters{grid-template-columns:1fr 1fr}.preview-panel,.library-preview{position:static}.library-filters{grid-template-columns:1fr 1fr}.preview-frame.large,.office-preview{height:58vh;min-height:360px}.desktop-pdf-preview{display:none}.mobile-pdf-fallback{display:grid}}@media (width<=640px){.page{width:min(100% - 1rem,1180px);padding-top:1rem}.site-header{padding:.7rem}.brand img{width:40px;height:40px}.nav a,.icon-button{padding:.5rem .62rem;font-size:.88rem}.nav{width:100%}.nav a{justify-content:flex-start}.material-filters,.library-filters,.library-metrics,.homework-image-list,.homework-follow-form{grid-template-columns:1fr}.homework-chat-message{width:100%}.hero h1,.research-thesis-hero h1,.section-hero h1,.profile-header h1,.article-header h1,.auth-card h1{font-size:2rem}.form-row,.archive-item,.admin-list-item,.footer{flex-direction:column;grid-template-columns:1fr}.form-actions,.preview-actions{align-items:stretch}.form-actions .button,.preview-actions .button{justify-content:center;width:100%}.material-card-lock-note{grid-template-columns:auto minmax(0,1fr)}.material-card-lock-note a{grid-column:2;width:fit-content}}
