.gate{color:#f8eee8;background:radial-gradient(circle at 78% 18%,#a34f4f 0,#0000 28%),radial-gradient(circle at 15% 78%,#792f4a 0,#0000 32%),linear-gradient(135deg,#270006 0,#4b0008 38%,#65121e 68%,#310009 100%);place-items:center;min-height:100dvh;padding:48px 24px;display:grid}.gate-inner{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:56px;width:100%;max-width:1080px;display:grid}.gate-brand{letter-spacing:-.01em;color:#fff5ef;align-items:center;gap:9px;margin-bottom:34px;font-size:.9375rem;font-weight:700;display:inline-flex}.gate-brand>span{color:#500000;background:#fff5ef;border-radius:9px;place-items:center;width:30px;height:30px;display:grid}.gate-copy h1{letter-spacing:-.03em;color:#fff4ee;text-shadow:0 3px 22px #17000240;margin:0 0 12px;font-size:clamp(2rem,4.4vw,2.9rem);line-height:1.07}.gate-copy p{color:#dfc0b9;max-width:46ch;margin:0 0 28px;font-size:.9375rem;line-height:1.6}.gate-google{color:#2c1715;cursor:pointer;background:linear-gradient(135deg,#fffaf6,#f3e3dc);border:1px solid #f3cabe;border-radius:11px;justify-content:center;align-items:center;gap:11px;width:min(100%,360px);padding:13px 18px;font-family:inherit;font-size:.9375rem;font-weight:650;text-decoration:none;transition:transform .14s,box-shadow .14s;display:inline-flex;box-shadow:0 16px 40px #17000255,0 0 0 1px #fff2}.gate-google:hover{transform:translateY(-1px);box-shadow:0 20px 48px #17000266,0 0 0 1px #fff3}.gate-google:active{transform:translateY(0)}.gate-google:disabled{cursor:progress;opacity:.72;transform:none}.gate-google:focus-visible{outline-offset:3px;outline:2px solid #f0b5a8}.gate-note{color:#cfa79f;max-width:44ch;margin-top:18px;font-size:.75rem;line-height:1.55;display:block}.gate-note strong{color:#f4d7d0}.gate-preview{position:relative}.gate-preview:before{content:"";pointer-events:none;background:radial-gradient(#f0b5a52e 0,#d97d7426 42%,#0000 72%);border-radius:50%;position:absolute;inset:-12% -6%}.gate-card{color:#3a1d1a;background:linear-gradient(145deg,#fffaf5 0,#f5e7df 100%);border:1px solid #f5c9bb;border-radius:16px;padding:16px 17px 13px;position:relative;box-shadow:0 30px 70px #16000370,0 0 0 1px #fff2}.gate-card>header{background:linear-gradient(90deg,#50000008,#8e3b3b13);border-bottom:1px solid #f0cfc5;justify-content:space-between;align-items:center;margin:-16px -17px 14px;padding:13px 17px 11px;display:flex}.gate-card>header span{letter-spacing:.1em;color:#8a5349;align-items:center;gap:7px;font-size:.625rem;font-weight:700;display:inline-flex}.gate-card>header i{background:#7c2020;border-radius:50%;width:7px;height:7px}.gate-card>header em{color:#1b6b43;background:#1c7a4b1a;border-radius:999px;padding:3px 9px;font-size:.6875rem;font-style:normal;font-weight:700}.gate-week{grid-template-columns:repeat(5,1fr);gap:5px;display:grid}.gate-week>b{letter-spacing:.06em;color:#9a6659;text-align:center;padding-bottom:5px;font-size:.625rem;font-weight:700}.gate-col{background:#5000000a;border-radius:7px;height:190px;position:relative;box-shadow:inset 0 0 0 1px #50000010}.gate-block{color:#fff;border-radius:6px;min-height:26px;padding:5px 6px;position:absolute;left:3px;right:3px;overflow:hidden;box-shadow:0 4px 12px #4a070718}.gate-block b{letter-spacing:.01em;font-size:.5625rem;font-weight:700;line-height:1.25;display:block}.gate-block small{opacity:.82;font-size:.5rem}.gate-block.t-a{background:linear-gradient(135deg,#701b35,#9a536d)}.gate-block.t-b{background:linear-gradient(135deg,#500000,#7b2929)}.gate-block.t-c{background:linear-gradient(135deg,#994f3b,#c2775e)}.gate-card>footer{border-top:1px solid #f0cfc5;flex-wrap:wrap;gap:14px;margin-top:13px;padding-top:11px;display:flex}.gate-card>footer span{color:#8a5349;align-items:center;gap:5px;font-size:.6875rem;font-weight:600;display:inline-flex}@media (max-width:860px){.gate-inner{grid-template-columns:minmax(0,1fr);gap:0}.gate-preview{display:none}}@media (prefers-reduced-motion:reduce){.gate-google{transition:none}}.problem{text-align:left;padding:30px 26px 34px}.problem-mark{color:#c75a5a;background:#b4303018;border-radius:12px;place-items:center;width:42px;height:42px;margin-bottom:16px;display:grid}.problem h2{letter-spacing:-.02em;margin:0 0 7px;font-size:1.3rem}.problem>p{opacity:.86;margin:0 0 18px;font-size:.9375rem;line-height:1.55}.problem-help{gap:9px;max-width:62ch;margin:0;padding:0;list-style:none;display:grid}.problem-help li{opacity:.74;padding-left:18px;font-size:.8125rem;line-height:1.55;position:relative}.problem-help li:before{content:"";opacity:.55;background:currentColor;border-radius:50%;width:5px;height:5px;position:absolute;top:8px;left:3px}.problem-help b{opacity:1;font-weight:700}.gate-error{color:#ffd9d2;background:#b4303024;border:1px solid #e59b9b40;border-radius:10px;gap:9px;width:min(100%,360px);margin:0 0 14px;padding:11px 13px;font-size:.8125rem;line-height:1.5;display:flex}.cal article.block:hover,.cal article.block:focus-visible{z-index:40;outline:none;overflow:visible;box-shadow:0 0 0 2px #fff5}.hover-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#f7e9e4;text-align:left;opacity:0;visibility:hidden;pointer-events:none;z-index:50;background:#1b0206f2;border:1px solid #fff2;border-radius:11px;width:232px;padding:11px 12px 10px;transition:opacity .12s,transform .12s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(-4px);box-shadow:0 18px 44px #00000080}.cal article.block:hover .hover-card,.cal article.block:focus-visible .hover-card{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.cal article.block .hover-card:after{content:"";background:#1b0206f2;border-top:1px solid #fff2;border-left:1px solid #fff2;width:9px;height:9px;margin-left:-4.5px;position:absolute;top:-5px;left:50%;transform:rotate(45deg)}.hover-card>b{align-items:baseline;gap:6px;font-size:.8125rem;font-weight:700;display:flex}.hover-card>b em{opacity:.6;font-size:.625rem;font-style:normal;font-weight:600}.hover-prof{letter-spacing:.02em;opacity:.74;margin:1px 0 9px;font-size:.6875rem;display:block}.hover-card dl{border-top:1px solid #ffffff14;grid-template-columns:1fr 1fr;gap:7px 10px;margin:0 0 9px;padding:9px 0 0;display:grid}.hover-card dt{letter-spacing:.07em;text-transform:uppercase;opacity:.56;font-size:.5625rem}.hover-card dd{margin:1px 0 0;font-size:.8125rem;font-weight:700}.hover-card dd.prof-great{color:#6ee7a8}.hover-card dd.prof-good{color:#b6e39a}.hover-card dd.prof-mixed{color:#f0c98a}.hover-card dd.prof-poor{color:#f29b9b}.hover-card dd.prof-unrated{color:#d8b2aa}.hover-card footer{border-top:1px solid #ffffff14;flex-wrap:wrap;gap:4px 9px;padding-top:8px;display:flex}.hover-card footer span{opacity:.72;align-items:center;gap:4px;font-size:.625rem;display:inline-flex}.hover-card .hover-flag{opacity:.9;background:#ffffff16;border-radius:999px;padding:1px 6px}@media (prefers-reduced-motion:reduce){.hover-card{transition:none}}.term{cursor:pointer;position:relative}.term select{opacity:0;cursor:pointer;width:100%;height:100%;font:inherit;position:absolute;inset:0}.term select:disabled{cursor:not-allowed}.side-add{width:100%;color:inherit;font:inherit;opacity:.9;background:0 0;border:1px solid;border-radius:8px;margin:2px 0 8px;padding:8px 10px;font-size:.8125rem}.side-add:focus{outline-offset:1px;outline:2px solid #c1636380}.course-drop{color:inherit;cursor:pointer;opacity:.55;background:0 0;border:0;border-radius:5px;place-items:center;padding:2px;display:grid}.course-drop:hover{opacity:1;background:#ffffff1a}.compare,.analysis table{border-collapse:collapse;width:100%;margin:0 0 14px;font-size:.8125rem}.compare th,.analysis th{text-align:left;letter-spacing:.08em;text-transform:uppercase;opacity:.55;border-bottom:1px solid #ffffff1a;padding:7px 10px;font-size:.5625rem}.compare td,.analysis td{border-bottom:1px solid #ffffff0d;padding:9px 10px}.compare tbody tr{cursor:pointer}.compare tbody tr:hover{background:#ffffff0a}.compare tr.is-active{background:#b4303020;font-weight:650}.analysis td em{opacity:.55;font-size:.6875rem;font-style:normal}.analysis td.prof-great{color:#6ee7a8}.analysis td.prof-good{color:#b6e39a}.analysis td.prof-mixed{color:#f0c98a}.analysis td.prof-poor{color:#f29b9b}.analysis td.prof-unrated{opacity:.6}.analysis{border-top:1px solid #ffffff14;padding:16px 18px 4px}.analysis h3{letter-spacing:.01em;margin:0 0 10px;font-size:.8125rem}.analysis-note{opacity:.6;max-width:72ch;margin:0 0 14px;font-size:.75rem;line-height:1.55}.rebuild:disabled,.use:disabled{opacity:.6;cursor:not-allowed}.cal-scroll{overflow:visible}@media (max-width:860px){.cal-scroll{overflow:auto hidden}}:root{--class-1:#7c1d2c;--class-2:#2f5d8c;--class-3:#1f6b61;--class-4:#8a601c;--class-5:#5e3a7e}.berry,.mini .berry,.cal article.berry{background:var(--class-1)!important}.blue,.mini .blue,.cal article.blue{background:var(--class-2)!important}.green,.mini .green,.cal article.green{background:var(--class-3)!important}.gold,.mini .gold,.cal article.gold{background:var(--class-4)!important}.purple,.mini .purple,.cal article.purple{background:var(--class-5)!important}.course>i.berry{background:var(--class-1)!important}.course>i.blue{background:var(--class-2)!important}.course>i.green{background:var(--class-3)!important}.course>i.gold{background:var(--class-4)!important}.course>i.purple{background:var(--class-5)!important}.tied-note{opacity:.6;max-width:62ch;margin-top:4px;font-size:.75rem;line-height:1.5;display:block}.confirm-backdrop{z-index:90;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c000366;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.confirm{color:#2c1715;background:linear-gradient(145deg,#fffaf5,#f3e3dc);border:1px solid #f3cabe;border-radius:14px;width:min(100%,380px);padding:22px 22px 18px;box-shadow:0 30px 70px #16000370}.confirm>b{letter-spacing:-.01em;margin-bottom:7px;font-size:1.0625rem;display:block}.confirm>p{opacity:.72;margin:0 0 18px;font-size:.8125rem;line-height:1.55}.confirm>div{justify-content:flex-end;gap:9px;display:flex}.confirm button{font:inherit;cursor:pointer;border-radius:9px;padding:9px 15px;font-size:.8125rem;font-weight:650}.confirm-cancel{color:#2c1715;background:0 0;border:1px solid #d9bdb2}.confirm-cancel:hover{background:#50000010}.confirm-go{color:#fff;background:#8c1f2b;border:1px solid #0000}.confirm-go:hover{background:#a3262f}:root{--rail-closed:58px;--rail-open:216px}.rail{z-index:60;width:var(--rail-closed);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#f6e8e3;background:#1a0206ee;border-right:1px solid #ffffff14;flex-direction:column;gap:6px;padding:14px 10px 16px;transition:width .16s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden auto}.rail:hover,.rail:focus-within{width:var(--rail-open);box-shadow:0 0 60px #0c000266}.rail button,.rail a,.rail .rail-me{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:9px;align-items:center;gap:12px;padding:9px 8px;font-size:.8125rem;text-decoration:none;display:flex}.rail button>b,.rail a>b,.rail .rail-me>b{opacity:0;font-weight:600;transition:opacity .14s,transform .14s;transform:translate(-4px)}.rail:hover button>b,.rail:hover a>b,.rail:hover .rail-me>b,.rail:focus-within button>b,.rail:focus-within a>b,.rail:focus-within .rail-me>b{opacity:1;transform:translate(0)}.rail button:hover,.rail a:hover{background:#ffffff14}.rail button:focus-visible,.rail a:focus-visible{outline-offset:-2px;outline:2px solid #efb9ae}.rail-brand{letter-spacing:-.4px;margin-bottom:10px;font-weight:750!important}.rail-brand>span,.rail-me>i,.rail ul svg,.rail-foot>button>svg,.rail-foot>a>svg{flex:none;width:26px;height:26px}.rail-brand>span{color:#500000;background:#fff5ef;border-radius:8px;place-items:center;display:grid}.rail ul svg,.rail-foot>button>svg,.rail-foot>a>svg{padding:4px}.rail-brand>b{font-size:1rem}.rail ul{gap:3px;margin:0;padding:0;list-style:none;display:grid}.rail ul button.active{background:#ffffff1c;box-shadow:inset 2px 0 #efb9ae}.rail svg{flex:none}.rail-foot{border-top:1px solid #ffffff14;gap:3px;margin-top:auto;padding-top:10px;padding-bottom:4px;display:grid}.rail-me{cursor:default}.rail-me>i{color:#fff;background:#8c1f2b;border-radius:50%;place-items:center;font-size:.6875rem;font-style:normal;font-weight:700;display:grid}.app-page,.inner-page,.minimal-home{padding-left:var(--rail-closed)}@media (max-width:720px){:root{--rail-closed:48px}}@media (prefers-reduced-motion:reduce){.rail,.rail button>b,.rail a>b,.rail .rail-me>b{transition:none}}.course-detail .detail-code{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:7px;margin-bottom:10px;display:flex}.course-detail .detail-code em{letter-spacing:.07em;white-space:nowrap;color:inherit;opacity:.74;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:999px;padding:3px 9px;font-size:.625rem;font-weight:650}.detail-dept{letter-spacing:.07em;text-transform:uppercase;opacity:.5;margin:2px 0 0;font-size:.6875rem}.prof-table table{table-layout:fixed;font-size:.75rem}.prof-table th,.prof-table td{white-space:nowrap;text-overflow:ellipsis;padding:7px 6px 7px 0;overflow:hidden}.prof-table th{letter-spacing:.06em;text-transform:uppercase;opacity:.55;text-align:left;font-size:.5625rem}.prof-table th:first-child,.prof-table td:first-child{width:auto}.prof-table th:nth-child(2),.prof-table td:nth-child(2),.prof-table th:nth-child(3),.prof-table td:nth-child(3),.prof-table th:nth-child(4),.prof-table td:nth-child(4){text-align:right;font-variant-numeric:tabular-nums;width:3.6rem}.prof-table th:nth-child(5),.prof-table td:nth-child(5){text-align:right;width:4.6rem}.course-list>button{align-items:flex-start;gap:14px;height:auto;min-height:76px;padding:13px 16px}.course-list>button>span{flex:1;gap:7px;min-width:0}.course-list>button>span>b,.course-list>button>span>small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.course-list>button>div{white-space:nowrap;flex:none;align-items:center;gap:10px;padding-top:2px;display:flex}.prof-chips{flex-wrap:wrap;gap:5px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.prof-chips li{border-radius:999px;align-items:baseline;gap:5px;max-width:100%;padding:3px 8px;font-size:.6875rem;display:inline-flex}.prof-chips li b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.prof-chips li em{opacity:.85;font-style:normal;font-weight:700}.insight-grid{gap:10px;padding:12px 14px}.insight-grid>div{min-width:0;padding-right:10px}.insight-grid>div:last-child{border-right:0;padding-right:0}.insight-grid span,.insight-grid small{letter-spacing:.05em;white-space:nowrap;text-overflow:ellipsis;font-size:.5625rem;overflow:hidden}:root{--ease:cubic-bezier(.22, .61, .36, 1);--t-hover:.35s;--t-page:.92s;--ease-page:cubic-bezier(.16, .84, .3, 1)}button,a,.course-list>button,.cards>button,.saved-grid>article{transition:background-color var(--t-hover) var(--ease), border-color var(--t-hover) var(--ease), box-shadow var(--t-hover) var(--ease), transform var(--t-hover) var(--ease), opacity var(--t-hover) var(--ease)}.use,.rebuild,.add-plan,.gate-google,.confirm-go,.preference-input>button{position:relative;overflow:hidden}.use:after,.rebuild:after,.add-plan:after,.gate-google:after,.confirm-go:after,.preference-input>button:after{content:"";border-radius:inherit;opacity:0;transition:opacity var(--t-hover) var(--ease), transform .62s var(--ease);pointer-events:none;background:linear-gradient(120deg,#0000 20%,#ffffff26 48%,#ffffff10 56%,#0000 78%);position:absolute;inset:0;transform:translate(-24%)}.use:hover:after,.rebuild:hover:after,.add-plan:hover:after,.gate-google:hover:after,.confirm-go:hover:after,.preference-input>button:hover:after{opacity:1;transform:translate(24%)}.use:hover,.rebuild:hover,.add-plan:hover,.gate-google:hover,.confirm-go:hover{transform:translateY(-1px)}.use:active,.rebuild:active,.add-plan:active,.gate-google:active,.confirm-go:active{transition-duration:90ms;transform:translateY(0)}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}60%{opacity:1}to{opacity:1;transform:translateY(0)}}.app-page,.inner-page,.minimal-home{animation:page-in var(--t-page) var(--ease-page) both}@media (prefers-reduced-motion:reduce){button,a,.course-list>button,.cards>button,.saved-grid>article,.use:after,.rebuild:after,.add-plan:after,.gate-google:after,.confirm-go:after{transition:none}.app-page,.inner-page,.minimal-home{animation:none}}
