@keyframes c-drift{to{transform:translate(6vmax,4vmax)scale(1.1)}}@keyframes c-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes c-pulse{50%{opacity:.4}}@keyframes c-ping{to{box-shadow:0 0 0 7px #0000}}@keyframes c-pop{40%{transform:scale(1.6)}}@keyframes c-ring{0%{stroke-dashoffset:264px}}@keyframes c-grow{0%{width:0}}@keyframes c-draw{0%{stroke-dashoffset:100px;opacity:1}16%{stroke-dashoffset:0}84%{stroke-dashoffset:0;opacity:1}94%{stroke-dashoffset:0;opacity:0}to{stroke-dashoffset:100px;opacity:0}}@keyframes c-bob{50%{transform:scale(1.08)}}@keyframes c-ball{0%{offset-distance:0%;opacity:0}3%{opacity:1}14%{offset-distance:100%;opacity:1}30%{opacity:1;offset-distance:100%}36%,to{opacity:0;offset-distance:100%}}@keyframes c-msg{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:none}}@keyframes c-dot{0%,60%,to{opacity:.45;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}@keyframes c-badge{0%{transform:scale(.4)}60%{transform:scale(1.25)}to{transform:scale(1)}}.campus{--panel:var(--c-panel);--panel-2:var(--c-panel2);--ink:var(--c-ink);--ink-2:var(--c-ink2);--mute:var(--c-muted);--ln:var(--c-line);--glass:var(--c-glass);--accent2:var(--c-accent2);--live:var(--c-live);--live-ink:var(--c-live-ink);--ok:var(--c-ok);--ok-ink:var(--c-ok-ink);--shadow:var(--c-shadow);--amb:var(--c-amb);--raised:var(--c-raised);--ring:var(--c-ring);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--fs-xs:12px;--fs-sm:13.5px;--fs-md:15px;--fs-lg:17px;--fs-xl:20px;--fs-2xl:26px;--fw-reg:400;--fw-med:500;--fw-semi:600;--fw-bold:700;--ease:cubic-bezier(.2, .7, .2, 1);--dur-1:.12s;--dur-2:.2s;--dur-3:.36s;--tap:44px;--header-h:68px;background:var(--c-bg);min-height:100dvh;color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.5;position:relative;overflow-x:clip}.campus h1,.campus h2,.campus h3{font-family:var(--f-display);font-weight:var(--fw-d);letter-spacing:-.02em;text-wrap:balance;margin:0;line-height:1.05}.campus p{margin:0}.campus ul,.campus ol{margin:0;padding:0;list-style:none}.campus button{font:inherit;color:inherit;cursor:pointer}.campus button:disabled{cursor:not-allowed}.campus a{text-decoration:none}.campus :focus-visible{outline:2px solid var(--ring);outline-offset:3px;border-radius:var(--rs)}.campus :focus:not(:focus-visible){outline:none}.campus .ic{stroke:currentColor;fill:none;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.campus .ic-s{vertical-align:-3px;width:16px;height:16px;display:inline-block}.campus .mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.campus .tabular{font-variant-numeric:tabular-nums}.campus .mut{color:var(--ink-2)}.campus .small{font-size:13px}.campus .strong{font-weight:600}.campus .center{text-align:center}.campus .h2{font-size:26px}.campus .skip{z-index:60;background:var(--panel);color:var(--ink);border-radius:var(--rp);border:1px solid var(--ln);padding:10px 16px;position:absolute;top:-60px;left:12px}.campus .skip:focus{top:12px}.campus .amb{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.campus .amb i{filter:blur(60px);width:62vmax;height:62vmax;opacity:var(--amb);will-change:transform;border-radius:50%;animation:22s ease-in-out infinite alternate c-drift;position:absolute}.campus .amb i:first-child{background:radial-gradient(circle, var(--c-brand), transparent 65%);top:-22vmax;left:-18vmax}.campus .amb i:nth-child(2){background:radial-gradient(circle, var(--accent), transparent 62%);opacity:calc(var(--amb) * .55);animation-delay:-9s;bottom:-26vmax;right:-22vmax}.campus .shell{z-index:1;max-width:1240px;padding:var(--sp-6) max(20px, env(safe-area-inset-left,0px)) 120px;margin:0 auto;position:relative}.campus .bar{max-width:1240px;padding:12px max(20px, env(safe-area-inset-left,0px));min-height:var(--header-h);grid-template-columns:minmax(0,auto) 1fr auto;align-items:center;gap:16px;margin:0 auto;display:grid}.campus .brand{font-family:var(--f-display);font-weight:var(--fw-d);letter-spacing:-.01em;align-items:center;gap:10px;min-width:0;font-size:16px;display:inline-flex}.campus .brand i{border-radius:var(--rm);background:linear-gradient(135deg, var(--h-a), var(--h-b));width:38px;height:38px;color:var(--h-ink);flex:none;place-items:center;font-size:14px;font-style:normal;display:grid}.campus .brand span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.campus .dock{border-radius:var(--rp);background:var(--glass);border:1px solid var(--ln);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);justify-self:center;gap:2px;padding:5px;display:flex;position:relative}.campus .dock a{z-index:1;border-radius:var(--rp);color:var(--ink-2);font-weight:var(--fw-med);transition:color var(--dur-2);align-items:center;gap:8px;padding:9px 14px;display:flex;position:relative}.campus .dock a:hover{color:var(--ink)}.campus .dock a.on{color:var(--accent-ink)}.campus .dock a.on .n,.campus .tabbar a.on .n{background:var(--accent-ink);color:var(--accent)}.campus .dock:not(.ready) a.on{background:var(--accent)}.campus .dock .ind{z-index:0;border-radius:var(--rp);background:var(--accent);opacity:0;width:0;transition:left .32s var(--ease), width .32s var(--ease), opacity .2s;position:absolute;top:5px;bottom:5px;left:0}.campus .n{background:var(--live);min-width:19px;height:19px;color:var(--live-ink);border-radius:99px;place-items:center;padding:0 6px;font-size:11px;font-weight:700;line-height:1;animation:.45s c-badge;display:inline-grid}.campus .acts{justify-content:flex-end;align-items:center;gap:8px;display:flex}.campus .demo-pill{cursor:pointer;letter-spacing:.08em;text-transform:uppercase;border-radius:var(--rp);border:1px dashed var(--ln);color:var(--ink-2);background:0 0;padding:5px 10px;font-family:inherit;font-size:11px;font-weight:700}.campus .ib{border-radius:var(--rav);border:1px solid var(--ln);background:var(--glass);width:42px;height:42px;transition:background var(--dur-1), border-color var(--dur-1), transform var(--dur-1);color:var(--ink);flex:none;place-items:center;display:inline-grid;position:relative}.campus .ib:hover:not(:disabled){background:var(--panel-2);border-color:color-mix(in srgb, var(--accent) 40%, var(--ln))}.campus .ib:active:not(:disabled){transform:scale(.94)}.campus .ib.sm{width:34px;height:34px}.campus .ib.sm:after{content:"";position:absolute;inset:-5px}.campus .ib .dot{background:var(--live);min-width:18px;height:18px;color:var(--live-ink);font-size:10.5px;font-weight:var(--fw-bold);text-align:center;box-shadow:0 0 0 2px var(--c-bg);font-variant-numeric:tabular-nums;border-radius:99px;padding:0 5px;line-height:18px;animation:.45s c-badge;position:absolute;top:-4px;right:-4px}.campus .avlink{border-radius:var(--rav);transition:transform var(--dur-1);background:0 0;border:0;padding:0;display:inline-flex}.campus .avlink:active{transform:scale(.94)}.campus .avlink[aria-current=page] .av{box-shadow:0 0 0 3px var(--accent)}.campus .view{animation:c-rise .5s var(--ease) both;outline:0}.campus .av{--s:36px;width:var(--s);height:var(--s);border-radius:var(--rav);font-size:calc(var(--s) * .34);background:var(--panel-2);color:var(--ink);border:2px solid var(--c-bg);flex:none;place-items:center;font-weight:600;line-height:1;display:inline-grid;position:relative}.campus .av.a{background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 55%, var(--accent2)));color:var(--accent-ink)}.campus .av.on:after{content:"";width:max(9px, calc(var(--s) * .27));height:max(9px, calc(var(--s) * .27));background:var(--ok);border:2px solid var(--c-bg);border-radius:50%;position:absolute;bottom:-2px;right:-2px}.campus .av-xl{border-width:3px}.campus .mem{display:flex}.campus .mem .av{margin-left:-10px}.campus .mem .av:first-child{margin-left:0}.campus .bento{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;display:grid}.campus .s4{grid-column:span 4}.campus .s5{grid-column:span 5}.campus .s6{grid-column:span 6}.campus .s7{grid-column:span 7}.campus .s8{grid-column:span 8}.campus .s12{grid-column:span 12}.campus .col{flex-direction:column;gap:16px;min-width:0;display:flex}.campus .tile{border-radius:var(--rb);background:var(--panel);border:1px solid var(--ln);isolation:isolate;min-width:0;transition:transform var(--dur-3) var(--ease), border-color var(--dur-2), box-shadow var(--dur-2);animation:c-rise .5s var(--ease) both;padding:22px;position:relative;overflow:hidden}.campus .tile:before{content:"";z-index:-1;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%), color-mix(in srgb, var(--accent) 10%, transparent), transparent 60%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.campus .tile:hover:before{opacity:1}.campus .tile.is-link:hover,.campus .tile.flip:hover{border-color:color-mix(in srgb, var(--accent) 38%, var(--ln))}.campus .tile.is-link:hover{box-shadow:var(--e2);transform:translateY(-2px)}.campus .lbl{letter-spacing:.09em;text-transform:uppercase;color:var(--mute);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.campus .lbl-between{justify-content:space-between}.campus .lbl-end{justify-content:flex-end}.campus .lbl-pad{padding:0 4px}.campus .big{font-family:var(--f-display);font-weight:var(--fw-d);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:56px;line-height:.95}.campus .unit{color:var(--ink-2);font-size:22px;font-family:var(--f-body);letter-spacing:0;font-weight:400}.campus .page-head{gap:var(--sp-2);margin-bottom:var(--sp-6);display:grid}.campus .page-head>p{max-width:62ch}.campus .page-head h1{font-size:clamp(34px,5vw,48px)}.campus .page-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.campus .section-h{margin:var(--sp-10) 0 var(--sp-4)}.campus .section-h:first-of-type{margin-top:var(--sp-6)}.campus .empty{justify-items:center;gap:var(--sp-3);text-align:center;padding:var(--sp-12) var(--sp-6);color:var(--ink-2);display:grid}.campus .empty .ic{width:28px;height:28px}.campus .empty-ic{border-radius:var(--rav);background:color-mix(in srgb, var(--accent) 14%, var(--panel-2));width:64px;height:64px;color:var(--ink);margin-bottom:var(--sp-1);place-items:center;display:grid}.campus .empty-body{max-width:44ch}.campus .empty-act{margin-top:var(--sp-2);justify-content:center}.campus .btn{border-radius:var(--rp);min-height:var(--tap);font-weight:var(--fw-semi);background:var(--accent);color:var(--accent-ink);transition:transform var(--dur-2) var(--ease), box-shadow var(--dur-2), background var(--dur-2), opacity var(--dur-2);text-align:center;border:0;justify-content:center;align-items:center;gap:8px;padding:12px 22px;display:inline-flex;position:relative}.campus .btn:hover:not(:disabled):not(.is-disabled){box-shadow:0 8px 22px color-mix(in srgb, var(--accent) 38%, transparent);transform:translateY(-1px)}.campus .btn:active:not(:disabled){transform:scale(.97)}.campus .btn:disabled,.campus .btn.is-disabled{opacity:.55;box-shadow:none}.campus .btn.ghost{background:var(--glass);color:var(--ink);border:1px solid var(--ln)}.campus .btn.ghost:hover:not(:disabled){box-shadow:none;background:var(--panel-2)}.campus .btn.ok{background:var(--ok);color:var(--ok-ink)}.campus .btn.compact{min-height:38px;padding:8px 16px;font-size:14px}.campus .btn.compact:after{content:"";position:absolute;inset:-3px 0}.campus .chip{border:1px solid var(--ln);background:var(--glass);border-radius:var(--rp);min-height:36px;color:var(--ink-2);transition:background var(--dur-1), color var(--dur-1), border-color var(--dur-1);align-items:center;gap:6px;padding:7px 16px;font-size:14px;display:inline-flex}.campus .chip:hover:not(.on){color:var(--ink);background:var(--panel-2)}.campus .chip.on{background:var(--ink);color:var(--c-bg);border-color:var(--ink)}.campus .pill{border-radius:var(--rp);background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--ink);align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.campus .pill-a{background:var(--accent);color:var(--accent-ink)}.campus .back-link{color:inherit;opacity:.85;align-items:center;gap:6px;margin-bottom:10px;font-size:14px;display:inline-flex}.campus .back-link:hover{opacity:1;text-decoration:underline}.campus .hero{background:linear-gradient(135deg, var(--h-a), var(--h-b));color:var(--h-ink);border-color:color-mix(in srgb, var(--h-ink) 14%, transparent);flex-direction:column;justify-content:space-between;gap:24px;min-height:360px;display:flex}.campus .hero .play-wrap{z-index:-1;opacity:.95;pointer-events:none;width:58%;min-width:340px;position:absolute;top:-10px;right:-60px;-webkit-mask-image:linear-gradient(270deg,#000 28%,#0000 78%);mask-image:linear-gradient(270deg,#000 28%,#0000 78%)}.campus .hero .play-wrap .play{width:100%;height:auto;display:block}.campus .hero .mut,.campus .hero .lbl{color:var(--h-ink2)}.campus .hero-title{max-width:13ch;margin-bottom:14px;font-size:clamp(34px,5vw,60px)}.campus .course-title,.campus .profile-name{max-width:18ch;font-size:clamp(30px,4.4vw,52px)}.campus .hero-lead{max-width:46ch;margin-bottom:16px;font-size:16px}.campus .hero .row,.campus .row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.campus .hero .btn{background:var(--h-btn);color:var(--h-btn-ink)}.campus .hero .pring .pr{stroke:var(--h-accent)}.campus .hero .pring .tr{stroke:color-mix(in srgb, var(--h-ink) 22%, transparent)}.campus .hero .pring span{color:var(--h-ink)}.campus .hero-lesson{flex:200px;min-width:0}.campus .hero .pill{background:color-mix(in srgb, var(--h-ink) 16%, transparent);color:var(--h-ink)}.campus .hero-compact{gap:20px;min-height:260px}.campus .hero-photo{z-index:-1;pointer-events:none;width:66%;position:absolute;top:0;bottom:0;right:0;-webkit-mask-image:linear-gradient(270deg,#000 38%,#0000 98%);mask-image:linear-gradient(270deg,#000 38%,#0000 98%)}.campus .hero-photo .cv-photo{background:0 0}.campus .hero{min-height:400px}.campus .pass{background:radial-gradient(520px 240px at 100% 0%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%), var(--panel);border-color:color-mix(in srgb, var(--accent) 34%, var(--ln));grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:center;gap:28px;padding:28px;display:grid}.campus .pass-title{max-width:20ch;margin:4px 0 10px;font-size:clamp(24px,3.2vw,38px);line-height:1.05}.campus .pass-body{color:var(--mut);max-width:56ch;margin:0 0 16px}.campus .pass-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.campus .pass-stats li{border-radius:var(--rm);background:color-mix(in srgb, var(--accent) 9%, transparent);border:1px solid color-mix(in srgb, var(--accent) 24%, var(--ln));text-align:center;gap:4px;padding:14px 12px;display:grid}.campus .pass-stats strong{font-family:var(--f-display);color:var(--accent);font-variant-numeric:tabular-nums;font-size:clamp(26px,3vw,40px);line-height:1}.campus .pass-stats span{color:var(--mut);font-size:12px}.campus .comm-banner{isolation:isolate;border-radius:var(--rb);border:1px solid color-mix(in srgb, var(--accent) 30%, var(--ln));color:#fff;background:#0c0b0a;flex-direction:column;justify-content:flex-end;gap:6px;min-height:220px;padding:28px;display:flex;position:relative;overflow:hidden}.campus .comm-banner-art{z-index:-1;position:absolute;inset:0}.campus .comm-banner-art img{object-fit:cover;object-position:60% 50%;width:100%;height:100%;position:absolute;inset:0}.campus .comm-banner:after{content:"";z-index:-1;background:linear-gradient(90deg,#0a0908eb 8%,#0a090899 48%,#0a09081a 100%);position:absolute;inset:0}.campus .comm-banner .lbl{color:var(--accent)}.campus .comm-banner h1{color:#fff;max-width:20ch;margin:0;font-size:clamp(26px,3.6vw,44px);line-height:1.04}.campus .comm-banner p{color:#ffffffd1;max-width:52ch;margin:6px 0 0}.campus .comm-banner.no-photo{background:linear-gradient(135deg, var(--h-a), var(--h-b));color:var(--h-ink);border-color:color-mix(in srgb, var(--h-ink) 14%, transparent)}.campus .comm-banner.no-photo:after{display:none}.campus .comm-banner.no-photo .lbl{color:var(--h-ink2)}.campus .comm-banner.no-photo h1{color:var(--h-ink)}.campus .comm-banner.no-photo p{color:var(--h-ink2)}@media (max-width:760px){.campus .pass{grid-template-columns:1fr;padding:22px}.campus .hero-photo{opacity:.5;width:100%}.campus .comm-banner{min-height:190px;padding:20px}}.campus .hero-top{flex-direction:column;align-items:flex-start;display:flex}.campus .facts{flex-wrap:wrap;gap:8px 18px;font-size:14px;display:flex}.campus .facts li{align-items:center;gap:8px;display:inline-flex}.campus .profile-head{flex-wrap:wrap;align-items:center;gap:22px;display:flex}.campus .profile-head .av{border-color:var(--h-b)}.campus .hero .status{color:var(--h-ink)}.campus .lbl+.post-body{margin-top:10px}.campus .pring{--p:0;flex:none;width:64px;height:64px;position:relative}.campus .pring svg{width:100%;height:100%;transform:rotate(-90deg)}.campus .pring circle{fill:none;stroke-width:8px;stroke-linecap:round}.campus .pring .tr{stroke:color-mix(in srgb, var(--ink) 16%, transparent)}.campus .pring .pr{stroke:var(--accent);stroke-dasharray:264;stroke-dashoffset:calc(264 - 264 * var(--p) / 100);animation:1.2s cubic-bezier(.3,.7,.2,1) both c-ring}.campus .pring span{font-family:var(--f-mono);place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.campus .pl{fill:none;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100px;animation:9s ease-in-out infinite c-draw;animation-delay:var(--d,0s)}.campus .pp{transform-box:fill-box;transform-origin:50%;animation:3s ease-in-out infinite c-bob}.campus .ball{offset-path:path("M290 232 L246 160");opacity:0;animation:9s ease-in-out 3.6s infinite c-ball}.campus .streak-tile{flex-direction:column;display:flex}.campus .streak-n{margin-top:14px}.campus .streak-hint{margin-top:var(--sp-3);max-width:28ch}.campus .week{gap:8px;margin-top:auto;padding-top:22px;display:flex}.campus .week li{text-align:center;color:var(--mute);flex:1;font-size:11px}.campus .week b{border-radius:var(--rs);background:var(--panel-2);height:40px;margin-bottom:6px;transition:background .3s;display:block}.campus .week .d b{background:linear-gradient(180deg, var(--accent), color-mix(in srgb, var(--accent) 60%, #000))}.campus .week .t b{border:2px dashed var(--accent);background:0 0;animation:1.8s infinite c-pulse}.campus .livedot{background:var(--live);width:9px;height:9px;box-shadow:0 0 0 0 color-mix(in srgb, var(--live) 60%, transparent);border-radius:50%;flex:none;animation:1.6s infinite c-ping;display:inline-block}.campus .cd{font-family:var(--f-mono);letter-spacing:-.02em;font-weight:500;line-height:1}.campus .cd-m{margin:14px 0 10px;font-size:38px;display:block}.campus .cd-s{margin-top:4px;font-size:22px;display:block}.campus .live-title{margin-bottom:4px;font-weight:600;line-height:1.25;display:block}.campus .live-title:hover{text-decoration:underline}.campus .live-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;display:flex}.campus .live-tile{flex-direction:column;display:flex}.campus .live-tile .live-foot{margin-top:auto;padding-top:16px}.campus .live-tile .cd-m{font-size:46px}.campus .level-row{align-items:baseline;gap:10px;margin-top:12px;display:flex}.campus .level-hint{margin-top:14px;font-size:14px}.campus .bar2{background:var(--panel-2);border-radius:99px;height:8px;margin-top:14px;overflow:hidden}.campus .bar2 i{background:linear-gradient(90deg, var(--accent), var(--accent2));border-radius:99px;height:100%;transition:width 1.2s cubic-bezier(.3,.7,.2,1);animation:1.2s cubic-bezier(.3,.7,.2,1) c-grow;display:block}.campus .active-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px 24px;margin-top:14px;display:grid}.campus .active-list li{align-items:center;gap:12px;display:flex}.campus .active-list li>div{flex:1;min-width:0}.campus .small-name{font-size:14px}.campus .flip{perspective:900px;cursor:pointer;text-align:left;min-height:210px;color:inherit;background:0 0;border:0;padding:0;display:block;overflow:visible}.campus .flip:before{display:none}.campus .flip:hover{border-color:#0000}.campus .flip .in{transform-style:preserve-3d;transition:transform .8s cubic-bezier(.3,1.2,.4,1);display:block;position:absolute;inset:0}.campus .flip:hover .in,.campus .flip.f .in,.campus .flip:focus-visible .in,.campus .flip.f:hover .in{transform:rotateY(180deg)}.campus .flip .fc,.campus .flip .bc{border-radius:var(--rb);backface-visibility:hidden;border:1px solid var(--ln);flex-direction:column;justify-content:space-between;gap:8px;padding:22px;display:flex;position:absolute;inset:0}.campus .flip .fc{background:linear-gradient(160deg, var(--panel-2), var(--panel))}.campus .flip .bc{background:linear-gradient(160deg, var(--h-a), var(--h-b));color:var(--h-ink);transform:rotateY(180deg)}.campus .flip .w{font-family:var(--f-display);font-weight:var(--fw-d);letter-spacing:-.03em;overflow-wrap:anywhere;font-size:clamp(30px,3.2vw,44px);line-height:1}.campus .flip .lbl-b{letter-spacing:.09em;text-transform:uppercase;opacity:.85;font-size:12px;font-weight:600}.campus .flip .meaning{font-size:16px;font-weight:500;line-height:1.3}.campus .flip .example{opacity:.9;font-size:14px;font-style:italic}.campus .flip.s4{animation:.6s cubic-bezier(.2,.7,.2,1) both c-rise}.campus .railh{margin:var(--sp-10) 0 var(--sp-4);justify-content:space-between;align-items:flex-end;gap:var(--sp-3);display:flex}.campus .railh.tight{margin-top:var(--sp-10)}.campus .railh h2{font-size:clamp(24px,3vw,30px)}.campus .rail-btns{gap:8px;display:flex}.campus .rail{scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;gap:16px;margin:-8px -6px 0;padding:14px 6px 18px;scroll-padding-inline:6px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 10px calc(100% - 36px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 10px calc(100% - 36px),#0000 100%)}.campus .rail::-webkit-scrollbar{display:none}.campus .rail-item{scroll-snap-align:start;flex:none;width:236px}.campus .pgrid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.campus .poster{aspect-ratio:3/4;border-radius:var(--rb);color:#fff;isolation:isolate;border:1px solid var(--ln);width:100%;transition:transform var(--dur-3) var(--ease), box-shadow var(--dur-3);background:var(--panel);display:block;position:relative;overflow:hidden}.campus .poster:hover{transform:translateY(-6px);box-shadow:0 24px 50px #00000059}.campus .poster:focus-visible{outline-offset:4px;border-radius:var(--rb)}.campus .poster h3{font-size:21px;font-weight:var(--fw-d);line-height:1.08}.campus .poster-meta{opacity:.92;margin-top:6px;font-size:12.5px}.campus .poster .pb{background:#ffffff4d;border-radius:9px;height:4px;margin-top:12px;overflow:hidden}.campus .poster .pb i{background:#fff;border-radius:9px;height:100%;animation:1s both c-grow;display:block}.campus .poster .lock{border-radius:var(--rp);background:#0000009e;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex;position:absolute;top:14px;left:14px}.campus .poster .lock.done{background:#0000009e}.campus .progress-row{align-items:center;gap:16px;margin-top:14px;display:flex}.campus .lesson-list{flex-direction:column;gap:2px;margin-top:12px;display:flex}.campus .les{border-radius:var(--rm);text-align:left;width:100%;color:inherit;background:0 0;border:0;align-items:center;gap:14px;padding:10px 8px;transition:background .2s,transform .2s;display:flex;position:relative}.campus a.les:hover{background:var(--panel-2);transform:translate(4px)}.campus .les.on{background:var(--panel-2)}.campus .les.is-disabled{opacity:.6}.campus .les-tx{flex-direction:column;flex:1;min-width:0;display:flex}.campus .les-title{font-weight:500}.campus .tl{flex-direction:column;gap:2px;margin-top:12px;display:flex;position:relative}.campus .tl:before{content:"";background:var(--ln);width:2px;position:absolute;top:20px;bottom:20px;left:19px}.campus .chk{border:2px solid var(--ln);background:var(--panel);color:#0000;z-index:1;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;margin:0 7px;transition:all .35s;display:grid}.campus .les.on .chk{border-color:var(--accent);box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 22%, transparent)}.campus .chk.d{background:var(--ok);border-color:var(--ok);color:var(--ok-ink)}.campus .chk .ic{stroke-width:3px;width:13px;height:13px}.campus .lesson-main{gap:20px}.campus .lesson-h1{margin-top:4px;font-size:clamp(28px,4vw,44px)}.campus .player{aspect-ratio:16/9;border-radius:var(--rb);background:linear-gradient(135deg, var(--h-a), var(--h-b));color:var(--h-ink);isolation:isolate;box-shadow:0 40px 90px -20px color-mix(in srgb, var(--accent) 40%, transparent);border:1px solid color-mix(in srgb, var(--h-ink) 14%, transparent);place-items:center;display:grid;position:relative;overflow:hidden}.campus .player .play{z-index:-1;opacity:.9;width:100%;height:100%;position:absolute;inset:0}.campus .bigplay{background:var(--h-btn);width:96px;height:96px;color:var(--h-btn-ink);border:0;border-radius:50%;place-items:center;transition:transform .3s,opacity .3s;display:grid}.campus .bigplay:hover{transform:scale(1.08)}.campus .bigplay .ic{fill:currentColor;width:38px;height:38px}.campus .player.playing .bigplay{opacity:0}.campus .player.playing:hover .bigplay,.campus .player.playing .bigplay:focus-visible{opacity:1}.campus .cap{text-align:center;pointer-events:none;padding:0 24px;position:absolute;bottom:64px;left:0;right:0}.campus .cap span{color:#fff;border-radius:var(--rs);background:#000000b8;padding:7px 14px;font-size:16px;display:inline-block}.campus .ctrl{color:#fff;background:linear-gradient(#0000,#000c);align-items:center;gap:12px;padding:22px 16px 10px;font-size:12px;display:flex;position:absolute;bottom:0;left:0;right:0}.campus .ctrl-btn{color:#fff;border-radius:var(--rs);background:0 0;border:0;place-items:center;min-width:34px;height:34px;font-size:12px;display:inline-grid}.campus .ctrl-btn:hover{background:#ffffff29}.campus .ctrl-btn.on{background:#ffffff42}.campus .ctrl-btn .ic{fill:none}.campus .track{cursor:pointer;background:#ffffff57;border-radius:99px;flex:1;height:5px;margin:0 4px;position:relative}.campus .track:before{content:"";position:absolute;inset:-14px 0}.campus .track i{background:#fff;border-radius:99px;position:absolute;top:0;bottom:0;left:0}.campus .chdot{background:#000000b3;border:2px solid #fff;border-radius:50%;width:11px;height:11px;transition:background .3s,transform .3s;position:absolute;top:50%;transform:translate(-50%,-50%)}.campus .chdot.hit{background:var(--ok);transform:translate(-50%,-50%)scale(1.15)}.campus .track:focus-visible{outline-color:#fff}.campus .track-tile{gap:12px;display:grid}.campus .track-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.campus .meter{background:var(--panel-2);border-radius:99px;height:10px;position:relative;overflow:visible}.campus .meter i{background:linear-gradient(90deg, var(--accent), var(--accent2));border-radius:99px;transition:width .3s;position:absolute;top:0;bottom:0;left:0}.campus .meter-mark{background:var(--ink);opacity:.7;border-radius:2px;width:3px;position:absolute;top:-5px;bottom:-5px}.campus .chapters{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.campus .chapter{text-align:left;border:1px solid var(--ln);background:var(--glass);border-radius:var(--rm);width:100%;color:var(--ink-2);align-items:center;gap:10px;min-height:48px;padding:10px 12px;transition:all .2s;display:flex}.campus .chapter:hover{color:var(--ink);border-color:var(--accent)}.campus .cdot{border:2px solid var(--ln);color:#0000;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;transition:all .35s;display:grid}.campus .cdot .ic{stroke-width:3px;width:12px;height:12px}.campus .chapter.hit .cdot{background:var(--ok);border-color:var(--ok);color:var(--ok-ink)}.campus .chapter.hit{color:var(--ink)}.campus .ch-tx{flex-direction:column;min-width:0;font-size:14px;line-height:1.25;display:flex}.campus .tabs{margin-bottom:var(--sp-4);border-bottom:1px solid var(--ln);scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.campus .tabs .chip{border-radius:var(--rs) var(--rs) 0 0;min-height:var(--tap);font-weight:var(--fw-med);white-space:nowrap;background:0 0;border:0;padding:10px 14px;box-shadow:inset 0 -2px #0000}.campus .tabs .chip.on{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent);background:0 0;border:0}.campus .tabs .chip:hover:not(.on){background:var(--c-hover)}.campus .lesson-note{max-width:62ch;font-size:17px;line-height:1.55}.campus .res-list{flex-direction:column;gap:10px;display:flex}.campus .res-list li{border:1px solid var(--ln);border-radius:var(--rm);background:var(--glass);align-items:center;gap:12px;padding:10px 12px;display:flex}.campus .lesson-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.campus .cert-card{align-items:flex-start;gap:14px;display:flex}.campus .cert-ic{border-radius:var(--rav);background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 55%, var(--accent2)));width:50px;height:50px;color:var(--accent-ink);flex:none;place-items:center;display:grid}.campus .cert-card.is-pending .cert-ic{background:var(--panel-2);color:var(--ink-2)}.campus .cert-main{gap:6px;min-width:0;display:grid}.campus .cert-code{letter-spacing:.06em;border-radius:var(--rs);background:var(--panel-2);overflow-wrap:anywhere;width:fit-content;max-width:100%;padding:6px 10px;font-size:15px}.campus .cert-actions{flex-wrap:wrap;gap:8px;display:flex}.campus .stories{scrollbar-width:none;overscroll-behavior-x:contain;gap:14px;padding:4px 2px 8px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),#0000)}.campus .stories::-webkit-scrollbar{display:none}.campus .st{min-width:78px;max-width:86px;color:var(--ink-2);text-align:center;background:0 0;border:0;flex-direction:column;align-items:center;gap:8px;font-size:12px;line-height:1.2;display:flex}.campus .st i{border-radius:var(--rav);background:conic-gradient(var(--accent), var(--accent2), var(--c-brand), var(--accent));place-items:center;width:68px;height:68px;padding:3px;transition:transform .3s;display:grid;position:relative}.campus .st:hover i{transform:rotate(12deg)scale(1.06)}.campus .st i b{border-radius:var(--rav);background:var(--panel);border:3px solid var(--c-bg);width:100%;height:100%;color:var(--ink);place-items:center;display:grid}.campus .st i b .ic{width:22px;height:22px}.campus .st.on{color:var(--ink);font-weight:600}.campus .st.on i{box-shadow:0 0 0 3px var(--c-bg), 0 0 0 5px var(--accent)}.campus .st.locked i{background:var(--ln)}.campus .st.locked i b{color:var(--ink-2)}.campus .lockbadge{background:var(--ink);width:24px;height:24px;color:var(--c-bg);border:2px solid var(--c-bg);border-radius:50%;place-items:center;font-style:normal;display:grid;position:absolute;bottom:-2px;right:-2px}.campus .lockbadge .ic{stroke-width:2.4px;width:12px;height:12px}.campus .upsell{border-color:color-mix(in srgb, var(--accent) 50%, var(--ln));flex-wrap:wrap;align-items:center;gap:16px;display:flex}.campus .upsell-ic{border-radius:var(--rav);background:var(--panel-2);width:46px;height:46px;color:var(--ink);flex:none;place-items:center;display:grid}.campus .upsell-ic.big{width:72px;height:72px}.campus .upsell-ic.big .ic{width:30px;height:30px}.campus .upsell-tx{flex:1;min-width:180px}.campus .upsell-act{align-items:center;gap:8px;display:flex}.campus .toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.campus .sort{align-items:center;gap:8px;display:inline-flex}.campus .toolbar select,.campus .composer-tools select,.campus .inline-field select{background:var(--panel-2);color:var(--ink);border:1px solid var(--ln);border-radius:var(--rp);min-height:38px;font:inherit;padding:8px 12px;font-size:14px}.campus .side{padding-top:70px}.campus .lesson-side{top:calc(var(--header-h) + var(--sp-4));align-self:start;position:sticky}.campus .space-list{flex-direction:column;gap:4px;margin-top:12px;display:flex}.campus .space-row{text-align:left;border-radius:var(--rm);width:100%;color:inherit;background:0 0;border:0;align-items:center;gap:12px;padding:8px;transition:background .2s;display:flex}.campus .space-row:hover,.campus .space-row.on{background:var(--panel-2)}.campus .space-ic{border-radius:var(--rs);background:var(--panel-2);flex:none;place-items:center;width:38px;height:38px;display:grid}.campus .space-row.on .space-ic,.campus .space-row:hover .space-ic{background:var(--accent);color:var(--accent-ink)}.campus .space-tx{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.campus .plan-tag{border-radius:var(--rp);border:1px solid var(--ln);color:var(--ink-2);white-space:nowrap;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.campus .rules{margin-top:10px}.campus .composer{align-items:center;gap:12px;padding:14px 16px;display:flex}.campus .composer-open{text-align:left;background:var(--panel-2);color:var(--ink-2);font:inherit;border-radius:var(--rp);border:0;flex:1;min-height:46px;padding:13px 18px}.campus .composer-open:hover{color:var(--ink)}.campus .composer-full{gap:14px;padding:16px;animation:.35s both c-rise;display:grid}.campus .composer-top{align-items:center;gap:12px;display:flex}.campus .kinds{scrollbar-width:none;gap:6px;padding:2px;display:flex;overflow-x:auto}.campus .kinds .chip{white-space:nowrap}.campus .composer-fields{gap:10px;display:grid}.campus .field{border:1px solid var(--ln);background:var(--panel-2);width:100%;color:var(--ink);font:inherit;border-radius:var(--rm);resize:vertical;outline:0;min-height:46px;padding:12px 14px}.campus .field:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 22%, transparent)}.campus .field::placeholder{color:var(--mute)}.campus .poll-options{justify-items:start;gap:8px;display:grid}.campus .poll-options .field{max-width:520px}.campus .inline-field{align-items:center;gap:10px;display:inline-flex}.campus .composer-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.campus .tools-left,.campus .tools-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.campus .tool{border:1px solid var(--ln);background:var(--glass);border-radius:var(--rp);min-height:38px;color:var(--ink-2);align-items:center;gap:6px;padding:7px 12px;font-size:13px;display:inline-flex}.campus .tool:hover:not(:disabled){color:var(--ink);border-color:var(--accent)}.campus .tool:disabled{opacity:.5}.campus .emoji-wrap{position:relative}.campus .emoji-pop{z-index:30;box-shadow:var(--shadow);background:var(--panel);border-radius:var(--rm);grid-template-columns:repeat(4,1fr);gap:4px;padding:8px;display:grid;position:absolute;bottom:48px;left:0}.campus .emoji-pop button{border-radius:var(--rs);background:0 0;border:0;min-width:40px;min-height:40px;padding:6px;font-size:22px}.campus .emoji-pop button:hover{background:var(--panel-2)}.campus .space-select{max-width:200px}.campus .attach-list{flex-wrap:wrap;gap:8px;display:flex}.campus .attach{border-radius:var(--rm);background:var(--panel-2);border:1px solid var(--ln);align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:inline-flex}.campus .attach .x{color:var(--ink-2);background:0 0;border:0;border-radius:50%;place-items:center;padding:2px;display:inline-grid}.campus .attach-photo{border-left:3px solid var(--accent)}.campus .attach-file{border-left:3px solid var(--accent2)}.campus .attach-gif{border-left:3px solid var(--ok)}.campus .attach-img{border-radius:var(--rm);border:1px solid var(--ln);background:var(--panel-2);max-width:520px;margin:10px 0 0;overflow:hidden}.campus .attach-img img{object-fit:cover;width:100%;height:auto;max-height:340px;display:block}.campus .switch{cursor:pointer;align-items:center;gap:10px;min-height:38px;font-size:14px;display:inline-flex;position:relative}.campus .switch input{opacity:0;cursor:pointer;width:44px;height:26px;margin:0;position:absolute}.campus .switch-ui{background:var(--panel-2);border:1px solid var(--ln);border-radius:99px;flex:none;width:44px;height:26px;transition:background .25s;position:relative}.campus .switch-ui:after{content:"";background:var(--ink-2);border-radius:50%;width:18px;height:18px;transition:transform .25s cubic-bezier(.3,1.4,.4,1),background .25s;position:absolute;top:3px;left:3px}.campus .switch input:checked+.switch-ui{background:var(--accent);border-color:var(--accent)}.campus .switch input:checked+.switch-ui:after{background:var(--accent-ink);transform:translate(18px)}.campus .switch input:focus-visible+.switch-ui{outline:2px solid var(--accent);outline-offset:3px}.campus .mention-wrap{width:100%;position:relative}.campus .mention-list{z-index:30;box-shadow:var(--shadow);background:var(--panel);border-radius:var(--rm);gap:2px;max-width:380px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0}.campus .mention-list li{border-radius:var(--rs);cursor:pointer;align-items:center;gap:10px;padding:6px 8px;display:flex}.campus .mention-list li[aria-selected=true],.campus .mention-list li:hover{background:var(--panel-2)}.campus .mention-list .small{text-overflow:ellipsis;white-space:nowrap;max-width:45%;margin-left:auto;overflow:hidden}.campus .mention{color:var(--c-accent-text);font-weight:600}.campus .mention:hover{text-decoration:underline}.campus .post{flex-direction:column;gap:12px;padding:20px 22px;display:flex}.campus .hd{align-items:center;gap:12px;display:flex}.campus .hd-main{flex:1;min-width:0}.campus .hd-name{flex-wrap:wrap;align-items:center;gap:8px;font-weight:600;display:flex}.campus .hd-name a:hover{text-decoration:underline}.campus .kind{border-radius:var(--rp);border:1px solid var(--ln);color:var(--ink-2);white-space:nowrap;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.campus .kind-live{border-color:var(--live);color:var(--ink)}.campus .post-title{font-size:22px;line-height:1.15}.campus .post-body{font-size:var(--fs-lg);white-space:pre-wrap;overflow-wrap:anywhere;max-width:68ch;line-height:1.55}.campus .post:target{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 24%, transparent);scroll-margin-top:calc(var(--header-h) + 16px)}.campus .live-box{border-radius:var(--rm);background:var(--panel-2);border:1px solid var(--ln);flex-wrap:wrap;align-items:center;gap:14px;padding:14px 16px;display:flex}.campus .live-box>div{flex:1;min-width:140px}.campus .react{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.campus .rb{border:1px solid var(--ln);background:var(--glass);border-radius:var(--rp);min-height:36px;color:var(--ink-2);transition:background var(--dur-1), border-color var(--dur-1), color var(--dur-1), transform var(--dur-1);align-items:center;gap:7px;padding:6px 13px;font-size:13px;display:inline-flex}.campus .rb:active{transform:scale(.95)}.campus .rb:hover{border-color:var(--accent);color:var(--ink)}.campus .rb.liked{background:color-mix(in srgb, var(--live) 18%, transparent);border-color:var(--live);color:var(--ink)}.campus .rb.liked .ic{fill:var(--live);stroke:var(--live);animation:.45s c-pop}.campus .last-act{margin-left:auto}.campus .comments{border-top:1px solid var(--ln);gap:12px;padding-top:12px;display:grid}.campus .comments[hidden]{display:none}.campus .comment-list{gap:12px;display:grid}.campus .comment{gap:10px;display:flex}.campus .comment-body{background:var(--panel-2);border-radius:var(--rs) var(--rm) var(--rm) var(--rm);flex:1;min-width:0;padding:8px 14px 10px}.campus .comment-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.campus .comment-body p{overflow-wrap:anywhere;white-space:pre-wrap;font-size:15px}.campus .comment-form{align-items:flex-start;gap:8px;margin-top:12px;display:flex}.campus .poll .poll-q{margin:10px 0 6px;font-size:24px}.campus .poll-q-inline{margin-bottom:4px;font-weight:600}.campus .poll-opt{text-align:left;border:1px solid var(--ln);background:var(--glass);border-radius:var(--rm);width:100%;min-height:46px;color:inherit;margin-top:8px;padding:12px 14px;display:block;position:relative;overflow:hidden}.campus .poll-opt:not(:disabled):hover,.campus .poll-opt.mine{border-color:var(--accent)}.campus .poll-opt i{background:color-mix(in srgb, var(--accent) 26%, transparent);transition:width 1s cubic-bezier(.3,.7,.2,1);animation:1s both c-grow;position:absolute;top:0;bottom:0;left:0}.campus .poll-opt>span{justify-content:space-between;gap:12px;display:flex;position:relative}.campus .poll-opt b{align-items:center;gap:6px;font-weight:600;display:inline-flex}.campus .poll-foot{margin-top:10px}.campus .chat{height:calc(100dvh - var(--header-h) - 56px);grid-template-columns:340px minmax(0,1fr);gap:16px;min-height:520px;display:grid}.campus .chat>.tile{flex-direction:column;padding:0;animation:none;display:flex}.campus .chat-list-head{gap:12px;padding:20px 18px 12px;display:grid}.campus .chat-list-head h1{font-size:30px}.campus .search{background:var(--panel-2);border-radius:var(--rp);min-height:42px;color:var(--ink-2);align-items:center;gap:8px;padding:0 14px;display:flex}.campus .search input{min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:0;flex:1;padding:8px 0}.campus .search input::placeholder{color:var(--mute)}.campus .search:focus-within{box-shadow:0 0 0 2px var(--accent)}.campus .search.wide{flex:240px;max-width:360px}.campus .chat-scroll{flex:1;padding:4px 10px 16px;overflow-y:auto}.campus .chat-group{margin-top:10px}.campus .chat-group .lbl{padding:6px 8px}.campus .chat-item{border-radius:var(--rm);color:inherit;align-items:center;gap:12px;padding:9px 8px;transition:background .2s;display:flex}.campus .chat-item:hover{background:var(--panel-2)}.campus .chat-item.on{background:color-mix(in srgb, var(--accent) 16%, var(--panel-2))}.campus .chan-ic{border-radius:var(--rm);background:var(--panel-2);width:42px;height:42px;color:var(--ink);flex:none;place-items:center;display:grid}.campus .chat-item.on .chan-ic{background:var(--accent);color:var(--accent-ink)}.campus .chan-ic.locked{color:var(--ink-2)}.campus .ci-tx{flex-direction:column;flex:1;min-width:0;display:flex}.campus .ci-top{justify-content:space-between;gap:8px;display:flex}.campus .ci-top b{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.campus .ci-top .small{white-space:nowrap;color:var(--mute);font-size:12px}.campus .ci-preview{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.campus .chat-item.unread .ci-preview{color:var(--ink);font-weight:600}.campus .pad{padding:8px}.campus .chat-head{border-bottom:1px solid var(--ln);align-items:center;gap:12px;padding:14px 18px;display:flex}.campus .chat-head .back{display:none}.campus .chat-who{min-width:0;color:inherit;align-items:center;gap:12px;display:flex}.campus .chat-who>span:last-child{flex-direction:column;min-width:0;line-height:1.25;display:flex}.campus .chat-who b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.campus .chat-who .sub{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.campus .chat-who .sub.is-on{color:var(--ink-2)}.campus .msgs{scroll-behavior:auto;overscroll-behavior:contain;flex-direction:column;flex:1;gap:4px;padding:18px;scroll-padding-bottom:12px;display:flex;overflow-y:auto}.campus .msgs:focus-visible{outline-offset:-3px}.campus .msg{align-items:flex-end;gap:10px;max-width:100%;margin-top:12px;display:flex}.campus .msg.grouped{margin-top:2px}.campus .msg.mine{justify-content:flex-end}.campus .msg.new{animation:.4s cubic-bezier(.2,.9,.3,1.2) both c-msg}.campus .msg-av{flex:none;width:36px}.campus .msg-col{flex-direction:column;align-items:flex-start;gap:3px;min-width:0;max-width:min(78%,560px);display:flex}.campus .msg.mine .msg-col{align-items:flex-end}.campus .msg-name{align-items:center;gap:8px;padding-left:4px;font-size:13px;display:flex}.campus .bubble-row{align-items:center;gap:6px;max-width:100%;display:flex}.campus .msg.mine .bubble-row{flex-direction:row-reverse}.campus .bubble{background:var(--panel-2);line-height:1.45;font-size:var(--fs-md);overflow-wrap:anywhere;white-space:pre-wrap;border-radius:18px 18px 18px 6px;min-width:0;padding:9px 14px}.campus .msg.grouped:not(.mine) .bubble{border-radius:6px 18px 18px 6px}.campus .msg.mine .bubble{background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 55%, var(--accent2)));color:var(--accent-ink);border-radius:18px 18px 6px}.campus .msg.mine .bubble .mention{color:inherit;text-decoration:underline}.campus .react-tools{opacity:0;transition:opacity .2s;position:relative}.campus .msg:hover .react-tools,.campus .react-tools:focus-within{opacity:1}.campus .react-add{border-radius:var(--rav);border:1px solid var(--ln);background:var(--panel);width:32px;height:32px;color:var(--ink-2);place-items:center;display:grid;position:relative}.campus .react-add:after{content:"";position:absolute;inset:-6px}.campus .react-add .ic{width:17px;height:17px}.campus .picker{z-index:20;width:max-content;box-shadow:var(--shadow);background:var(--panel);border-radius:var(--rp);gap:2px;padding:6px;display:flex;position:absolute;bottom:38px}.campus .msg:not(.mine) .picker{left:0}.campus .msg.mine .picker{right:0}.campus .picker button{background:0 0;border:0;border-radius:50%;min-width:38px;min-height:38px;font-size:20px;transition:transform .15s}.campus .picker button:hover{background:var(--panel-2);transform:scale(1.25)}.campus .reacts{flex-wrap:wrap;gap:4px;display:flex}.campus .rchip{border:1px solid var(--ln);background:var(--glass);border-radius:var(--rp);min-height:28px;color:var(--ink-2);align-items:center;gap:5px;padding:2px 9px;font-size:13px;display:inline-flex}.campus .rchip.mine{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--ink)}.campus .msg-time{color:var(--mute);padding:0 4px;font-size:11.5px}.campus .day-sep{justify-content:center;margin:14px 0 4px;display:flex}.campus .day-sep span{border-radius:var(--rp);background:var(--panel-2);color:var(--ink-2);padding:3px 12px;font-size:12px}.campus .typing-row{align-items:center;gap:8px;min-height:26px;padding:0 20px 2px;display:flex}.campus .dots{gap:4px;display:inline-flex}.campus .dots i{background:var(--ink-2);border-radius:50%;width:6px;height:6px;animation:1s infinite c-dot}.campus .dots i:nth-child(2){animation-delay:.15s}.campus .dots i:nth-child(3){animation-delay:.3s}.campus .chat-composer{padding:12px 14px calc(14px + env(safe-area-inset-bottom,0px) * 0);border-top:1px solid var(--ln);background:var(--panel);align-items:flex-end;gap:10px;display:flex}.campus .jump-wrap{z-index:2;justify-content:center;height:0;display:flex;position:relative}.campus .jump{background:var(--raised);box-shadow:var(--e2);position:absolute;bottom:8px}.campus .chat-composer .field{border-radius:var(--rm);resize:none;field-sizing:content;min-height:46px;max-height:140px}.campus .chat-composer .send{flex:none;width:46px;padding:0}.campus .chat-empty{text-align:center;color:var(--ink-2);flex:1;place-content:center;justify-items:center;gap:12px;padding:24px;display:grid}.campus .chat-empty .ic{width:34px;height:34px}.campus .date{text-align:center;border-radius:var(--rm);background:linear-gradient(160deg, var(--h-a), var(--h-b));min-width:64px;color:var(--h-ink);flex:none;padding:10px 8px}.campus .date small{letter-spacing:.1em;font-size:11px;display:block}.campus .date b{font-family:var(--f-display);font-size:28px;line-height:1.1;font-weight:var(--fw-d);display:block}.campus .ev{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.campus .ev-main{flex:1;gap:8px;min-width:220px;display:grid}.campus .ev-title{font-size:24px;line-height:1.1}.campus .ev-meta{flex-wrap:wrap;align-items:center;gap:6px 16px;display:flex}.campus .ev-host{align-items:center;gap:6px;display:inline-flex}.campus .seats{gap:6px;max-width:360px;display:grid}.campus .seats .bar2{margin-top:0}.campus .ev-side{justify-items:end;gap:6px;min-width:180px;display:grid}.campus .ev-side .cd-m{margin:4px 0 6px}.campus .members-tools{margin-bottom:18px}.campus .chips{flex-wrap:wrap;gap:6px;display:flex}.campus .members-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.campus .members-grid>li{animation:.5s both c-rise}.campus .member{align-items:flex-start;gap:14px;height:100%;padding:18px;display:flex}.campus .member-tx{flex:1;gap:4px;min-width:0;display:grid}.campus .member-name{font-size:18px;line-height:1.15}.campus .stretch:after{content:"";z-index:1;position:absolute;inset:0}.campus .stretch:hover{text-decoration:underline}.campus .member-badges{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.campus .status{color:var(--ink-2);align-items:center;gap:6px;font-size:12px;display:inline-flex}.campus .status:before{content:"";background:var(--mute);border-radius:50%;width:8px;height:8px}.campus .status.is-on:before{background:var(--ok)}.campus .msg-btn{z-index:2;position:relative}.campus .member-since{margin-top:14px}.campus .mini-courses{gap:8px;margin-top:12px;display:grid}.campus .mini-courses li{border:1px solid var(--ln);border-radius:var(--rm);background:var(--glass);justify-content:space-between;gap:12px;padding:10px 12px;display:flex}.campus .mini-courses a:hover{text-decoration:underline}.campus .course-progress{gap:18px;margin-top:14px;display:grid}.campus .course-progress .bar2{margin-top:8px}.campus .cp-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.campus .cp-link{color:var(--c-accent-text);align-items:center;gap:6px;margin-top:8px;font-size:14px;font-weight:600;display:inline-flex}.campus .cp-link:hover{text-decoration:underline}.campus .settings{gap:14px;margin-top:14px;display:grid}.campus .setting{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.campus .seg{background:var(--panel-2);border:1px solid var(--ln);border-radius:var(--rp);padding:3px;display:inline-flex}.campus .seg button{border-radius:var(--rp);min-height:36px;color:var(--ink-2);background:0 0;border:0;padding:7px 16px;font-size:14px}.campus .seg button.on{background:var(--ink);color:var(--c-bg)}.campus .demo-note{border-top:1px dashed var(--ln);padding-top:6px}.campus .toast{left:50%;bottom:calc(28px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--c-bg);border-radius:var(--rp);opacity:0;pointer-events:none;z-index:70;text-align:center;max-width:calc(100vw - 32px);padding:11px 18px;font-size:14px;transition:all .3s;position:fixed;transform:translate(-50%,20px)}.campus .toast.on{opacity:1;transform:translate(-50%)}.campus .tabbar{display:none}@media (max-width:1100px){.campus .s4{grid-column:span 6}.campus .s5,.campus .s7,.campus .s8{grid-column:span 12}.campus .lesson-side{grid-column:span 12;position:static}.campus .space-card,.campus .dock a:not(.on) .lab{display:none}.campus .dock a{padding:9px 13px}.campus .side{padding-top:0}}@media (max-width:900px){.campus .bar{grid-template-columns:minmax(0,1fr) auto;min-height:60px;padding-top:8px;padding-bottom:8px}.campus .dock{display:none}.campus .shell{padding-top:var(--sp-4)}.campus .amb i{animation:none}.campus .toast{bottom:calc(86px + env(safe-area-inset-bottom,0px))}.campus.chat-open .toast{bottom:calc(80px + env(safe-area-inset-bottom,0px))}.campus .tabbar{left:6px;right:6px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:30;background:color-mix(in srgb, var(--panel) 88%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--ln);border-radius:calc(var(--rb) - 2px);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;padding:4px 3px;display:grid;position:fixed}.campus .tabbar a{letter-spacing:-.03em;color:var(--ink-2);border-radius:var(--rm);flex-direction:column;align-items:center;gap:2px;min-width:0;padding:8px 0 6px;font-size:9.5px;display:flex;position:relative}.campus .tabbar a span:not(.n){text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.campus .tabbar a.on{background:var(--accent);color:var(--accent-ink)}.campus .tabbar .n{min-width:17px;height:17px;margin-right:-22px;padding:0 4px;font-size:10px;position:absolute;top:2px;right:50%}.campus .chat{grid-template-columns:280px minmax(0,1fr);height:calc(100dvh - 176px)}.campus .demo-pill{display:none}.campus .hero .play-wrap{opacity:.5;width:90%;right:-20%}}@media (max-width:760px){.campus .chat{grid-template-columns:minmax(0,1fr);height:calc(100dvh - 148px)}.campus .chat[data-view=list] .chat-panel,.campus .chat[data-view=conversation] .chat-list{display:none}.campus .chat-head .back{display:inline-grid}.campus.chat-open .tabbar{display:none}.campus.chat-open .shell{padding-bottom:12px}.campus.chat-open .chat{height:calc(var(--vvh,100dvh) - 92px);min-height:320px}.campus .chat[data-view=list] .chat-item.on{background:0 0}.campus .chat[data-view=list] .chat-item.on .chan-ic{background:var(--panel-2);color:var(--ink)}}@media (max-width:640px){.campus .bento{gap:14px}.campus .s4,.campus .s5,.campus .s6,.campus .s7,.campus .s8{grid-column:span 12}.campus .tile{padding:18px}.campus .big{font-size:44px}.campus .cd-m{font-size:32px}.campus .hero{min-height:320px}.campus .player{border-radius:var(--rm)}.campus .bigplay{width:68px;height:68px}.campus .bigplay .ic{width:28px;height:28px}.campus .cap{padding:0 12px;bottom:52px}.campus .cap span{font-size:13px}.campus .ctrl{gap:6px;padding:18px 10px 6px}.campus .chapters{grid-template-columns:1fr}.campus .post{padding:18px}.campus .composer-tools{align-items:stretch}.campus .tools-right{justify-content:space-between;width:100%}.campus .space-select{flex:100%;max-width:100%}.campus .ev-side{justify-items:stretch;width:100%}.campus .ev-side .btn{width:100%}.campus .railh h2{font-size:24px}.campus .rail-item{width:210px}.campus .pgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.campus .poster h3{font-size:17px}.campus .msg-col{max-width:84%}.campus .react-tools{opacity:1}.campus .notif-pop{width:min(300px,100vw - 32px);right:-48px}.campus .members-grid{grid-template-columns:1fr}.campus .upsell-act{justify-content:space-between;width:100%}}@media (hover:none){.campus .react-tools{opacity:1}}.campus .growth-rewards,.campus .growth-referral,.campus .growth-anniv{flex-direction:column;gap:12px;display:flex}.campus .sample-tag{border:1px solid color-mix(in srgb, var(--ink) 20%, transparent);letter-spacing:.04em;text-transform:uppercase;opacity:.7;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:500}.campus .rw-list{gap:8px;margin:4px 0 0;padding:0;list-style:none;display:grid}.campus .rw-item{border:1px solid var(--ln);border-radius:var(--rm);background:color-mix(in srgb, var(--ink) 3%, transparent);grid-template-columns:86px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 14px;display:grid}.campus .rw-item.on{border-color:color-mix(in srgb, var(--accent) 45%, var(--ln));background:color-mix(in srgb, var(--accent) 9%, transparent)}.campus .rw-lv{font-family:var(--f-mono,ui-monospace, monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);font-size:12px}.campus .rw-item.on .rw-lv{color:var(--accent)}.campus .rw-tx{font-weight:600;line-height:1.35}.campus .rw-code{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:inline-flex}.campus .rw-code code,.campus .rf-link code{font-family:var(--f-mono,ui-monospace, monospace);background:color-mix(in srgb, var(--ink) 8%, transparent);overflow-wrap:anywhere;border-radius:8px;padding:6px 10px;font-size:13px}.campus .rf-link{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.campus .rf-link code{flex:260px;min-width:0}.campus .rf-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.campus .rf-stats li{border-radius:var(--rm);background:color-mix(in srgb, var(--ink) 5%, transparent);gap:2px;padding:12px 14px;display:grid}.campus .rf-stats strong{font-variant-numeric:tabular-nums;font-size:24px;line-height:1.1}.campus .rf-stats span{color:var(--ink-2);font-size:12px}.campus .growth-anniv{border-color:color-mix(in srgb, var(--accent) 50%, var(--ln));background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%)}@media (max-width:700px){.campus .rw-item{grid-template-columns:minmax(0,1fr) auto}.campus .rw-lv{grid-column:1/-1}.campus .rw-code{grid-column:1/-1;justify-content:flex-start}.campus .rf-stats{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.campus *,.campus :before,.campus :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.campus .pl{stroke-dashoffset:0}.campus .ball{opacity:1;offset-distance:100%}.campus .pring .pr,.campus .bar2 i,.campus .poll-opt i,.campus .poster .pb i{animation:none}}@keyframes c-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.campus .tile.skel{background:linear-gradient(100deg, var(--panel) 30%, var(--panel-2) 50%, var(--panel) 70%);background-size:200% 100%;border-color:#0000;min-height:140px;animation:1.6s linear infinite c-shimmer}.campus .tile.skel.s8,.campus .tile.skel.s4{min-height:220px}.campus-skel{background:var(--bg);min-height:100dvh;padding:24px 16px}.campus-skel-bar{background:var(--surface);border:1px solid var(--line);border-radius:999px;max-width:1180px;height:56px;margin:0 auto 24px}.campus-skel-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;max-width:1180px;margin:0 auto;display:grid}.campus-skel-grid i{border-radius:var(--r-box,14px);background:var(--surface);border:1px solid var(--line);height:200px;animation:1.4s ease-in-out infinite c-pulse;display:block}.campus .avlink .av img,.campus .av img{object-fit:cover;border-radius:inherit;width:100%;height:100%;position:absolute;inset:0}.campus .av{position:relative;overflow:hidden}.campus .av.on{overflow:visible}.campus .av.on img{border-radius:inherit}.campus .profile-form{gap:14px;max-width:560px;display:grid}.campus .profile-form-top{align-items:center;gap:14px;display:flex}.campus .pf-field{gap:6px;display:grid}.campus .pf-bad{color:var(--live)}.campus .profile-setup{gap:18px;max-width:640px;margin:40px auto;display:grid}.campus .notif-list{gap:4px;max-height:320px;display:grid;overflow:auto}.campus .notif-list li a,.campus .notif-list .notif-item{border-radius:var(--rs);text-align:left;width:100%;color:inherit;background:0 0;border:0;gap:2px;padding:8px 10px;display:grid}.campus .notif-list li.unread a,.campus .notif-list li.unread .notif-item{background:var(--panel-2);border-left:3px solid var(--accent)}.campus .quiz{gap:12px;display:grid}.campus .quiz-h{margin:0}.campus .quiz-form{gap:18px;display:grid}.campus .quiz-q{border:0;gap:8px;margin:0;padding:0;display:grid}.campus .quiz-q legend{margin-bottom:6px;padding:0;font-weight:600}.campus .quiz-opt{border:1px solid var(--ln);border-radius:var(--rs);background:var(--panel);cursor:pointer;align-items:center;gap:10px;padding:10px 12px;display:flex}.campus .quiz-opt:has(input:checked){border-color:var(--accent);background:var(--panel-2)}.campus .quiz-result{border-radius:var(--rs);background:var(--panel-2);gap:10px;padding:12px 14px;display:grid}.campus .quiz-result.ok{border-left:4px solid var(--ok)}.campus .quiz-review{gap:8px;display:grid}@media (prefers-reduced-motion:reduce){.campus .tile.skel,.campus-skel-grid i{animation:none!important}}.campus .lesson-md{max-width:62ch;color:var(--ink);font-size:17px;line-height:1.6}.campus .lesson-md .a-md>*+*{margin-top:.9em}.campus .lesson-md h2{font-size:1.35em;font-weight:700}.campus .lesson-md h3{font-size:1.15em;font-weight:700}.campus .lesson-md h4{font-size:1em;font-weight:700}.campus .lesson-md ul{padding-left:1.3em;list-style:outside}.campus .lesson-md ol{padding-left:1.4em;list-style:decimal}.campus .lesson-md li+li{margin-top:.25em}.campus .lesson-md blockquote{border-left:3px solid var(--accent);color:var(--ink-2);margin:0;padding:4px 14px}.campus .lesson-md code{background:color-mix(in srgb, var(--ink) 8%, transparent);border-radius:5px;padding:1px 5px;font-family:ui-monospace,monospace;font-size:.9em}.campus .lesson-md pre{border-radius:var(--rm);background:color-mix(in srgb, var(--ink) 8%, transparent);margin:0;padding:12px 14px;font-size:14px;overflow-x:auto}.campus .lesson-md a{color:var(--accent-text,var(--accent));text-underline-offset:3px;text-decoration:underline}.campus .lesson-md hr{background:var(--ln);border:0;height:1px}.campus .player-real{aspect-ratio:16/9;border-radius:var(--rb);isolation:isolate;border:1px solid var(--ln);background:#000;position:relative;overflow:hidden}.campus .player-real iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.campus .player-real.player-wait{background:color-mix(in srgb, var(--ink) 8%, var(--bg));color:var(--ink-2);place-items:center;display:grid}.campus .player-real .wm{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.campus .player-real .wm span{color:#ffffff80;text-shadow:0 0 3px #000000a6;white-space:nowrap;font-family:ui-monospace,monospace;font-size:12px;line-height:1;animation:48s step-end infinite wm-drift;position:absolute;top:8%;left:6%}@keyframes wm-drift{0%{top:8%;left:6%}25%{top:22%;left:52%}50%{top:62%;left:14%}75%{top:80%;left:46%}to{top:8%;left:6%}}@media (prefers-reduced-motion:reduce){.campus .player-real .wm span{animation:none}}
@keyframes c-fade{0%{opacity:0}to{opacity:1}}@keyframes c-fade-out{0%{opacity:1}to{opacity:0}}@keyframes c-pop-in{0%{opacity:0;translate:0 6px;scale:.97}to{opacity:1;translate:0;scale:1}}@keyframes c-pop-out{0%{opacity:1;scale:1}to{opacity:0;translate:0 4px;scale:.98}}@keyframes c-sheet-in{0%{translate:0 100%}to{translate:0}}@keyframes c-sheet-out{0%{translate:0}to{translate:0 100%}}@keyframes c-spin{to{rotate:360deg}}@property --cu{syntax:"<integer>";inherits:false;initial-value:0}@keyframes c-count{0%{--cu:0}to{--cu:var(--to)}}:root:has(.campus){scrollbar-gutter:stable;scroll-padding-top:84px}@media (prefers-reduced-motion:no-preference){:root[data-scroll-behavior=smooth]:has(.campus){scroll-behavior:smooth}}.campus .countup .cu{counter-reset:cu var(--cu);animation:c-count .9s var(--ease) both}.campus .countup .cu:after{content:counter(cu)}.campus .bar-wrap{z-index:40;background:var(--c-header);-webkit-backdrop-filter:saturate(1.5)blur(18px);backdrop-filter:saturate(1.5)blur(18px);transition:border-color var(--dur-2), box-shadow var(--dur-2);view-transition-name:campus-header;border-bottom:1px solid #0000;position:sticky;top:0}.campus .bar-wrap[data-stuck]{border-bottom-color:var(--ln);box-shadow:var(--e1)}.campus .bar-search{border:1px solid var(--ln);border-radius:var(--rp);background:var(--glass);min-width:214px;height:42px;color:var(--ink-2);transition:background var(--dur-1), border-color var(--dur-1), color var(--dur-1);align-items:center;gap:8px;padding:0 8px 0 14px;display:inline-flex}.campus .bar-search:hover{background:var(--panel-2);color:var(--ink);border-color:color-mix(in srgb, var(--accent) 40%, var(--ln))}.campus .bar-search-t{text-align:left;font-size:var(--fs-md);flex:1}.campus .bar-kbd{gap:3px;display:inline-flex}.campus .theme-btn .ic{transition:rotate var(--dur-3) var(--ease)}.campus .theme-btn:hover .ic{rotate:18deg}.campus .tip{display:inline-flex;position:relative}.campus .tip:after{content:attr(data-tip);z-index:60;border-radius:var(--rs);background:var(--ink);color:var(--c-bg);font-size:var(--fs-xs);font-weight:var(--fw-med);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-1), translate var(--dur-1);padding:5px 9px;line-height:1.3;position:absolute;top:calc(100% + 8px);left:50%;translate:-50% 4px}.campus .tip[data-side=top]:after{top:auto;bottom:calc(100% + 8px)}@media (hover:hover){.campus .tip:hover:after{opacity:1;transition-delay:.45s;translate:-50%}}.campus .tip:has(:focus-visible):after{opacity:1;translate:-50%}.campus .popwrap{display:inline-flex;position:relative}.campus .pop{z-index:50;background:var(--raised);border:1px solid var(--ln);border-radius:var(--rm);min-width:240px;box-shadow:var(--e2);animation:c-pop-in .16s var(--ease) both;position:absolute;top:calc(100% + 10px);overflow:hidden}.campus .pop-end{transform-origin:100% 0;right:0}.campus .pop-start{transform-origin:0 0;left:0}.campus .menu{min-width:248px;padding:6px}.campus .menu-who{border-bottom:1px solid var(--ln);margin-bottom:4px;padding:8px 10px 10px;display:grid}.campus .menu-item{border-radius:var(--rs);width:100%;color:var(--ink);text-align:left;font-size:var(--fs-md);background:0 0;border:0;align-items:center;gap:12px;min-height:42px;padding:10px;display:flex}.campus .menu-item:hover,.campus .menu-item:focus-visible{background:var(--c-hover)}.campus .menu-item:focus-visible{outline-offset:-2px}.campus .menu-item .ic{color:var(--ink-2)}.campus .menu-hint{font-family:var(--f-mono);margin-left:auto}.campus .alerts-pop{width:392px;max-width:calc(100vw - 24px)}.campus .alerts{min-height:0;max-height:inherit;flex-direction:column;display:flex}.campus .alerts-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4) var(--sp-4) var(--sp-3);border-bottom:1px solid var(--ln);display:flex}.campus .alerts-title{font-size:var(--fs-xl)}.campus .alerts-scroll{overscroll-behavior:contain;max-height:min(68vh,460px);padding:2px 8px 12px;overflow-y:auto}.campus .alerts-day{padding:14px 8px 6px}.campus .alert-item{align-items:flex-start;gap:var(--sp-3);border-radius:var(--rm);width:100%;color:inherit;text-align:left;transition:background var(--dur-1);min-height:var(--tap);background:0 0;border:0;padding:10px 8px;display:flex;position:relative}.campus .alert-item:hover{background:var(--c-hover)}.campus .alert-ic{border-radius:var(--rav);background:var(--panel-2);width:36px;height:36px;color:var(--ink-2);flex:none;place-items:center;display:grid}.campus .alert-item.unread .alert-ic{background:color-mix(in srgb, var(--accent) 20%, var(--panel-2));color:var(--ink)}.campus .alert-tx{flex-direction:column;flex:1;gap:2px;min-width:0;line-height:1.35;display:flex}.campus .alert-item:not(.unread) .alert-tx b{font-weight:var(--fw-med)}.campus .alert-body{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.campus .alert-dot{background:var(--accent);border-radius:50%;flex:none;width:9px;height:9px;margin-top:7px}.campus .alerts-empty{padding:var(--sp-10) var(--sp-6);background:0 0;border:0;animation:none}.campus .layer{z-index:80;display:grid;position:fixed;inset:0}.campus .layer .scrim{background:var(--c-scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:.18s both c-fade;position:absolute;inset:0}.campus .layer[data-state=closing] .scrim{animation:.16s both c-fade-out}.campus .dlg{background:var(--raised);min-height:0;color:var(--ink);border:1px solid var(--ln);border-radius:var(--rb);box-shadow:var(--e3);animation:c-pop-in .2s var(--ease) both;outline:0;flex-direction:column;display:flex;position:relative;overflow:hidden}.campus .layer[data-state=closing] .dlg{animation:.15s ease-in both c-pop-out}.campus .layer.is-center{padding:var(--sp-6);place-items:center}.campus .layer.is-center .dlg{width:min(560px,100%);max-height:min(86dvh,720px)}.campus .layer.is-top{padding:12vh var(--sp-4) var(--sp-4);place-items:start center}.campus .layer.is-top .dlg{width:min(640px,100%);max-height:76dvh}.campus .layer.is-sheet{align-items:end}.campus .layer.is-sheet .dlg{border-radius:var(--rb) var(--rb) 0 0;width:100%;max-height:90dvh;padding-bottom:env(safe-area-inset-bottom,0px);animation:c-sheet-in .3s var(--ease) both;transition:transform var(--dur-2) var(--ease);border-bottom:0}.campus .layer.is-sheet[data-state=closing] .dlg{animation:.18s ease-in both c-sheet-out}.campus .grab{background:color-mix(in srgb, var(--ink) 28%, transparent);touch-action:none;border-radius:99px;flex:none;width:40px;height:4px;margin:8px auto 0;display:block}.campus .is-sheet [data-grab]{touch-action:none}.campus .dlg-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-5) var(--sp-5) var(--sp-3);border-bottom:1px solid var(--ln);flex:none;display:flex}.campus .dlg-title{font-size:var(--fs-xl)}.campus .dlg-body{overscroll-behavior:contain;padding:var(--sp-4) var(--sp-5) var(--sp-6);overflow-y:auto}.campus .layer.is-sheet .alerts-scroll{max-height:none;padding-bottom:var(--sp-6);flex:1}.campus .kbd{border:1px solid var(--ln);background:var(--panel-2);min-width:22px;height:22px;color:var(--ink-2);font:var(--fw-semi) 11.5px/1 var(--f-mono);border-bottom-width:2px;border-radius:6px;place-items:center;padding:0 6px;display:inline-grid}.campus .shortcuts{gap:var(--sp-6) var(--sp-8);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.campus .shortcuts dl{margin:var(--sp-2) 0 0}.campus .sc-row{justify-content:space-between;align-items:center;gap:var(--sp-3);border-bottom:1px solid color-mix(in srgb, var(--ln) 70%, transparent);padding:8px 0;display:flex}.campus .sc-row dt{font-size:var(--fs-md)}.campus .sc-row dd{flex:none;align-items:center;gap:6px;margin:0;display:flex}.campus .sc-keys{align-items:center;gap:6px;display:inline-flex}.campus .palette{overflow:hidden}.campus .pal-top{align-items:center;gap:var(--sp-3);padding:14px var(--sp-4);border-bottom:1px solid var(--ln);color:var(--ink-2);flex:none;display:flex}.campus .pal-input{min-width:0;color:var(--ink);font:inherit;font-size:var(--fs-lg);background:0 0;border:0;outline:0;flex:1;padding:4px 0}.campus .pal-input::placeholder{color:var(--mute)}.campus .pal-clear{background:var(--panel-2);width:28px;height:28px;color:var(--ink-2);border:0;border-radius:50%;place-items:center;display:grid;position:relative}.campus .pal-clear:after{content:"";position:absolute;inset:-8px}.campus .pal-list{overscroll-behavior:contain;min-height:120px;max-height:min(56vh,440px);padding:var(--sp-2);flex:1;overflow-y:auto}.campus .pal-h{padding:10px 10px 6px}.campus .pal-opt{align-items:center;gap:var(--sp-3);border-radius:var(--rm);cursor:pointer;min-height:48px;padding:8px 10px;display:flex;position:relative}.campus .pal-opt.on{background:color-mix(in srgb, var(--accent) 14%, transparent)}.campus .pal-opt.on:before{content:"";background:var(--accent);border-radius:2px;width:3px;position:absolute;top:10px;bottom:10px;left:0}.campus .pal-ic{border-radius:var(--rs);background:var(--panel-2);width:34px;height:34px;color:var(--ink-2);flex:none;place-items:center;display:grid}.campus .pal-opt.on .pal-ic{background:var(--accent);color:var(--accent-ink)}.campus .pal-tx{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.campus .pal-t,.campus .pal-s{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.campus .pal-t mark{color:var(--c-accent-text);font-weight:var(--fw-bold);background:0 0}.campus .pal-go{color:var(--ink-2);place-items:center;display:grid}.campus .pal-note{padding:var(--sp-4)}.campus .pal-empty{justify-items:center;gap:var(--sp-2);padding:var(--sp-10) var(--sp-4);text-align:center;color:var(--ink-2);display:grid}.campus .pal-empty .ic{width:28px;height:28px}.campus .pal-empty b{color:var(--ink);overflow-wrap:anywhere}.campus .pal-foot{align-items:center;gap:var(--sp-4);padding:10px var(--sp-4);border-top:1px solid var(--ln);font-size:var(--fs-xs);color:var(--mute);flex:none;display:flex}.campus .pal-mod{gap:3px;margin-left:auto;display:inline-flex}@media (hover:none){.campus .pal-foot{display:none}}.campus .tour{z-index:90;position:fixed;inset:0}.campus .tour-dim{background:var(--c-scrim);animation:.25s both c-fade;position:absolute;inset:0}.campus .tour-hole{border-radius:var(--rm);box-shadow:0 0 0 100vmax var(--c-scrim), 0 0 0 2px var(--accent);pointer-events:none;transition:left var(--dur-3) var(--ease), top var(--dur-3) var(--ease), width var(--dur-3) var(--ease), height var(--dur-3) var(--ease);position:fixed}.campus .tour-card{gap:var(--sp-3);width:min(340px,100vw - 24px);padding:var(--sp-5);background:var(--raised);color:var(--ink);border:1px solid var(--ln);border-radius:var(--rb);box-shadow:var(--e3);animation:c-pop-in .24s var(--ease) both;outline:0;display:grid;position:fixed}.campus .tour-card.is-center{width:min(400px,100vw - 24px);top:50%;left:50%;transform:translate(-50%,-50%)}.campus .tour-step{margin:0}.campus .tour-title{font-size:var(--fs-xl)}.campus .tour-body{line-height:1.5}.campus .tour-keys{gap:4px;display:flex}.campus .tour-dots{gap:6px;display:flex}.campus .tour-dots i{background:var(--ln);width:6px;height:6px;transition:width var(--dur-2) var(--ease), background var(--dur-2);border-radius:99px}.campus .tour-dots i.on{background:var(--accent);width:20px}.campus .tour-act{justify-content:space-between;align-items:center;gap:var(--sp-2);margin-top:var(--sp-1);display:flex}.campus .tour-nav{gap:var(--sp-2);display:inline-flex}@media (max-width:640px){.campus .tour-card:not(.is-center){width:auto;right:12px;left:12px!important}}.campus .hovercard{z-index:70;gap:var(--sp-3);padding:var(--sp-4);background:var(--raised);box-shadow:var(--e2);animation:c-pop-in .16s var(--ease) both;transition:none;display:grid;position:fixed;overflow:visible}.campus .hovercard:before{display:none}.campus .hovercard.is-above{transform:translateY(-100%)}.campus .hc-head{gap:var(--sp-3);align-items:center;display:flex}.campus .hc-id{min-width:0;line-height:1.3;display:grid}.campus .hc-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.campus .hc-bio{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.campus .hc-act{gap:var(--sp-2);display:flex}.campus .hc-act .btn{flex:1}.campus .sk{border-radius:var(--rs);background:linear-gradient(100deg, var(--panel-2) 30%, color-mix(in srgb, var(--panel-2) 50%, var(--panel)) 50%, var(--panel-2) 70%);background-size:200% 100%;min-height:12px;animation:1.6s linear infinite c-shimmer;display:block}.campus .sk-lines{gap:var(--sp-2);display:grid}.campus .sk-lines .sk{height:12px}.campus .sk-row{align-items:center;gap:var(--sp-3);display:flex}.campus .sk-col{gap:var(--sp-2);flex:1;min-width:0;display:grid}.campus .tile.sk-tile{animation:none}.campus .btn.quiet{color:var(--ink-2);background:0 0;padding-inline:12px}.campus .btn.quiet:hover:not(:disabled){color:var(--ink);background:var(--c-hover);box-shadow:none;transform:none}.campus .btn.is-loading{color:#0000;pointer-events:none}.campus .btn.is-loading:before{content:"";border:2px solid var(--accent-ink);border-right-color:#0000;border-radius:50%;width:18px;height:18px;margin:auto;animation:.7s linear infinite c-spin;position:absolute;inset:0}.campus .btn.ghost.is-loading:before{border-color:var(--ink);border-right-color:#0000}.campus .select,.campus .toolbar select,.campus .composer-tools select{appearance:none;background-color:var(--panel-2);color:var(--ink);border:1px solid var(--ln);border-radius:var(--rp);min-height:38px;font:inherit;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:16px;padding-left:12px;padding-right:34px;font-size:14px}.campus .select{width:100%}.campus .pill-ok{background:color-mix(in srgb, var(--ok) 22%, transparent)}.campus .pill-live{background:var(--live);color:var(--live-ink)}.campus .field{transition:border-color var(--dur-1), box-shadow var(--dur-1)}.campus .field:focus{border-color:var(--ring);box-shadow:0 0 0 4px color-mix(in srgb, var(--ring) 24%, transparent)}::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}::view-transition-group(campus-header){z-index:100;animation:none}::view-transition-old(campus-header){display:none}::view-transition-new(campus-header){animation:none}::view-transition-old(.page-out){animation:.11s ease-in both c-fade-out}::view-transition-new(.page-in){animation:.24s var(--ease,ease-out) 60ms both c-vt-in}@keyframes c-vt-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}::view-transition{pointer-events:none}@media (pointer:coarse){.campus .chip,.campus .rb,.campus .tool,.campus .seg button,.campus .select,.campus .toolbar select,.campus .composer-tools select,.campus .btn.compact{min-height:var(--tap)}.campus .ib.sm{width:var(--tap);height:var(--tap)}.campus .rchip{min-height:36px;padding-inline:12px}.campus .picker button{min-width:var(--tap);min-height:var(--tap)}.campus .react-add:after{inset:-8px}.campus .switch{min-height:var(--tap)}.campus .tip:after{display:none}}@media (max-width:1520px){.campus .bar-search{justify-content:center;width:42px;min-width:0;padding:0}.campus .bar-search-t,.campus .bar-kbd{display:none}}@media (max-width:640px){.campus .shortcuts{grid-template-columns:1fr}.campus .alerts-pop{position:fixed}}@media (prefers-contrast:more){.campus{--ln:color-mix(in srgb, var(--ink) 55%, transparent);--mute:var(--ink-2)}.campus .tile,.campus .dlg,.campus .pop,.campus .chip,.campus .btn.ghost,.campus .ib,.campus .field{border-color:var(--ink-2)}.campus .amb{display:none}.campus :focus-visible{outline-width:3px}.campus .pal-opt.on{outline:2px solid var(--ink);outline-offset:-2px}}@media (prefers-reduced-motion:reduce){.campus .countup .cu{--cu:var(--to);animation:none}.campus .sk{animation:none}.campus .layer *,.campus .pop,.campus .tour-card,.campus .hovercard{animation:none!important}::view-transition-group(*){animation-duration:0s!important;animation-delay:0s!important}::view-transition-old(*){animation-duration:0s!important;animation-delay:0s!important}::view-transition-new(*){animation-duration:0s!important;animation-delay:0s!important}}.campus .sk-poster{aspect-ratio:3/4;border-radius:var(--rb);width:100%}.campus .sk-player{aspect-ratio:16/9;border-radius:var(--rb);width:100%}.campus .sk-stories{border-radius:var(--rb);width:100%;height:92px}.campus .sk-page .rail-item{pointer-events:none}.campus .tile.skel.sk-tile.hero{min-height:360px}.campus .chat.sk-page .chat-panel{min-height:100%}.campus .empty-hint{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:inline-flex}.campus .chk .ic,.campus .cdot .ic{opacity:0;transition:transform .32s cubic-bezier(.3, 1.5, .4, 1), opacity var(--dur-2);transform:scale(.4)}.campus .chk.d .ic,.campus .chapter.hit .cdot .ic{opacity:1;transform:none}.campus .toast{box-shadow:var(--e2);font-weight:var(--fw-med)}.campus .bar2 i,.campus .meter i{transition:width .6s var(--ease)}
