@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Nunito:wght@400;500;600;700;800;900&display=swap');
:root{--ink:#292343;--muted:#655e79;--paper:#fdfbff;--primary:#5547a7;--sunshine:#ffe59b;--line:#e9e3f3;--radius:24px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.75 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select,summary{outline-offset:5px}button{cursor:pointer}img{max-width:100%;display:block}.container{width:min(1280px,90%);margin-inline:auto}.announcement{background:var(--primary);color:white;text-align:center;font-size:12px;padding:10px 20px;letter-spacing:.2px}.announcement a{margin-left:16px;color:var(--sunshine);font-weight:600}.announcement span{margin-left:12px}header{width:min(1390px,94%);margin:auto;min-height:102px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font:800 30px/1 'Nunito',sans-serif;letter-spacing:-1.7px;display:inline-flex;align-items:center}.brand-dot{color:#f3c94f}.brand-mark{width:38px;height:39px;background:var(--primary);color:var(--sunshine);border-radius:20px;display:inline-flex;align-items:center;justify-content:center;margin-right:9px;font:800 38px/1 'Nunito';position:relative}.brand-mark span{position:absolute;right:1px;top:0;font-size:15px}nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:600}nav a:hover,.text-link:hover{color:#5547a7}nav [aria-current]{color:var(--primary);text-decoration:underline;text-underline-offset:7px}.portal{border-left:1px solid var(--line);padding-left:25px}.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;background:var(--primary);color:#fff;border:1px solid var(--primary);padding:15px 22px;border-radius:14px;font-size:14px;font-weight:600;line-height:1.5;transition:background .2s,transform .2s}.button:hover{background:#403183;color:white;transform:translateY(-2px)}.button.small{padding:12px 18px;gap:20px}.text-link{font-size:14px;font-weight:700}.menu-toggle{display:none}.skip{position:fixed;top:-100px;background:white;padding:12px;z-index:10}.skip:focus{top:0}.eyebrow{font-size:12px;font-weight:800;letter-spacing:1.8px;color:var(--primary);margin-bottom:22px}.curiosity-dot{display:inline-block;background:#7a65c1;width:7px;height:7px;border-radius:50%;margin-right:7px}h1,h2,h3{font-family:'Nunito',sans-serif;line-height:1.12;letter-spacing:-1.9px;margin-top:0}h1{font-size:clamp(42px,4.7vw,68px);font-weight:800;margin-bottom:25px}h2{font-size:clamp(32px,3.3vw,46px);font-weight:700;margin-bottom:24px}h3{font-size:19px;letter-spacing:-.6px;line-height:1.4;margin-bottom:10px}p{color:var(--muted);margin:0 0 20px}.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:5%;align-items:center;min-height:640px;padding-top:50px;padding-bottom:80px}.hero-copy{position:relative}.hero-copy>p{max-width:480px;font-size:16px;line-height:1.85}.underline{color:var(--primary);position:relative;z-index:0}.underline:after{content:'';position:absolute;left:0;bottom:4px;width:100%;height:12px;background:var(--sunshine);z-index:-1;transform:rotate(-2deg)}.spark{display:inline-block;color:#94b568;font-size:36px;margin-left:17px;vertical-align:top}.actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin:30px 0}.hero-proof{display:flex;align-items:center;gap:15px;margin-top:38px;font-size:14px;line-height:1.6;color:var(--muted)}.hero-proof strong{color:var(--ink);font-weight:500}.avatar-stack{display:flex;padding-left:6px}.avatar-stack img{width:37px;height:37px;object-fit:cover;border:3px solid var(--paper);border-radius:50%;margin-left:-6px;background:#e5dff5}.hero-art{height:470px;position:relative;background:#e5f5f8;border-radius:45% 43% 40% 40%;isolation:isolate}.art-grid{position:absolute;inset:0;opacity:.35;background-image:linear-gradient(#a5dce5 1px,transparent 1px),linear-gradient(90deg,#a5dce5 1px,transparent 1px);background-size:32px 32px;border-radius:inherit;mask-image:radial-gradient(black,transparent 70%)}.orbit{position:absolute;border:1px dashed #b4add8;width:92%;height:80%;border-radius:50%;inset:12% 4%;transform:rotate(-24deg);z-index:-1}.orbit-two{transform:rotate(32deg);height:70%;top:17%}.code-window{position:absolute;left:2%;top:20%;width:96%;background:#302451;border-radius:13px;box-shadow:0 24px 40px #5547a726;transform:rotate(-5deg);color:#f8f5df;overflow:hidden}.window-bar{height:43px;border-bottom:1px solid #ffffff18;display:flex;align-items:center;gap:6px;padding:0 17px;background:#403263}.window-bar i{width:7px;height:7px;background:#eea497;border-radius:50%}.window-bar i:nth-child(2){background:#edcf7d}.window-bar i:nth-child(3){background:#a5c388}.window-bar span{margin:auto;font:10px monospace;color:#ded6f2}.code-lines{padding:22px 13px;font:11px/1.9 monospace;white-space:nowrap}.code-lines p{color:#f4efff;margin:0 0 4px}.code-lines b{font-weight:400;color:#a89abe;margin-right:18px}.code-lines span{color:#d4b7ff}.code-lines em{font-style:normal;color:#b9aed0}.code-lines q{color:#ffdf8f;quotes:'"' '"'}.code-lines mark{color:#eac588;background:none}.terminal{background:#251b40;padding:13px 20px;font:10px monospace;color:#c7eff6}.floating{position:absolute;border:1px solid #e6dff3;background:var(--paper);box-shadow:0 8px 20px #5547a712;border-radius:9px;padding:12px 19px;font-size:14px;font-weight:700;z-index:3}.label-ai{top:7%;left:5%;transform:rotate(-8deg);color:var(--primary)}.label-create{right:-3%;bottom:7%;transform:rotate(7deg)}.art-star{position:absolute;color:#7961bd;font-size:53px}.star-one{right:0;top:7%}.star-two{left:5%;bottom:4%;font-size:60px;color:#e3b641}.art-caption{position:absolute;bottom:-28px;text-align:center;width:100%;font-size:12px;letter-spacing:2px;color:#70608e}.robot{position:absolute;right:-5%;top:44%;width:140px;transform:rotate(9deg);z-index:4}.antenna{height:24px;width:4px;background:#7260a5;margin:auto;position:relative}.antenna:before{content:'';position:absolute;top:-7px;left:-5px;width:14px;height:14px;background:#ffd66b;border-radius:50%}.robot-face{height:95px;background:#c5edf4;border:6px solid #9dd6e2;border-radius:28px;position:relative;box-shadow:4px 6px 0 #78b5c8}.robot-face i{width:13px;height:17px;background:#403263;border-radius:50%;position:absolute;top:24px;left:28px}.robot-face i:nth-child(2){left:77px}.robot-face>span{position:absolute;top:35px;left:47px;font-size:30px;color:#403263}.robot-body{width:78px;height:65px;margin:7px auto 0;background:#b8e6f0;border-radius:15px 15px 30px 30px;text-align:center;color:#6752a9;font-size:30px;box-shadow:4px 4px 0 #8ec7d7}.robot-shadow{height:15px;width:105px;background:#5547a722;border-radius:50%;margin:15px auto}.belief-strip{border-block:1px solid var(--line);padding:24px 0;background:#f2edfb}.belief-strip .container{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:12px}.belief-strip span:first-child{font-weight:700}.section{padding-top:95px;padding-bottom:95px}.section-heading{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-bottom:35px}.section-heading h2{margin:0}.section-heading>div:last-child>p,.section-heading>p{font-size:14px;max-width:390px}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.course-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;transition:box-shadow .2s}.course-card:hover{box-shadow:0 10px 30px #22352b0c}.course-art{height:215px;display:block;position:relative;background:#eae0fa;overflow:hidden}.course-card:nth-child(2n) .course-art{background:#fff0bc}.course-card.python .course-art{background:#ddf3f7}.course-card.web .course-art{background:#e7e8ff}.course-card.ai .course-art{background:#fce3ef}.level-label{position:absolute;left:18px;top:16px;border:1px solid #ffffffaa;border-radius:5px;background:#ffffff70;padding:3px 10px;font-size:12px;letter-spacing:1px;font-weight:700}.art-corner{position:absolute;right:18px;bottom:15px;background:#ffffffaa;border-radius:50%;width:30px;height:30px;text-align:center;line-height:30px}.course-symbol{position:absolute;inset:50px 25px 20px;display:grid;place-content:center}.block-code{font:600 12px monospace;background:#8e77b7;color:white;border-radius:5px;padding:9px 20px;display:block;position:relative;transform:rotate(-7deg);box-shadow:0 3px 0 #725b98}.block-code.second{margin-top:4px;margin-left:23px;background:#bba4dc;color:#332847;box-shadow:0 3px 0 #a18abf;transform:rotate(3deg)}.block-code.third{margin-top:5px;background:#f5cc70;color:#5c4a28;box-shadow:0 3px 0 #d8b25c;transform:rotate(-3deg)}.python-symbol{font:700 90px/1 monospace;color:#427d9a;letter-spacing:-10px;transform:rotate(-9deg)}.python-symbol span{font-size:44px;letter-spacing:0;display:inline-block;vertical-align:top;color:#e6bb44;margin-left:13px}.web-symbol{font:700 90px/1 monospace;color:#6886b6;transform:rotate(-8deg)}.ai-symbol{font-size:150px;line-height:1;color:#c68878}.course-info{padding:23px}.course-meta{display:flex;justify-content:space-between;font-size:12px;letter-spacing:1px;color:var(--muted);margin-bottom:13px;text-transform:uppercase}.course-info h3{font-size:21px}.course-info p{font-size:14px;min-height:66px;line-height:1.75}.card-bottom{border-top:1px solid var(--line);padding-top:15px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px;font-weight:600}.status{display:inline-flex;align-items:center;gap:6px;color:#675294;font-size:14px}.status i{width:5px;height:5px;display:inline-block;background:#9379cc;border-radius:50%}.status.closed{color:#7e7e7e}.status.closed i{background:#999}.status.open{color:#23754a}.status.open i{background:#25a66b}.path-note{display:flex;gap:20px;justify-content:center;align-items:center;margin-top:35px;color:var(--muted);font-size:14px}.path-note b{font-size:18px;font-weight:400;color:#9fa99b}.approach{background:#f1edfa;padding:90px 0}.approach-grid{display:grid;grid-template-columns:1fr 1fr;gap:12%}.approach-grid>div>p{max-width:400px}.serif{font-family:Georgia,serif;font-style:italic;font-weight:400;color:var(--primary)}.mini-code{font:12px/2 monospace;padding:30px 0 0;color:#796a96}.mini-code strong{font-weight:500;color:var(--primary)}.approach-list article{display:flex;gap:23px;border-bottom:1px solid #ddd3ee;padding:25px 0 17px}.approach-list article:first-child{padding-top:0}.approach-list article>span{font:12px monospace;color:#8971b1;padding-top:5px}.approach-list p{font-size:14px;margin-bottom:10px}.teacher-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;margin-top:40px}.teacher-photo{aspect-ratio:1/.98;background:#e9e0f8;border-radius:20px;overflow:hidden;margin-bottom:17px}.teacher:nth-child(2n) .teacher-photo{background:#e1f1f5}.teacher-photo img{width:100%;height:100%;object-fit:cover}.teacher h3{font-size:14px;letter-spacing:-.3px;margin-bottom:5px}.teacher p{font-size:12px;line-height:1.6}.formats{padding:50px 45px;background:#edf7fa;border-radius:20px}.formats h2{font-size:36px}.format-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:40px}.format-grid article+article{border-left:1px solid #cce4ec;padding-left:35px}.format-grid article>span{font-size:28px;color:#6752a9;display:block;margin-bottom:18px}.format-grid h3{font-size:18px}.format-grid p{font-size:14px}.format-grid a{font-size:12px;font-weight:700}.cta{margin-top:90px;margin-bottom:90px;background:var(--sunshine);border-radius:20px;padding:65px 9%;position:relative;overflow:hidden}.cta h2{max-width:700px}.cta p{color:#5c4679}.cta .actions{margin-bottom:0}.cta-star{position:absolute;font-size:210px;color:#f3d16f;right:30px;top:50px;line-height:1;z-index:0}.cta>div,.cta>h2,.cta>p{position:relative}footer{background:#f0ebf8;border-top:1px solid var(--line);padding-top:60px}.footer-top{display:grid;grid-template-columns:2fr 1.2fr 1.2fr 1fr;gap:35px;padding-bottom:50px}.footer-top>div{display:flex;flex-direction:column;align-items:flex-start;gap:8px;font-size:12px}.footer-top p{margin-top:12px;margin-bottom:7px}.footer-top strong{font-size:14px;margin-bottom:12px}.footer-bottom{display:flex;justify-content:space-between;padding:20px 0;border-top:1px solid #ddd3ed;font-size:12px;color:#736886}.page-intro{padding:75px 0 50px}.page-intro>p{max-width:650px;font-size:16px}.page-intro h1{max-width:900px}.catalog{padding-top:20px}.filters{display:flex;gap:18px;align-items:flex-end;border-block:1px solid var(--line);padding:25px 0}.filters label{display:block;font-size:14px;font-weight:600;margin-bottom:7px}.filters input,.filters select{border:1px solid #ddd3ee;border-radius:14px;padding:13px;background:white;min-width:220px;color:var(--ink)}.search-field{flex:1}.search-field input{width:100%}.filters .text-link{padding-bottom:14px}.results{font-size:12px;margin-top:25px}.catalog .course-grid{row-gap:30px}.help-box{padding:35px;background:#f0eafa;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:50px;border-radius:20px}.help-box p{margin:0;font-size:14px}.help-box h3{margin:0 0 5px}.detail .eyebrow{margin-top:40px}.detail-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:10%}.detail h1{font-size:50px}.detail h2{font-size:25px;letter-spacing:-.7px;margin-top:40px}.detail .lead{font-size:19px}.outcomes{list-style:none;padding:0}.outcomes li{padding:13px 0 13px 30px;border-bottom:1px solid var(--line);position:relative;color:#655a78}.outcomes li:before{content:'↗';position:absolute;left:0;color:#8065b5}.enroll-panel{background:#f0eafa;border:1px solid #dfd3f1;border-radius:18px;padding:35px;align-self:start;margin-top:40px}.enroll-panel h2{margin-top:20px}.enroll-panel hr{border:0;border-top:1px solid #ddd0ed;margin:30px 0}.enroll-panel h3{font-size:14px}.enroll-panel .button{width:100%;margin-bottom:15px}.fine{font-size:14px;line-height:1.8}.form-page{max-width:720px}.form-page .eyebrow{margin-top:40px}.form-page h1{font-size:52px}.interest-form{background:#f0eafa;padding:35px;border-radius:15px;margin-top:30px}.form-field{margin-bottom:20px}.form-field label{display:block;font-size:14px;margin-bottom:6px}.form-field input:not([type=checkbox]),.form-field select{display:block;width:100%;border:1px solid #d7c9eb;border-radius:6px;background:white;padding:12px}.form-field.checkbox{display:flex;align-items:flex-start;gap:10px}.checkbox input{margin-top:8px}.interest-form .fine{margin-top:20px;margin-bottom:0}.errorlist{color:#9d322c;font-size:14px}.messages p{background:#e7f3f5;border:1px solid #b9dce3;color:#345c70;padding:20px;border-radius:8px;margin:20px 0}.prose{max-width:800px;padding-top:20px}.prose h2{font-size:30px}.prose p{font-size:16px;line-height:1.9}.faq-list{max-width:900px;padding-top:10px}.faq-list details{border-bottom:1px solid var(--line);padding:23px 0}.faq-list summary{cursor:pointer;font:600 18px 'Nunito',sans-serif;line-height:1.5}.faq-list details p{padding-top:20px;margin-bottom:0;max-width:740px}.empty{grid-column:1/-1;padding:40px 0}.empty h2{font-size:30px}
@media(min-width:1500px){.hero{min-height:690px}.hero-art{height:500px}}@media(max-width:1100px){nav{gap:16px}.portal{display:none}.hero{gap:4%;min-height:590px}.hero-art{height:390px}.code-lines{font-size:12px;padding-inline:10px}.robot{width:115px}.robot-face i{left:20px}.robot-face i:nth-child(2){left:65px}.robot-face>span{left:36px}.hero h1{font-size:49px}.hero .actions{gap:16px}.hero .button{gap:15px;padding:14px}.hero .text-link{font-size:14px}.teacher-grid{grid-template-columns:repeat(3,1fr);gap:25px}.teacher h3{font-size:17px}.teacher p{font-size:12px}.course-info{padding:18px}.course-info h3{font-size:18px}.card-bottom{font-size:12px}.course-meta{font-size:11px}}@media(max-width:760px){header{min-height:80px;position:relative}.brand{font-size:27px}.brand-mark{width:32px;height:34px;font-size:32px}.menu-toggle{display:block;background:transparent;border:1px solid var(--line);padding:8px 12px;border-radius:6px;font-size:12px}nav{display:none;position:absolute;left:0;right:0;top:75px;background:var(--paper);padding:25px;z-index:10;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 20px #0001}nav.is-open{display:flex;flex-direction:column;align-items:flex-start;gap:18px}.announcement{font-size:12px}.announcement a{display:block;margin-left:0}.hero{grid-template-columns:1fr;padding:40px 0 60px;gap:45px}.hero h1{font-size:clamp(40px,9vw,60px)}.hero .eyebrow{font-size:11px;letter-spacing:1.5px}.hero-copy>p{font-size:14px}.hero-art{width:92%;max-width:500px;margin:auto;height:390px}.hero .text-link{font-size:12px}.hero-proof{margin-top:25px}.code-lines{font-size:12px}.belief-strip .container{display:grid;grid-template-columns:1fr 1fr;font-size:12px;gap:14px}.section{padding-block:60px}.section-heading{display:block}.section-heading h2{margin-bottom:20px}.section-heading>p{margin-top:20px}.course-grid{grid-template-columns:1fr}.course-art{height:235px}.course-info p{min-height:0}.course-info h3{font-size:23px}.course-meta{font-size:12px}.card-bottom{font-size:12px}.path-note{flex-wrap:wrap;gap:12px;font-size:12px}.approach{padding:60px 0}.approach-grid{grid-template-columns:1fr;gap:40px}.teacher-grid{grid-template-columns:repeat(2,1fr);gap:18px}.teacher h3{font-size:14px}.teacher p{font-size:14px}.formats{padding:35px 25px}.formats h2{font-size:30px}.format-grid{grid-template-columns:1fr;gap:30px}.format-grid article+article{padding:25px 0 0;border-left:0;border-top:1px solid #cce4ec}.cta{margin-block:60px;padding:45px 25px}.cta h2{font-size:31px}.cta-star{right:-40px;top:20px;font-size:160px;opacity:.5}.cta .actions{gap:20px}.footer-top{grid-template-columns:1fr 1fr;gap:35px 20px}.footer-bottom{display:block}.footer-bottom span{display:block}.page-intro{padding-top:45px}.page-intro h1{font-size:42px}.page-intro>p{font-size:14px}.filters{flex-wrap:wrap}.filters>div{width:100%}.filters select{width:100%}.help-box{display:block;padding:25px}.help-box .button{margin-top:20px}.detail-grid{grid-template-columns:1fr;gap:10px}.detail h1{font-size:42px}.detail .lead{font-size:17px}.enroll-panel{padding:25px}.form-page h1{font-size:40px}.interest-form{padding:25px}.faq-list summary{font-size:16px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media(max-width:760px){.hero-art .orbit{width:80%;height:70%;left:10%;top:15%}}
@media(max-width:760px){.hero{overflow:hidden}}


/* Algoscool brand refinements: purple, aqua, lavender, and sunshine. */
:root { --focus: #a067d5; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
::selection { background: #e3d5ff; color: #302451; }
body { -webkit-font-smoothing: antialiased; }
h1, h2, h3 { letter-spacing: -.045em; }
h1 { font-weight: 900; }
h2 { font-weight: 800; }
h3 { font-weight: 800; }
header { min-height: 106px; }
.brand { color: var(--primary); font-size: 32px; font-weight: 900; }
.brand-mark { border-radius: 13px 13px 17px 13px; box-shadow: 0 3px 0 #d8cff0; }
.announcement { font-size: 13px; padding-block: 11px; }
nav { font-size: 14px; gap: 24px; }
.button { min-height: 48px; border-radius: 16px; font-size: 15px; font-weight: 700; box-shadow: 0 4px 0 #3d3185; padding: 14px 23px; }
.button:hover { box-shadow: 0 6px 0 #3d3185, 0 10px 20px #5547a71a; }
.button:active { transform: translateY(2px); box-shadow: 0 2px 0 #3d3185; }
.button.small { font-size: 14px; min-height: 46px; padding: 12px 18px; }
.text-link { font-size: 15px; }
.eyebrow { font-size: 12px; letter-spacing: 1.4px; line-height: 1.7; }
.hero { gap: 4%; grid-template-columns: 1.1fr 1fr; padding-block: 52px 78px; }
.hero h1 { font-size: clamp(44px, 4.5vw, 66px); line-height: 1.08; }
.hero-copy > p { font-size: 18px; line-height: 1.8; max-width: 520px; }
.hero-proof { font-size: 14px; }
.avatar-stack img { width: 43px; height: 43px; }
.spark { color: #a58bda; }
.hero-art { background: radial-gradient(circle at 35% 30%, #f4fbfd, #d7eff4); border: 1px solid #c7e6ed; }
.floating { border-radius: 16px; font-size: 15px; border-color: #ded2f0; box-shadow: 0 5px 0 #cfc2e84d; }
.label-ai { background: #fff0bf; }
.label-create { background: #f2e8ff; color: var(--primary); }
.code-window { border: 1px solid #5c487b; border-radius: 18px; }
.window-bar { height: 46px; }
.window-bar span { font-size: 12px; }
.code-lines { font-size: 12px; padding-block: 25px; }
.terminal { font-size: 12px; }
.art-caption { color: #66517d; font-size: 11px; letter-spacing: 1.5px; }
.robot-face { border-radius: 32px; }
.robot-face::before, .robot-face::after { content: ''; width: 17px; height: 8px; border-radius: 50%; background: #f1aac3; position: absolute; top: 48px; opacity: .8; }
.robot-face::before { left: 14px; } .robot-face::after { right: 12px; }
.robot-body { border-radius: 18px 18px 33px 33px; }
.belief-strip .container { font-size: 14px; }
.belief-strip { background: #f1ecfa; border-color: #e4d9f2; }
.section-heading > div:last-child > p, .section-heading > p { font-size: 16px; }
.course-card { display: flex; flex-direction: column; border: 1px solid #e0d6ee; box-shadow: 0 5px 0 #eee8f7; transition: transform .2s, box-shadow .2s; }
.course-card:hover { transform: translateY(-5px); box-shadow: 0 10px 0 #e9e0f5, 0 18px 28px #5547a70d; }
.course-art { flex: none; height: 225px; border-bottom: 1px solid #ffffff80; }
.course-info { padding: 25px; display: flex; flex: 1; flex-direction: column; }
.course-info h3 { font-size: 24px; }
.course-info p { font-size: 16px; line-height: 1.7; min-height: 0; margin-bottom: 24px; }
.course-meta { font-size: 11px; letter-spacing: .8px; gap: 10px; }
.card-bottom { margin-top: auto; font-size: 14px; gap: 10px; }
.status { background: #f0eafa; color: #614594; padding: 5px 10px; border-radius: 30px; font-size: 12px; white-space: nowrap; }
.status.open { background: #e4f5eb; color: #286847; }
.status.closed { background: #efedf2; color: #68616d; }
.level-label { font-size: 12px; border-radius: 30px; padding: 5px 12px; color: #534172; background: #ffffffb8; }
.art-corner { width: 38px; height: 38px; line-height: 38px; font-size: 20px; }
.block-code { font-size: 13px; border-radius: 9px; }
.path-note { font-size: 14px; flex-wrap: wrap; gap: 18px; }
.approach { background: #f0ebfa; }
.serif { font-family: 'Nunito', sans-serif; font-style: normal; font-weight: 900; }
.approach-list article { background: #ffffffb3; border: 1px solid #e0d5ef; border-radius: 22px; padding: 24px; margin-bottom: 16px; gap: 18px; }
.approach-list article:first-child { padding-top: 24px; }
.approach-list article > span { font: 800 15px 'Nunito', sans-serif; width: 37px; height: 37px; flex: none; border-radius: 12px; background: #e4d8f6; color: #7053a5; display: grid; place-items: center; padding: 0; }
.approach-list article:nth-child(2) > span { background: #d6edf3; color: #42738a; }
.approach-list article:nth-child(3) > span { background: #fff0bd; color: #80652d; }
.approach-list h3 { font-size: 22px; }
.approach-list p { font-size: 16px; margin-bottom: 0; }
.mini-code { font-size: 14px; }
/* Keep original portraits uncropped and align each card around a shared frame. */
.teacher-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.teacher { display: flex; flex-direction: column; align-items: center; min-width: 0; padding: 32px 24px 28px; background: #fff; border: 1px solid #e6def0; border-radius: 26px; box-shadow: 0 4px 0 #f0eaf8; text-align: center; }
.teacher-photo { width: min(100%, 180px); aspect-ratio: 1; flex: none; margin: 0 0 24px; border-radius: 50%; overflow: hidden; background: #eee5fb; }
.teacher-photo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.teacher:nth-child(3n+2) .teacher-photo { background: #dcf1f6; }
.teacher:nth-child(3n) .teacher-photo { background: #fff0ca; }
.teacher-details { width: 100%; }
.teacher h3 { font-size: 20px; line-height: 1.35; margin: 0 0 8px; }
.teacher p { font-size: 15px; line-height: 1.6; margin: 0; min-height: 48px; }
.formats { background: #eaf5f8; border: 1px solid #d2e9ef; border-radius: 28px; }
.format-grid h3 { font-size: 23px; }
.format-grid p { font-size: 16px; }
.format-grid a { font-size: 15px; color: var(--primary); }
.format-grid article > span { width: 53px; height: 53px; display: grid; place-items: center; background: #fff; border-radius: 18px; color: var(--primary); }
.cta { border: 1px solid #f1d483; border-radius: 30px; background: #ffedb0; }
.cta h2 { max-width: 800px; }
.cta p { font-size: 17px; }
.cta-star { color: #f2cd68; }
.footer-top > div { font-size: 15px; gap: 12px; }
.footer-top strong { font-size: 14px; color: var(--primary); }
.footer-bottom { font-size: 13px; color: #6f6181; }
.page-intro > p { font-size: 18px; }
.filters { background: #f4effb; padding: 24px; border: 1px solid #e3d8f0; border-radius: 22px; }
.filters label, .form-field label { font-size: 15px; font-weight: 600; }
.filters input, .filters select, .form-field input:not([type=checkbox]), .form-field select { min-height: 50px; font-size: 16px; border-radius: 13px; padding: 12px 15px; }
.results { font-size: 14px; }
.help-box { border: 1px solid #e1d5ef; border-radius: 22px; }
.help-box p { font-size: 16px; }
.help-box h3 { font-size: 23px; }
.enroll-panel { border-radius: 26px; box-shadow: 0 6px 0 #e5daf4; }
.enroll-panel h3 { font-size: 17px; }
.fine { font-size: 14px; }
.interest-form { border: 1px solid #dfd1ef; border-radius: 25px; padding: 32px; }
.checkbox input { width: 19px; height: 19px; flex: none; accent-color: var(--primary); }
.faq-list details { background: #fff; border: 1px solid #e4daef; border-radius: 20px; padding: 23px 26px; margin-bottom: 14px; }
.faq-list details[open] { background: #f3eefb; border-color: #d3c2e9; }
.faq-list summary { font-family: 'Nunito', sans-serif; font-size: 20px; font-weight: 800; }
@media (max-width: 1200px) {
  nav { gap: 16px; } nav .portal { display: none; }
  .hero .actions { gap: 20px; }
  .hero .button, .hero .text-link { font-size: 14px; }
  .code-lines { font-size: 10px; }
  .course-info { padding: 21px; }
  .course-info h3 { font-size: 22px; }
  .card-bottom { flex-wrap: wrap; }
  .course-meta { flex-wrap: wrap; }
}
@media (max-width: 900px) and (min-width: 761px) {
  .course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  nav { gap: 13px; font-size: 13px; }
  nav .button { display: none; }
  .hero h1 { font-size: 44px; }
  .hero-copy > p { font-size: 16px; }
  .hero-art { height: 370px; }
  .belief-strip .container { flex-wrap: wrap; justify-content: center; }
  .filters { flex-wrap: wrap; }
  .search-field { min-width: 200px; }
}
@media (max-width: 760px) {
  header { min-height: 88px; }
  .brand { font-size: 29px; }
  .menu-toggle { min-height: 44px; border-radius: 13px; font-size: 14px; color: var(--primary); background: #f2ecfb; }
  nav { top: 80px; border-radius: 20px; font-size: 16px; }
  nav .button { width: 100%; }
  .announcement { font-size: 12px; }
  .hero { grid-template-columns: 1fr; gap: 44px; padding-top: 36px; padding-bottom: 55px; }
  .hero h1 { font-size: clamp(40px, 10.5vw, 58px); }
  .hero .eyebrow { font-size: 11px; letter-spacing: 1px; }
  .hero-copy > p { font-size: 17px; }
  .hero .button, .hero .text-link { font-size: 15px; }
  .hero .actions { gap: 24px; }
  .hero-art { height: 360px; }
  .code-lines { font-size: 9px; padding-inline: 8px; }
  .code-lines b { margin-right: 10px; }
  .terminal { font-size: 10px; }
  .window-bar span { font-size: 10px; }
  .floating { font-size: 13px; padding: 10px 15px; }
  .art-caption { font-size: 10px; }
  .belief-strip .container { font-size: 13px; }
  .course-grid { grid-template-columns: minmax(0, 1fr); }
  .course-info { padding: 24px; }
  .course-info h3 { font-size: 25px; }
  .course-meta { font-size: 12px; }
  .card-bottom { font-size: 14px; }
  .path-note { font-size: 13px; gap: 12px; }
  .approach-list article { padding: 22px 18px; gap: 14px; }
  .approach-list article:first-child { padding-top: 22px; }
  .approach-list h3 { font-size: 21px; }
  .teacher-grid { gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .teacher { padding: 24px 16px; border-radius: 20px; }
  .teacher-photo { width: min(100%, 156px); aspect-ratio: 1; border-radius: 50%; }
  .teacher h3 { font-size: 17px; line-height: 1.3; }
  .teacher p { font-size: 13px; }
  .formats { padding: 32px 24px; }
  .cta { padding: 40px 25px; }
  .cta h2 { font-size: 34px; }
  .footer-top > div { font-size: 14px; }
  .page-intro h1 { font-size: 42px; }
  .page-intro > p { font-size: 17px; }
  .filters { padding: 20px; }
  .filters input, .filters select { min-width: 0; width: 100%; }
  .interest-form { padding: 24px; }
  .faq-list summary { font-size: 19px; }
  .faq-list details { padding: 21px; }
}
@media (prefers-reduced-motion: reduce) {
  .course-card, .button { transition: none; }
  .course-card:hover, .button:hover { transform: none; }
}
/* Keep the decorative heading sparkle from taking up a line of text. */
.hero h1 { position: relative; }
.hero .spark { position: absolute; top: -24px; right: 8px; margin: 0; font-size: 32px; }
@media (max-width: 760px) { .hero .spark { top: auto; bottom: 8px; right: 8px; } }

/* Published announcements and the AI-ready mission. */
.banner-kind { display: inline-block; background: #ffffff20; border: 1px solid #ffffff40; border-radius: 30px; padding: 2px 10px; margin-right: 8px; font-size: 12px; font-weight: 700; }
.updates-section { padding-bottom: 70px; }
.announcement-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.announcement-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid #ded3ee; background: #fff; border-radius: 24px; padding: 28px; box-shadow: 0 5px 0 #eee8f7; overflow-wrap: anywhere; }
.post-meta { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; font-size: 12px; color: #71617f; margin-bottom: 22px; }
.post-kind { border-radius: 30px; background: #eee5fb; color: #604791; padding: 5px 12px; font-weight: 700; }
.kind-enrollment .post-kind { background: #fff0bc; color: #725723; }
.kind-event .post-kind { background: #ddf3f7; color: #34667a; }
.announcement-card h3 { font-size: 25px; line-height: 1.25; }
.announcement-card p { font-size: 16px; }
.announcement-card > .text-link { margin-top: auto; padding-top: 10px; }
.ai-mission { display: grid; grid-template-columns: 1fr 1fr; gap: 8%; padding: 48px; border: 1px solid #cfe6ed; border-radius: 28px; background: #eaf5f8; margin-top: 35px; }
.ai-mission h2 { font-size: 38px; }
.ai-mission p { max-width: 540px; }
.ai-pillars { display: grid; gap: 21px; }
.ai-pillars article { display: flex; align-items: flex-start; gap: 17px; }
.ai-pillars article > span { width: 45px; height: 45px; border-radius: 15px; background: #fff; color: var(--primary); flex: none; display: grid; place-items: center; font-weight: 800; }
.ai-pillars h3 { font-size: 21px; margin-bottom: 5px; }
.ai-pillars p { font-size: 15px; margin-bottom: 0; }
.updates-list { padding-top: 10px; }
.updates-empty { grid-column: 1 / -1; padding: 45px; border-radius: 26px; background: #f1ebfa; }
.updates-empty > span { font-size: 42px; color: #9a7cc3; }
.updates-empty h2 { font-size: 32px; }
.updates-empty p { max-width: 680px; }
.post-detail { max-width: 850px; overflow-wrap: anywhere; }
.post-detail .post-meta { margin-top: 35px; justify-content: flex-start; }
.post-detail h1 { font-size: clamp(34px, 4vw, 54px); }
.post-summary { font-size: 21px; line-height: 1.7; }
.post-body { font-size: 17px; line-height: 1.85; }
.post-action { margin-top: 30px; }
.preview-notice { border: 1px solid #e9cc7e; background: #fff2c9; padding: 16px 20px; border-radius: 15px; margin-bottom: 30px; color: #6d5426; }
nav.pagination { display: flex; position: static; background: transparent; border: 0; box-shadow: none; justify-content: center; flex-wrap: wrap; padding: 30px 0; margin-top: 25px; gap: 25px; font-size: 14px; }
@media (max-width: 1000px) { .announcement-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ai-mission { padding: 35px; gap: 5%; } .ai-mission h2 { font-size: 32px; } }
@media (max-width: 760px) { .announcement-grid, .ai-mission { grid-template-columns: minmax(0, 1fr); } .ai-mission { padding: 29px 23px; gap: 30px; } .ai-mission h2 { font-size: 31px; } .announcement-card { padding: 25px; } .announcement-card h3 { font-size: 24px; } .updates-empty { padding: 30px 23px; } .updates-empty h2 { font-size: 29px; } .post-summary { font-size: 19px; } .announcement { overflow-wrap: anywhere; } }

/* Normalize icon alignment independently of text glyph baselines. */
.format-grid article > span, .ai-pillars article > span,
.approach-list article > span { display: grid; place-items: center; flex-shrink: 0; line-height: 1; }
.format-grid article { display: flex; flex-direction: column; align-items: flex-start; }
.format-grid article > a { margin-top: auto; }
@media (max-width: 540px) {
  .teacher-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .teacher { padding: 28px 24px; }
  .teacher h3 { font-size: 20px; }
  .teacher p { font-size: 15px; min-height: 0; }
}

/* Official logo, preserved at its original square proportions. */
.brand { flex-shrink: 0; gap: 8px; }
.brand-logo { width: 72px; height: 72px; object-fit: contain; flex: none; }
@media (max-width: 760px) {
  .brand { gap: 4px; }
  .brand-logo { width: 54px; height: 54px; }
}

/* Family portal uses the public site's typography and purple accents. */
.portal-page h1 { font-size: clamp(34px, 4vw, 54px); }
.portal-page .eyebrow { margin-top: 20px; }
.portal-page .section-heading h2 { margin-bottom: 0; }
.portal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 30px 0 50px; }
.portal-card { min-width: 0; background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: 28px; margin-bottom: 20px; overflow-wrap: anywhere; }
.portal-card h2 { font-size: 28px; margin-top: 18px; }
.portal-card h3 { font-size: 23px; margin-top: 12px; }
.portal-card h4 { font-size: 18px; margin: 12px 0 8px; }
.portal-card p:last-child { margin-bottom: 0; }
.portal-columns { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 32px; }
.portal-columns h2 { font-size: 30px; }
.registration-summary { border-top: 1px solid var(--line); padding-top: 20px; margin-top: 20px; }
.status { display: inline-flex; align-items: center; padding: 5px 12px; border-radius: 20px; background: #eee8fa; color: var(--primary); font-size: 13px; font-weight: 700; }
.status-confirmed { background: #e0f2e8; color: #216343; }
.status-pending, .status-waitlisted { background: #fff0ca; color: #795818; }
.status-cancelled { background: #f4e8e8; color: #854545; }
.portal-notice { background: #fff0ca; border-radius: 18px; padding: 20px; margin-bottom: 35px; }
.portal-empty { margin-top: 20px; }
.portal-form input:not([type=checkbox]), .portal-form select, .portal-form textarea { display: block; width: 100%; min-width: 0; max-width: 100%; border: 1px solid #d7c9eb; border-radius: 8px; background: white; padding: 12px; font: inherit; }
.portal-form input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--primary); }
.portal-form .help-text { color: var(--muted); font-size: 13px; margin-top: 8px; }
.portal-form .errorlist { padding-left: 20px; }
.portal-form .checkbox { align-items: flex-start; }
.portal-form #id_preferred_days label { display: flex; gap: 10px; align-items: center; }
.portal-form #id_preferred_days input { flex: none; }
.portal-form > .fine { margin-top: 20px; }
.nav-account { display: inline; margin: 0; }
.nav-account button { padding: 0; border: 0; color: inherit; font: inherit; background: transparent; }
@media (max-width: 1000px) { #navigation { gap: 14px; font-size: 13px; } #navigation .button.small { padding: 10px; } }
@media (max-width: 760px) { .portal-grid, .portal-columns { grid-template-columns: minmax(0, 1fr); } .portal-card { padding: 22px; } .portal-page .section-heading .actions { margin-top: 20px; } }

/* Schedules come from seasonal offerings everywhere parents discover a course. */
.course-offering { border-top: 1px solid #d7c9eb; margin: 22px 0; padding-top: 20px; }
.course-offering .eyebrow { margin: 0 0 10px; }
.course-offering h3 { font-size: 19px; margin: 14px 0 7px; }
.offering-time { color: var(--ink); font-size: 18px; font-weight: 700; }
.course-info .catalog-schedule { min-height: 0; font-size: 14px; padding: 14px 0; border-top: 1px solid var(--line); margin-bottom: 0; }
.status-open { background: #e0f2e8; color: #216343; }
.status-upcoming { background: #eee8fa; color: #5547a7; }
.status-waitlist { background: #fff0ca; color: #795818; }
.status-closed { background: #f4e8e8; color: #854545; }
.class-overview { display: flex; flex-wrap: wrap; gap: 10px 24px; background: #eee8fa; padding: 18px 24px; border-radius: 16px; margin: 25px 0; }
.class-overview span { color: var(--muted); }
.class-filters { flex-wrap: wrap; gap: 18px; align-items: end; }
.class-filters > div { flex: 1; min-width: 160px; }
.class-filters select { width: 100%; min-width: 0; }
.term-heading { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 12px; border-bottom: 1px solid var(--line); padding-bottom: 20px; margin-top: 40px; }
.term-heading .eyebrow { margin: 0 0 8px; }
.term-heading h2, .term-heading p { margin: 0; }
.class-card { display: flex; align-items: flex-start; flex-direction: column; }
.class-card h3 { margin-top: 20px; font-size: 27px; }
.class-card .class-group { color: var(--ink); font-weight: 600; margin-bottom: 12px; }
.class-facts { width: 100%; margin: 0 0 20px; border-block: 1px solid var(--line); padding-block: 14px; }
.class-facts > div { margin: 6px 0; }
.class-facts dt { color: var(--muted); font-size: 12px; }
.class-facts dd { margin: 0; font-weight: 600; }
.class-card-actions { margin-top: auto; padding-top: 12px; }
.class-card-actions .button { margin-bottom: 12px; }
@media (max-width: 1100px) and (min-width: 761px) { #navigation { gap: 12px; font-size: 12px; } #navigation .button.small { display: none; } }
@media (max-width: 760px) { .class-filters > div { flex-basis: 100%; } .term-heading { align-items: flex-start; flex-direction: column; } }
.teacher-initial { display: grid; place-items: center; height: 100%; color: var(--primary); font-size: 64px; font-weight: 800; }
.portal-form #id_offerings label { display: flex; align-items: center; gap: 10px; margin: 12px 0; }
.portal-form #id_offerings input { flex: none; }
.portal-form input[type=file] { max-width: 100%; font-size: 14px; }
.portal-form .help label { display: inline; }
.student-entry { max-width: 620px; }
.student-entry #id_code { font-size: 24px; letter-spacing: 2px; text-transform: uppercase; }
.student-code-reveal { display: block; font: 800 clamp(20px, 4vw, 32px) monospace; padding: 20px 0; overflow-wrap: anywhere; }
.student-tabs { display: flex; flex-wrap: wrap; position: static; gap: 12px; padding: 0; margin: 30px 0 45px; background: none; box-shadow: none; border: 0; }
.student-tabs a { background: #eee8fa; color: var(--primary); border-radius: 12px; padding: 12px 18px; font-weight: 700; }
.student-space section { scroll-margin-top: 25px; }
.student-history { margin-top: 50px; }
.student-space .portal-notice { margin-top: 18px; margin-bottom: 0; }
@media (min-width: 1101px) { #navigation { gap: 18px; } }

/* Original school positioning, with a consistent icon and heading rhythm. */
.why-algoscool { background: #f0ebfa; }
.why-algoscool .section-heading p, .why-coding .section-heading p { margin: 0; max-width: 620px; }
.benefit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.benefit-card { min-width: 0; padding: 30px; border: 1px solid var(--line); border-radius: 24px; background: #fff; }
.benefit-icon { display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 22px; border-radius: 18px; background: #eee5fb; color: var(--primary); }
.benefit-icon svg { display: block; width: 32px; height: 32px; }
.benefit-card:nth-child(2) .benefit-icon { background: #dcf1f6; color: #366e80; }
.benefit-card:nth-child(3) .benefit-icon { background: #fff0ca; color: #7c601b; }
.benefit-card h3 { min-height: 2.6em; margin: 0 0 14px; font-size: 24px; line-height: 1.3; letter-spacing: -.5px; }
.benefit-card p { font-size: 16px; line-height: 1.8; margin: 0; }
.why-coding { padding-bottom: 30px; }
@media (max-width: 1000px) { .benefit-card { padding: 24px; } .benefit-card h3 { font-size: 21px; } }
@media (max-width: 760px) { .benefit-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; } .benefit-card h3 { min-height: 0; font-size: 23px; } .benefit-icon { margin-bottom: 18px; } }

/* About: school story, mission, leadership, and teaching each have a clear place. */
.about-intro > p { max-width: 720px; }
.about-story { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 7%; padding-top: 30px; align-items: start; }
.about-story-copy { padding-top: 24px; }
.about-story p { font-size: 17px; line-height: 1.85; }
.about-belief { padding: 36px; border-radius: 28px; background: #f0ebfa; border: 1px solid #e3d9f1; }
.about-belief h2 { font-size: 30px; }
.about-belief .eyebrow { margin-bottom: 14px; }
.about-belief .benefit-icon { background: #fff; }
.about-mission { background: #f0ebfa; }
.about-mission .section-heading p { margin: 0; }
.leadership-section .section-heading p, .about-teachers .section-heading p { max-width: 750px; margin-bottom: 0; }
.leadership-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.leadership-card { padding: 32px 28px; background: #fff; border: 1px solid var(--line); border-radius: 26px; text-align: center; min-width: 0; }
.leadership-photo { width: 160px; height: 160px; border-radius: 50%; object-fit: contain; background: #eee5fb; margin: 0 auto 24px; }
.leadership-card:nth-child(2) .leadership-photo { background: #dcf1f6; }
.leadership-card:nth-child(3) .leadership-photo { background: #fff0ca; }
.leadership-card h3 { font-size: 23px; line-height: 1.3; margin-bottom: 8px; }
.leadership-card .leadership-role { color: var(--primary); font-size: 14px; font-weight: 700; min-height: 2em; margin-bottom: 20px; }
.leadership-card > p:last-child { font-size: 16px; line-height: 1.8; text-align: left; margin: 0; }
.about-teachers { padding-top: 20px; }
.about-cta { margin-top: 20px; }
@media (max-width: 1000px) { .leadership-grid { gap: 18px; } .leadership-card { padding: 26px 20px; } .leadership-card h3 { font-size: 21px; } }
@media (max-width: 760px) { .about-story, .leadership-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; } .about-story { padding-top: 0; } .about-belief { padding: 28px 24px; } .about-story-copy { padding-top: 0; } .leadership-card { padding: 30px 26px; } .leadership-card h3 { font-size: 23px; } .leadership-card .leadership-role { min-height: 0; } }
.classroom-login input { width: 100%; box-sizing: border-box; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); color: var(--ink); padding: 14px; font: inherit; }
.classroom-login label { display: block; font-weight: 700; margin-bottom: 8px; }
.classroom-login button.text-link { font: inherit; font-size: 14px; color: var(--primary); border: 0; background: none; padding: 8px 0; cursor: pointer; }
.credential-controls { display: flex; flex-wrap: wrap; gap: 20px; }
.classroom-login .button { margin-block: 10px 20px; }
/* Permission-checked document previews. */
.document-card{min-width:0;overflow:hidden}.document-thumbnail{height:230px;display:flex;align-items:center;justify-content:center;margin:-2px 0 22px;border:1px solid #e4dcef;border-radius:15px;background:#f8f5fd;overflow:hidden;position:relative;text-decoration:none}.document-image img{display:block;width:100%;height:100%;object-fit:contain;padding:10px}.document-pdf iframe{width:100%;height:100%;border:0;background:white}.document-type-badge{position:absolute;top:10px;right:10px;padding:4px 8px;background:#fff;color:#aa4964;border-radius:7px;font-size:11px;font-weight:800;pointer-events:none}.document-file-icon{flex-direction:column;gap:8px;color:#8974ab}.document-file-icon svg{height:85px;width:75px}.document-file-icon strong{font-size:18px;letter-spacing:1px}.document-file-icon span{font-size:12px;color:#9b8bab}.document-icon-slides{color:#c18144;background:#fff8ef}.document-icon-sheet{color:#4b9276;background:#eff9f4}.document-icon-archive{color:#a1844b;background:#fffbef}.document-icon-code{color:#627ba4;background:#f1f6fd}.document-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:20px 0}.document-preview-heading h1{font-size:clamp(28px,4vw,44px);margin:8px 0}.document-full-image{border:1px solid #e3d9ee;border-radius:18px;background:#f8f6fc;padding:20px;text-align:center}.document-full-image img{display:block;max-width:100%;max-height:80dvh;width:auto;margin:auto;object-fit:contain}.document-full-pdf{width:100%;height:78dvh;min-height:450px;border:1px solid #dcd2e8;border-radius:14px;background:#f4f1f8}.document-card .actions{flex-wrap:wrap;gap:14px}@media(max-width:650px){.document-thumbnail{height:210px}.document-preview-heading{flex-direction:column;align-items:flex-start}.document-full-image{padding:10px}.document-full-pdf{min-height:400px;height:70dvh}}
.account-context{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:10px 3%;background:#f3eefb;border-top:1px solid #e8def2;color:#77648e;font-size:12px}.account-role{display:inline-block;padding:3px 9px;border-radius:20px;background:#e4daf4;color:#62458c;font-size:11px;font-weight:750}.account-context strong{color:#49355f}
.pdf-canvas-preview{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:6px;background:#eeebf2}.pdf-canvas-preview canvas,.pdf-reader canvas{display:block;background:white;box-shadow:0 2px 10px #342e4522}.pdf-canvas-preview canvas[hidden],.pdf-reader canvas[hidden]{display:none}.pdf-status{font-size:13px;color:#877597;text-align:center;padding:15px}.pdf-reader{border:1px solid #ded5e8;border-radius:14px;overflow:hidden}.pdf-reader-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:20px;padding:12px;background:#f6f2fb;font-size:13px}.pdf-reader-controls button{padding:8px 12px;border:1px solid #d9cce9;border-radius:8px;background:white;color:#6b528e;cursor:pointer}.pdf-reader-controls button:disabled{opacity:.4}.pdf-reader-paper{display:flex;align-items:flex-start;justify-content:center;min-height:450px;max-height:80dvh;overflow:auto;background:#efecf3;padding:10px}
