/* A course folder is an editorial surface, not a frame around two unrelated cards. */
.course-lab .elective-heading[hidden]{display:none}
.course-lab .folder-body{overflow:hidden;position:relative}
.files>.folder{pointer-events:none}.files>.folder>.folder-tab,.files>.folder>.folder-body{pointer-events:auto}
.course-lab .lab-layout{display:block;margin:0;color:#f6f3eb}
.lab-topline{display:flex;justify-content:space-between;align-items:center;margin:17px 0 24px;font-size:8px;letter-spacing:.08em}
.lab-signal{display:flex;align-items:center;gap:9px}.lab-signal svg{width:40px;height:23px;fill:none;stroke:#e7d7b3;stroke-width:1.4}.lab-eyes{fill:#e7d7b3;stroke:none;transform-origin:40px 21px;animation:lab-blink 7s infinite}
.lab-main{display:grid;grid-template-columns:.86fr 1.3fr;gap:55px;align-items:start}
.lab-navigation h3{font-size:clamp(58px,5.4vw,78px);letter-spacing:-.055em;line-height:.96;font-weight:600;margin:0}.lab-dot{color:#dfc79f}
.lab-lead{font-size:14px;color:#e8d6cc;line-height:1.5;margin:15px 0 20px}
.lab-course-picks{display:grid;gap:0}.lab-course-picks button{display:flex;align-items:center;gap:15px;border:0;border-top:1px solid #f6f3eb40;background:none;padding:15px 0;color:#bb949a;text-align:left;width:100%;transition:color .25s,padding .25s;position:relative}
.lab-course-picks button:last-child{border-bottom:1px solid #f6f3eb40}.lab-course-picks button[aria-pressed=true]{color:#f6f3eb;padding-left:10px}.lab-course-picks button[aria-pressed=true]:before{content:'';position:absolute;left:-9px;top:50%;width:5px;height:5px;background:#dfc79f;border-radius:50%}
.lab-course-picks .lab-name{font-size:clamp(27px,2.7vw,41px);font-weight:600;line-height:1.02;letter-spacing:-.04em}.lab-number{font-size:9px;align-self:start;padding-top:4px}.lab-pick-arrow{font-size:28px;margin-left:auto;opacity:.35;transition:transform .25s,opacity .25s}.lab-course-picks button[aria-pressed=true] .lab-pick-arrow{opacity:1;transform:rotate(45deg)}
.lab-open{display:flex;justify-content:space-between;align-items:center;background:#e6d8bb;color:#292824;padding:16px 20px;font-size:13px;font-weight:600;margin-top:22px;max-width:235px;box-shadow:3px 4px 0 #28121960;transition:background .2s}.lab-open span{font-size:24px}.lab-open:hover{background:#f6f3eb}
.lab-content{min-width:0;padding-top:5px;position:relative}.lab-hand{display:block;font-size:28px;color:#eadac2;transform:rotate(3deg);text-align:right;margin:0 10px 30px}.lab-hand:after{content:'↙';font-family:'IBM Plex Sans',sans-serif;margin-left:12px;font-size:30px}
.lab-posters{position:relative;aspect-ratio:1.48;perspective:1100px;margin:0 6px 20px 0;isolation:isolate}
.lab-back-sheet{position:absolute;inset:0 4px 12px 0;background:#d6c5a2;transform:rotate(-7deg) translate(-9px,3px);border:1px solid #29282440;box-shadow:4px 7px 0 #26111830}.lab-back-sheet span{position:absolute;top:8px;left:12px;font:7px 'IBM Plex Mono',monospace;letter-spacing:.1em;color:#55482f}
.lab-material-set{position:absolute;inset:0}.lab-material-set[hidden]{display:none}
.lab-screen{position:absolute;margin:0;inset:10px 0 auto 0;background:#f6f3eb;padding:8px 8px 0;color:#292824;box-shadow:5px 7px 0 #26111850;border:1px solid #d6cfc1;transition:transform .55s cubic-bezier(.2,.8,.2,1),opacity .3s;transform-origin:50% 80%;backface-visibility:hidden}
.lab-screen img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}.lab-screen figcaption{font-size:7px;padding:7px 2px;letter-spacing:.06em}
.lab-screen.is-front{z-index:3;transform:rotate(3deg) rotateY(var(--paper-x,0deg)) rotateX(var(--paper-y,0deg));opacity:1}.lab-screen.is-back{z-index:2;transform:rotate(-3deg) translate(-9px,-3px);opacity:.85}.lab-posters:hover .lab-screen.is-back{transform:rotate(-8deg) translate(-17px,-14px)}
.lab-stamp{position:absolute;z-index:5;right:-10px;bottom:-2px;width:87px;height:87px;background:#e4d1a7;color:#542932;border:1px solid #292824;border-radius:50%;box-shadow:3px 4px 0 #28121950;transform:rotate(12deg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;pointer-events:none}.lab-stamp .mono{font-size:6px}.lab-stamp strong{font-size:29px;line-height:1}.lab-stamp>span:last-child{font-size:17px}
.lab-preview-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:7px;font-size:7px;color:#d1b6ac}.lab-preview-controls>div{display:flex;gap:5px}.lab-preview-controls button{border:1px solid #f6f3eb50;background:none;color:#f6f3eb;width:29px;height:27px;font:9px 'IBM Plex Mono',monospace}.lab-preview-controls button[aria-pressed=true]{background:#e6d8bb;color:#292824;border-color:#e6d8bb}
.lab-topic{margin:18px 0 10px;border-top:1px solid #f6f3eb35;padding-top:12px}.lab-topic>.mono{font-size:7px;color:#d1b6ac;letter-spacing:.06em}.lab-topic p{font-size:21px;line-height:1.25;margin:7px 0 0;max-width:440px;letter-spacing:-.02em;min-height:53px}.lab-material-link{font-size:11px;border-bottom:1px solid #f6f3eb80;padding-bottom:6px;display:inline-flex;gap:24px}.lab-material-link span{font-size:16px}
.lab-bottom{display:flex;gap:15px;align-items:center;border-top:1px solid #f6f3eb35;margin-top:27px;padding:15px 0 5px;font-size:10px;color:#edddcc}.lab-bottom i{font-style:normal;font-size:14px;color:#dfc79f}.lab-footnote{margin-left:auto;font-size:7px;letter-spacing:.06em}.course-lab .next{padding-top:12px}
.lab-course-picks button:focus-visible,.lab-preview-controls button:focus-visible,.lab-open:focus-visible,.lab-material-link:focus-visible{outline:2px solid #e6d8bb;outline-offset:5px}
@keyframes lab-blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.12)}}
@media(max-height:800px) and (min-width:761px){.lab-topline{margin:10px 0 12px}.lab-main{gap:45px;grid-template-columns:.8fr 1.2fr}.lab-navigation h3{font-size:44px}.lab-lead{font-size:12px;margin:10px 0}.lab-course-picks .lab-name{font-size:28px}.lab-course-picks button{padding:10px 0}.lab-open{margin-top:13px;padding:10px 16px}.lab-content{max-width:500px;justify-self:end;width:100%}.lab-hand{font-size:23px;margin-bottom:19px}.lab-posters{max-width:440px;margin-left:auto;aspect-ratio:1.4;margin-bottom:11px}.lab-topic{margin-top:11px}.lab-topic p{font-size:17px;min-height:42px}.lab-bottom{margin-top:14px;padding-top:10px}.lab-stamp{width:64px;height:64px;right:-3px}.lab-stamp strong{font-size:23px}.lab-stamp .mono{font-size:5px}.lab-stamp>span:last-child{font-size:13px}}
@media(max-width:1000px) and (min-width:761px){.lab-main{gap:30px}.lab-navigation h3{font-size:46px}.lab-course-picks .lab-name{font-size:30px}.lab-topic p{font-size:18px}.lab-footnote{display:none}}
@media(max-width:760px){.lab-topline{margin:15px 0 25px;font-size:7px}.lab-signal>span{display:none}.lab-main{display:block}.lab-navigation h3{font-size:49px}.lab-lead br{display:none}.lab-lead{font-size:13px;margin-bottom:19px}.lab-course-picks{grid-template-columns:1fr 1fr;gap:15px}.lab-course-picks button,.lab-course-picks button:last-child{align-items:start;padding:12px 0;border-bottom:1px solid #f6f3eb40}.lab-course-picks button[aria-pressed=true]{padding-left:0}.lab-course-picks button[aria-pressed=true]:before{left:0;top:auto;bottom:-3px}.lab-course-picks .lab-name{font-size:23px;line-height:1.05}.lab-number{display:none}.lab-pick-arrow{font-size:18px}.lab-open{padding:12px 17px;margin-top:17px;max-width:none}.lab-content{margin-top:24px;padding:0 3px}.lab-hand{font-size:25px;margin-bottom:28px}.lab-posters{margin-right:5px;aspect-ratio:1.4}.lab-stamp{width:66px;height:66px;bottom:-6px;right:-4px}.lab-stamp strong{font-size:24px}.lab-stamp .mono{font-size:5px}.lab-stamp>span:last-child{font-size:13px}.lab-topic p{font-size:20px;min-height:0}.lab-bottom{flex-wrap:wrap;gap:8px;font-size:8px;margin-top:24px}.lab-footnote{width:100%;margin:5px 0 0;font-size:7px}.course-lab .folder-body{padding-bottom:20px}.lab-screen figcaption{font-size:6px}.lab-preview-controls{font-size:6px}}
@media(prefers-reduced-motion:reduce){.lab-eyes{animation:none}.lab-screen,.lab-pick-arrow,.lab-course-picks button{transition:none}.lab-posters:hover .lab-screen.is-back{transform:rotate(-3deg) translate(-9px,-3px)}.lab-screen.is-front{transform:rotate(3deg)}}
.scene-paused .lab-eyes{animation:none}.scene-paused .lab-screen{transition:none}.scene-paused .lab-posters:hover .lab-screen.is-back{transform:rotate(-3deg) translate(-9px,-3px)}.scene-paused .lab-screen.is-front{transform:rotate(3deg)}
.lab-preview-controls .lab-enlarge{width:auto;height:auto;border:0;border-bottom:1px solid #f6f3eb60;padding:0 0 4px;background:none;color:#eadac2;font:9px 'IBM Plex Mono',monospace}
.lab-image-dialog{border:1px solid #292824;background:#f6f3eb;padding:15px;width:min(1180px,94vw);max-width:94vw;max-height:92vh;color:#292824}.lab-image-dialog::backdrop{background:#21171dd9}.lab-dialog-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px;font-size:8px}.lab-dialog-bar button{background:#292824;color:#f6f3eb;border:0;padding:10px 14px;font-size:12px}.lab-image-dialog img{display:block;width:100%;max-height:calc(92vh - 85px);object-fit:contain}
@media(min-width:761px){.files>.folder:not(.elective){transform:translateY(var(--folder-exit,0px))}}
.lab-dialog-bar>div{display:flex;gap:7px;flex-shrink:0}.lab-dialog-image{overflow:auto;max-height:calc(92vh - 90px)}.lab-image-dialog.is-zoomed img{width:1400px;max-width:none;max-height:none}.lab-dialog-bar .lab-zoom{background:#e6d8bb;color:#292824}
.grade-lab .resources[hidden]{display:none}.grade-lab .course-visual{background:none;border:0;box-shadow:none;transform:none;aspect-ratio:auto;overflow:visible;display:block}
.lab-grade-mark{display:flex;align-items:center;gap:19px;margin:-8px 0 17px;border-bottom:1px solid #f6f3eb40;padding-bottom:14px}.lab-grade-mark>span:first-child{font-size:clamp(96px,9vw,136px);line-height:.8;font-weight:600;letter-spacing:-.065em}.lab-grade-mark>.mono{font-size:10px;line-height:1.8;letter-spacing:.05em}.lab-grade-mark i{font-style:normal;margin-left:auto;font-size:58px;color:#dfc79f;transform:rotate(-12deg);transition:transform .6s}.grade-lab:hover .lab-grade-mark i{transform:rotate(32deg)}
.grade-lab .lab-navigation h3{font-size:clamp(44px,4.9vw,69px);margin:0;line-height:.98}.grade-lab .lab-open{margin-top:25px}.lab-week-slot{margin-top:18px}.lab-week-slot .file-week-link{margin:0;font-size:11px;color:#f6f3eb;border-color:#f6f3eb80}.grade-lab .lab-hand{margin-top:20px}.lab-bottom a:hover{text-decoration:underline;text-underline-offset:4px}
.grade-lab .lab-open.open-course{color:#292824}.grade-lab .lab-open.open-course span{color:inherit}
@media(max-height:800px) and (min-width:761px){.course-lab .folder-body{padding:20px 40px}.course-lab .lab-posters{max-width:350px;aspect-ratio:1.6}.course-lab .lab-hand{margin-bottom:12px}.course-lab .lab-content{padding-top:0}.course-lab .lab-topic{padding-top:8px;margin-top:9px}.course-lab .lab-topic p{min-height:26px}.course-lab .lab-bottom{margin-top:12px}.course-lab .next{padding-top:9px}}
@media(max-height:800px) and (min-width:761px){.lab-grade-mark{margin:0 0 14px;padding-bottom:10px}.lab-grade-mark>span:first-child{font-size:82px}.lab-grade-mark i{font-size:43px}.grade-lab .lab-navigation h3{font-size:44px}.grade-lab .lab-hand{margin-top:5px}.grade-lab .lab-open{margin-top:18px}.lab-week-slot{margin-top:12px}}
@media(max-width:760px){.lab-grade-mark{margin:0 0 17px}.lab-grade-mark>span:first-child{font-size:84px}.lab-grade-mark i{font-size:44px}.grade-lab .lab-navigation h3{font-size:44px}.grade-lab .lab-open{margin-top:18px}.grade-lab .lab-hand{margin-top:0}.grade-lab .lab-content{margin-top:30px}}
@media(prefers-reduced-motion:reduce){.lab-grade-mark i{transition:none}.grade-lab:hover .lab-grade-mark i{transform:rotate(-12deg)}}.scene-paused .lab-grade-mark i{transition:none;transform:rotate(-12deg)}
@media(max-width:760px){.lab-dialog-bar{flex-wrap:wrap}.lab-dialog-bar>.mono{font-size:7px}.lab-image-dialog.is-zoomed img{width:1000px}.lab-dialog-image{max-height:70vh}}

