/* Portal inherits the academy's soft family palette. */
#main-panel-portal{background:#dcd8e2}.portal{max-width:1240px;margin:auto;padding-top:44px}.portal [hidden]{display:none!important}.portal button,.portal input,.portal select{font:inherit}.portal button,.portal a{touch-action:manipulation}.portal button:focus-visible,.portal a:focus-visible,.portal input:focus-visible,.portal select:focus-visible{outline:3px solid #84659e;outline-offset:4px}.portal-top,.portal-heading{display:flex;justify-content:space-between;align-items:center;gap:24px}.portal-top h1{font-size:clamp(34px,5vw,62px);margin:12px 0 20px;letter-spacing:-2px}.portal-top h1 em{color:#7e5c88;font-style:normal}.preview-chip,.demo-chip{display:inline-block;border:1px solid #b6a5c0;border-radius:30px;padding:10px 16px;background:#e7e0ec;color:#5d426d;font-size:11px;letter-spacing:1px;font-weight:800}.preview-chip{white-space:nowrap}.portal-disclosure{max-width:870px;font-size:13px;color:#635e70;line-height:1.7;margin-bottom:24px}.portal-tabs{display:flex;gap:6px;overflow-x:auto;padding:6px;background:#d0cad9;border:1px solid #c6bfd0;border-radius:16px;margin:20px 0 30px;scrollbar-width:thin}.portal-tabs button{border:0;flex:1;white-space:nowrap;background:transparent;border-radius:11px;padding:14px 17px;color:#5f566a;font-size:13px;font-weight:750;cursor:pointer}.portal-tabs button[aria-selected=true]{background:#574366;color:#f1eaf4;box-shadow:0 4px 12px #48345320}.portal h2{font-size:clamp(24px,3vw,38px);line-height:1.2;letter-spacing:-.7px}.portal h3{font-size:21px;line-height:1.4}.portal p{line-height:1.7;color:#635d6e}.portal .button{background:#5a456b;color:#f2edf5;border:1px solid #5a456b;border-radius:12px;font-size:14px;padding:12px 19px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:46px}.portal .outline{border:1px solid #b7a9c2;background:#e7e1ec;border-radius:12px;color:#594364;padding:11px 16px;font-size:13px;min-height:44px;cursor:pointer}.portal button:disabled{opacity:.65;cursor:default}.portal .textlink{background:none;border:0;color:#674772;padding:14px 0;font-weight:700;cursor:pointer}.portal-card{border:1px solid #c4bccf;background:#e5dfe9;border-radius:22px;padding:26px;min-width:0}.portal-profile{border:1px solid #b9adc6;border-radius:26px;background:linear-gradient(125deg,#d3c8dc,#e4dce7 65%,#ded6e1);display:grid;grid-template-columns:240px 1fr 150px;gap:25px;padding:28px;align-items:center;box-shadow:0 16px 36px #53415f0c}.rank-art{display:block;width:100%;aspect-ratio:1;background-size:100% 100%;background-repeat:no-repeat;border-radius:18px;background-color:#a39aaa}.rank-art.atlas{background-size:300% 200%}.profile-art{position:relative}.profile-year{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);background:#4d3c5e;color:#f0e9f5;border:1px solid #cbb487;padding:5px 10px;border-radius:6px;font-size:10px;letter-spacing:1.4px;white-space:nowrap}.profile-copy h2{margin:12px 0 15px;overflow-wrap:anywhere}.rank-pill{display:inline-block;background:#d6ccdf;border:1px solid var(--rank,#b7a4c6);padding:7px 12px;border-radius:30px;color:#443250;font-size:14px;font-weight:750}.rank-pill small{font-weight:400}.profile-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.profile-mini{border-left:1px solid #c2b3cb;padding-left:20px;display:grid;gap:12px}.profile-mini>span{font-size:10px;letter-spacing:1px;color:#72617c}.profile-mini strong{font-size:20px;color:#584065}.profile-mini small{line-height:1.8;color:#6c6273}.portal progress{width:100%;height:9px;display:block;border:0;border-radius:9px;overflow:hidden;background:#cbc1d4;accent-color:#876895}.portal progress::-webkit-progress-bar{background:#cbc1d4}.portal progress::-webkit-progress-value{background:#876895;border-radius:8px}.portal progress::-moz-progress-bar{background:#876895}.portal-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}.portal-metrics article{border:1px solid #c7bfd0;background:#e2dde7;border-radius:18px;padding:22px}.portal-metrics b{display:block;color:#5b436a;font-size:30px;margin-bottom:7px}.portal-metrics small{font-size:16px;font-weight:400;color:#85758e}.portal-metrics span{font-size:13px;color:#6b6075}.portal-two{display:grid;grid-template-columns:1.4fr 1fr;gap:20px}.mission-row{display:flex;align-items:center;gap:14px;border-top:1px solid #cdc3d5;padding:17px 0}.mission-row>span{color:#745286;font-weight:800}.mission-row>div{flex:1}.mission-row p{font-size:12px;margin:5px 0}.portal-card>small{font-size:12px;line-height:1.7;color:#736779}.academy-note{background:#d9cfdd}.academy-note h3{font-size:30px}.portal-heading{margin:24px 0}.portal-heading h2{margin:10px 0}.portal-heading>p{font-size:13px}.portal-subnote{font-size:13px;margin:20px 0}.avatar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.avatar-card{background:#e5dfea;border:1px solid #c3b9cd;border-radius:22px;overflow:hidden;box-shadow:0 7px 20px #523d6109}.avatar-card>.rank-art{border-radius:0}.avatar-card-body{padding:20px;border-top:3px solid var(--rank)}.avatar-card h3{margin:8px 0;color:#51405e;font-size:24px}.avatar-card p{font-size:12px;min-height:40px}.avatar-card .button,.avatar-card .outline{width:100%;margin-top:8px}.avatar-locked{display:block;margin-top:18px;color:#80718a;font-size:12px;text-align:center}.avatar-preview{max-width:540px;margin:auto;text-align:center}.avatar-preview .rank-art{max-width:460px;margin:auto}.avatar-preview p{font-size:13px}.portal-topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.portal-topic-grid .portal-card{display:flex;flex-direction:column;gap:12px}.portal-topic-grid h3,.portal-topic-grid p{margin:0}.portal-topic-grid p{font-size:13px;flex:1}.portal-topic-grid a{font-size:13px;color:#694a7c;text-align:center;margin-top:5px}.topic-code{font-size:12px;color:#9779a7;letter-spacing:1px}.arena-banner{display:flex;align-items:center;gap:20px;background:#d2c4dd;border:1px solid #b6a4c7;border-radius:20px;padding:23px}.arena-banner>span{font-size:44px;color:#92723b}.arena-banner>div{flex:1}.arena-banner h3,.arena-banner p{margin:0}.arena-banner p{font-size:13px;margin-top:8px}.challenge-groups details{margin-bottom:13px;background:#e5dfe9;border:1px solid #c6bacf;border-radius:16px;padding:19px}.challenge-groups summary{font-weight:750;color:#584464;cursor:pointer}.challenge-groups summary span{float:right;font-size:12px;font-weight:400;color:#796986}.challenge-list>div{display:flex;align-items:center;gap:12px;padding:17px 0;border-top:1px solid #d0c6d8}.challenge-list{margin-top:18px}.challenge-list>div>div{flex:1}.challenge-list b{font-size:14px}.challenge-list small{display:block;color:#807387;margin-top:5px;font-size:12px}.challenge-status{color:#458477;font-weight:800}.portal-question{max-width:820px;margin:auto}.portal-question h2{margin-top:36px;font-size:clamp(23px,3vw,33px)}.portal-question .quiz-topline{color:#735880;background:none}.portal-question progress{margin-top:16px}.portal-answers{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0}.portal-answers button{display:flex;align-items:center;gap:16px;text-align:left;border:2px solid #c3b2d1;border-radius:16px;background:#e9e3ed;color:#503c61;font-weight:750;font-size:20px;padding:20px;min-height:78px;cursor:pointer}.portal-answers button span{font-size:12px;padding:8px;background:#d8cce1;border-radius:8px}.portal-answers button:disabled{opacity:1}.portal-answers .is-correct{border-color:#4c927a;background:#d4e5dd}.portal-answers .is-wrong{border-color:#bf8e91;background:#ebdbdf}.portal-feedback{border-radius:16px;padding:22px;background:#e5d5de;animation:portal-rise .35s ease-out}.portal-feedback.is-correct{background:#d2e2d8}.portal-feedback b{font-size:21px;color:#4d6352}.portal-question>small{display:block;color:#7e6e88}.challenge-result{text-align:center}.result-score{font-size:76px;font-weight:800;color:#72538a}.result-score small{font-size:28px;color:#9d88a9}.celebration{font-size:38px;color:#b48a38;letter-spacing:12px;animation:portal-rise .5s ease-out}.challenge-result .profile-actions{justify-content:center}.promotion{max-width:290px;margin:25px auto}.promotion p{font-size:13px}.number-lab{max-width:800px;margin:auto}.lab-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.lab-controls input{width:85px;padding:12px;border:1px solid #b6a6c3;border-radius:10px;background:#ece5ef;color:#583f69}.place-value{display:grid;grid-template-columns:1fr 1fr;border:1px solid #c8b8d5;border-radius:18px;overflow:hidden;background:#ded5e6}.place-value>div{padding:22px;min-height:190px}.place-value>div+div{border-left:1px solid #bcabc9}.place-value b{font-size:12px;color:#80648d;letter-spacing:2px}.ten-rods,.one-cubes{display:flex;gap:7px;flex-wrap:wrap;margin-top:20px;align-items:flex-start}.ten-rods>span{display:flex;flex-direction:column;gap:1px}.ten-rods i,.one-cubes i{display:block;width:15px;height:15px;background:#9174a5;border:1px solid #725988;border-radius:2px}.one-cubes i{background:#bfa16c;border-color:#a18452}.place-value small{font-size:12px;color:#8a7895}.community-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:22px;text-align:center}.community-grid .rank-art{margin-bottom:18px}.community-grid .demo-chip{font-size:9px;padding:5px 10px}.privacy-card label{display:block;margin:18px 0;font-size:14px;color:#594766}.privacy-card input{accent-color:#745389;margin-right:7px}.portal-bottom{font-size:12px;text-align:center;margin-top:38px}.portal-bottom a{color:#6d4e7e;margin-left:10px}.portal-profile-form label{display:block;margin:20px 0 8px;font-weight:700;color:#624d71}.portal-profile-form input,.portal-profile-form select{display:block;width:100%;padding:13px;border-radius:12px;border:1px solid #b8a6c6;background:#e5dcea;font:inherit;color:#594166}.portal-profile-form p{font-size:14px;line-height:1.7}.portal-profile-form .button{margin-top:20px}@keyframes portal-rise{from{transform:translateY(9px);opacity:.6}to{transform:translateY(0);opacity:1}}
@media(min-width:1000px){header .primary-tabs button{padding-left:13px;padding-right:13px;font-size:12px}}
@media(max-width:1000px){.portal-profile{grid-template-columns:200px 1fr}.profile-mini{grid-column:1/-1;display:flex;align-items:center;border-left:0;border-top:1px solid #c2b3cb;padding:18px 0 0}.profile-mini small{margin-left:auto}.portal-topic-grid{grid-template-columns:1fr 1fr}.portal-two{grid-template-columns:1fr}.portal-tabs button{flex:0 0 auto}.portal-top{align-items:flex-start}.portal-top h1{letter-spacing:-1px}.avatar-grid{gap:14px}.avatar-card-body{padding:16px}}
@media(max-width:640px){.portal{padding:26px 18px}.portal-top,.portal-heading{display:block}.preview-chip{font-size:9px;padding:7px 10px;margin-bottom:7px}.portal-top h1{margin-bottom:13px}.portal-disclosure{font-size:12px}.portal-profile{grid-template-columns:1fr;padding:22px;gap:18px;text-align:center}.profile-art{width:min(230px,75%);margin:auto}.profile-mini{display:none}.profile-actions{justify-content:center}.profile-copy h2{font-size:28px}.profile-copy>p{font-size:13px}.profile-copy .eyebrow{justify-content:center}.portal-metrics{gap:8px}.portal-metrics article{padding:16px 11px}.portal-metrics b{font-size:26px}.portal-metrics span{font-size:11px}.portal-card{padding:20px}.mission-row{gap:9px}.mission-row b{font-size:13px}.mission-row .outline{padding:9px}.avatar-grid{grid-template-columns:1fr 1fr;gap:12px}.avatar-card-body{padding:12px}.avatar-card-body .eyebrow{font-size:8px;letter-spacing:.5px}.avatar-card h3{font-size:20px}.avatar-card p{font-size:11px;min-height:57px}.avatar-card .button,.avatar-card .outline{font-size:12px;padding:10px 8px}.avatar-locked{font-size:10px}.portal-topic-grid{grid-template-columns:1fr}.arena-banner{flex-wrap:wrap;padding:18px}.arena-banner>span{display:none}.arena-banner h3{font-size:20px}.challenge-groups details{padding:14px}.challenge-groups summary{font-size:13px}.challenge-groups summary span{font-size:10px;float:none;display:block;margin-top:8px}.challenge-list b{font-size:12px}.challenge-list .outline{font-size:12px;padding:9px}.portal-answers{grid-template-columns:1fr}.portal-answers button{font-size:19px;padding:15px;min-height:65px}.portal-question .quiz-topline{font-size:11px;gap:15px}.community-grid{grid-template-columns:1fr}.community-grid .rank-art{max-width:240px;margin:0 auto 18px}.portal-bottom a{display:block;margin:10px 0}.place-value>div{padding:16px}.portal-tabs{margin:18px 0 24px}.portal-heading>p{font-size:12px}}
@media(prefers-reduced-motion:reduce){.portal *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:1100px){body>header{flex-wrap:wrap;gap:16px}.primary-tabs{order:3;flex-basis:100%;overflow-x:auto;min-width:0}.primary-tabs button{flex:1}header #progressBtn{margin-left:auto}}
