:root{--cover: #1e3a64;--cover-ink: #f3f6fb;--cover-mute: rgba(243, 246, 251, .66);--cover-soft: rgba(255, 255, 255, .1);--paper: #fbfcfd;--ink: #1b2430;--ink-soft: #5d6878;--rule: #e4e9f0;--on-accent: #1b2430;--blank: #c9d3e0;--w: 760px;--gutter: 12px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--font: "Bricolage Grotesque", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;color-scheme:light}@media (prefers-color-scheme: dark){:root{--cover: #12233b;--cover-soft: rgba(255, 255, 255, .08);--paper: #18212f;--ink: #e8edf4;--ink-soft: #98a4b5;--rule: #263243;color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--cover)}body{margin:0;background:var(--cover);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}body:before{content:"";position:fixed;inset:0 0 auto 0;height:var(--safe-top);background:var(--cover);z-index:30}button{font:inherit;color:inherit}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.masthead,.tabbar-inner,.sheet-wrap{width:100%;max-width:var(--w);margin:0 auto;padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px))}.masthead{padding-top:calc(var(--safe-top) + 30px);padding-bottom:22px;color:var(--cover-ink)}.masthead h1{margin:0 4px 22px;font-size:clamp(2.6rem,12vw,4rem);font-weight:800;line-height:.92;letter-spacing:-.04em;font-variation-settings:"opsz" 96}.semesters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border-radius:14px;background:var(--cover-soft)}.semester{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;min-width:0;padding:9px 9px 8px;border-radius:10px;background:transparent;color:var(--cover-mute);text-align:left;cursor:pointer;transition:background-color .18s ease,color .18s ease}.semester-level,.semester-term{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.semester-level{font-size:clamp(.8125rem,3.5vw,.9375rem);font-weight:700;line-height:1.2}.semester-term{margin-top:1px;font-size:.75rem;font-weight:500;line-height:1.3;opacity:.8}.semester[aria-pressed=true]{background:var(--paper);color:var(--ink)}@media (hover: hover){.semester[aria-pressed=false]:hover{color:var(--cover-ink)}}.semester:focus-visible{outline:2px solid var(--cover-ink);outline-offset:2px}.tabbar{position:sticky;top:var(--safe-top);z-index:10;background:var(--cover)}.tabs{display:flex;gap:3px;padding-top:8px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:1 0 auto;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:11px 12px 14px;border-radius:12px 12px 0 0;background:color-mix(in srgb,var(--accent) 58%,var(--cover));color:var(--on-accent);text-align:left;cursor:pointer;transform:translateY(7px);transition:transform .22s cubic-bezier(.2,.8,.2,1),background-color .22s ease}.tab[aria-selected=true]{background:var(--accent);transform:none}@media (hover: hover){.tab[aria-selected=false]:hover{background:color-mix(in srgb,var(--accent) 78%,var(--cover));transform:translateY(4px)}}.tab:focus-visible{outline:2px solid var(--on-accent);outline-offset:-5px}.tab-name{display:block;font-size:.875rem;font-weight:750;line-height:1.1;letter-spacing:-.005em;white-space:nowrap}.tab-code{display:none;margin-top:3px;font-size:.75rem;font-weight:500;opacity:.72;white-space:nowrap}@media (min-width: 600px){.tab{padding:12px 16px 15px}.tab-name{font-size:.9375rem}.tab-code{display:block}}.tab-edge{height:8px;background:var(--accent)}.sheet-wrap{flex:1;display:flex}.sheet{flex:1;min-width:0;display:flex;flex-direction:column;min-height:60vh;background:var(--paper);padding-bottom:calc(var(--safe-bottom) + 32px)}.sheet--plain{border-radius:18px 18px 0 0;overflow:hidden}@media (min-width: 760px){.sheet-wrap{padding-bottom:48px}.sheet{border-radius:0 0 18px 18px;overflow:hidden}.sheet--plain{border-radius:18px}}.sheet-body{animation:sheet-in .24s ease-out}@keyframes sheet-in{0%{opacity:0;transform:translateY(6px)}}.sheet-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:12px 20px 20px;background:var(--accent);color:var(--on-accent)}.sheet--plain .sheet-head{padding-top:22px}.sheet-head h2{margin:0;font-size:clamp(2rem,9vw,2.75rem);font-weight:800;line-height:.95;letter-spacing:-.035em;font-variation-settings:"opsz" 96}.sheet-code,.sheet-count{margin:0;font-size:.875rem;font-weight:600;opacity:.72}.sheet-code{margin-top:8px}.sheet-count{flex:none;white-space:nowrap}.guides{list-style:none;margin:0;padding:8px 0 0}.guide{display:flex;align-items:center;gap:14px;padding:14px 20px;color:inherit;text-decoration:none;transition:background-color .15s ease}.guides li+li .guide{border-top:1px solid var(--rule)}.guide:active{background:color-mix(in srgb,var(--accent) 18%,var(--paper))}@media (hover: hover){.guide:hover{background:color-mix(in srgb,var(--accent) 12%,var(--paper))}}.guide:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.guide-icon{flex:none;display:grid;place-items:center;width:40px;height:48px;border-radius:5px 12px 5px 5px;background:color-mix(in srgb,var(--accent) 42%,var(--paper));color:var(--ink)}.guide-text{flex:1;min-width:0}.guide-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:1rem;font-weight:650;line-height:1.3}.guide-file{display:block;margin-top:3px;font-size:.8125rem;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guide-go{flex:none;color:var(--ink-soft)}.empty{max-width:32rem;padding:40px 24px}.empty h3{margin:0 0 8px;font-size:1.25rem;font-weight:750;line-height:1.25;letter-spacing:-.01em}.empty p{margin:0;font-size:.9375rem;color:var(--ink-soft)}.empty code{padding:1px 6px;border-radius:6px;background:var(--rule);color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em;white-space:nowrap}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
