:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:oklch(98.4% .005 84);--paper-sunken:oklch(96% .008 82);--paper-raised:oklch(99.6% .003 84);--paper-tint:oklch(97% .012 80);--ink:oklch(27% .02 262);--ink-2:oklch(45% .016 262);--ink-3:oklch(60% .013 262);--ink-4:oklch(72% .01 262);--rule:oklch(90.5% .008 80);--rule-strong:oklch(83% .011 80);--proof:oklch(51% .155 27);--proof-ink:oklch(43% .15 27);--proof-soft:oklch(95.5% .028 30);--proof-line:oklch(84% .07 30);--moss:oklch(46% .085 148);--moss-soft:oklch(95% .03 148);--moss-line:oklch(83% .055 148);--amber:oklch(52% .105 68);--amber-soft:oklch(96% .036 78);--amber-line:oklch(85% .07 78);--focus:oklch(52% .13 250);--shadow-page:0 1px 2px oklch(30% .02 262/.05), 0 8px 28px -12px oklch(30% .02 262/.14);--shadow-pop:0 2px 6px oklch(30% .02 262/.08), 0 16px 40px -16px oklch(30% .02 262/.28);--sans:"Pretendard Variable", Pretendard, -apple-system, "Apple SD Gothic Neo", system-ui, sans-serif;--serif:"Newsreader", "Nanum Myeongjo", "Apple SD Gothic Neo", ui-serif, Georgia, serif;--mono:"IBM Plex Mono", "Pretendard Variable", "SFMono-Regular", ui-monospace, Menlo, monospace;--s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.5rem;--s6:2rem;--s7:3rem;--s8:clamp(3rem, 7vw, 5.5rem);--r-sm:3px;--r:6px;--r-lg:10px;--ease:cubic-bezier(.22, 1, .36, 1);--fast:.12s;--mid:.22s}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:oklch(22.5% .012 262);--paper-sunken:oklch(19.5% .012 262);--paper-raised:oklch(26% .013 262);--paper-tint:oklch(28% .016 262);--ink:oklch(92% .008 84);--ink-2:oklch(76% .01 84);--ink-3:oklch(62% .011 84);--ink-4:oklch(50% .012 84);--rule:oklch(32% .013 262);--rule-strong:oklch(40% .015 262);--proof:oklch(71% .125 30);--proof-ink:oklch(78% .11 30);--proof-soft:oklch(30% .048 30);--proof-line:oklch(44% .08 30);--moss:oklch(72% .095 150);--moss-soft:oklch(28% .04 150);--moss-line:oklch(42% .06 150);--amber:oklch(76% .095 78);--amber-soft:oklch(30% .04 78);--amber-line:oklch(44% .065 78);--focus:oklch(70% .11 250);--shadow-page:0 1px 2px oklch(0% 0 0/.3), 0 10px 30px -14px oklch(0% 0 0/.6);--shadow-pop:0 2px 8px oklch(0% 0 0/.35), 0 18px 44px -18px oklch(0% 0 0/.7)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;word-break:keep-all;overflow-wrap:anywhere;margin:0;font-size:15px;line-height:1.6}h1,h2,h3,h4{letter-spacing:-.014em;margin:0;font-weight:600;line-height:1.25}p{margin:0}a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}button,input,textarea,select{font:inherit;color:inherit}:where(button,a,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}::selection{background:color-mix(in oklab, var(--focus) 24%, transparent)}*{scrollbar-width:thin;scrollbar-color:var(--rule-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--rule-strong);background-clip:content-box;border:3px solid #0000;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--ink-4);background-clip:content-box}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.label{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:600}.meta{color:var(--ink-3);font-size:12.5px}.btn{align-items:center;gap:var(--s2);border-radius:var(--r);border:1px solid var(--rule-strong);background:var(--paper-raised);color:var(--ink);cursor:pointer;white-space:nowrap;transition:background var(--fast) var(--ease), border-color var(--fast) var(--ease), transform var(--fast) var(--ease), color var(--fast) var(--ease);padding:.44rem .82rem;font-size:13.5px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:var(--paper-tint);border-color:var(--ink-4)}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn-primary:hover:not(:disabled){background:var(--ink-2);border-color:var(--ink-2)}.btn-ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--paper-tint);color:var(--ink);border-color:#0000}.btn-proof{color:var(--proof-ink);border-color:var(--proof-line);background:var(--proof-soft)}.btn-proof:hover:not(:disabled){background:color-mix(in oklab, var(--proof-soft) 70%, var(--proof) 12%);border-color:var(--proof)}.btn-sm{padding:.28rem .58rem;font-size:12.5px}.field{gap:.4rem;display:grid}.field>span{color:var(--ink-2);font-size:12.5px;font-weight:600}.field>small{color:var(--ink-3);font-size:12px}.input,.textarea,.select{border:1px solid var(--rule-strong);border-radius:var(--r);background:var(--paper-raised);width:100%;color:var(--ink);transition:border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);padding:.55rem .7rem}.input::placeholder,.textarea::placeholder{color:var(--ink-4)}.input:focus,.textarea:focus,.select:focus{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in oklab, var(--focus) 16%, transparent);outline:none}.textarea{resize:vertical;min-height:5rem;font-family:var(--mono);font-size:13px;line-height:1.7}.tag{letter-spacing:.01em;white-space:nowrap;border:1px solid var(--rule-strong);color:var(--ink-2);background:var(--paper-sunken);border-radius:99px;flex:none;align-items:center;gap:.3rem;padding:.12rem .46rem;font-size:11.5px;font-weight:600;display:inline-flex}.tag-moss{color:var(--moss);border-color:var(--moss-line);background:var(--moss-soft)}.tag-amber{color:var(--amber);border-color:var(--amber-line);background:var(--amber-soft)}.tag-proof{color:var(--proof-ink);border-color:var(--proof-line);background:var(--proof-soft)}.notice{border-radius:var(--r);border:1px solid var(--proof-line);background:var(--proof-soft);color:var(--proof-ink);padding:.6rem .8rem;font-size:13.5px}.notice-moss{border-color:var(--moss-line);background:var(--moss-soft);color:var(--moss)}.hr{background:var(--rule);border:0;height:1px;margin:0}.code-chip{font-family:var(--mono);border-radius:var(--r-sm);background:var(--paper-tint);border:1px solid var(--rule);padding:.08em .36em;font-size:.86em}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{flex-direction:column;min-height:100%;display:flex}.topbar{z-index:40;align-items:center;gap:var(--s5);padding:0 clamp(var(--s4), 3vw, var(--s6));background:color-mix(in oklab, var(--paper) 88%, transparent);-webkit-backdrop-filter:saturate(1.6)blur(10px);backdrop-filter:saturate(1.6)blur(10px);border-bottom:1px solid var(--rule);flex:none;height:54px;display:flex;position:sticky;top:0}.wordmark{white-space:nowrap;font-family:var(--serif);letter-spacing:-.01em;color:var(--ink);flex:none;align-items:baseline;gap:.45rem;font-size:17px;font-weight:500;text-decoration:none;display:inline-flex}.wordmark b{font-weight:600}.wordmark i{font-style:normal;font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--proof);font-size:10px;font-weight:700;transform:translateY(-1px)}.topnav{overscroll-behavior-x:contain;scrollbar-width:none;align-items:center;gap:.15rem;min-width:0;margin-right:auto;display:flex;overflow-x:auto}.topnav::-webkit-scrollbar{display:none}.topnav a{white-space:nowrap;border-radius:var(--r);color:var(--ink-3);transition:color var(--fast) var(--ease), background var(--fast) var(--ease);flex:none;padding:.34rem .62rem;font-size:13.5px;font-weight:500;text-decoration:none;position:relative}.topnav a:hover{color:var(--ink);background:var(--paper-tint)}.topnav a.active{color:var(--ink);font-weight:600}.topnav a.active:after{content:"";background:var(--ink);border-radius:2px;height:2px;position:absolute;bottom:-.62rem;left:.62rem;right:.62rem}.topbar-right{align-items:center;gap:var(--s2);flex:none;display:flex}.whoami{padding-left:var(--s3);border-left:1px solid var(--rule);flex:none;align-items:center;gap:.5rem;display:flex}.whoami-name,.whoami-role{white-space:nowrap}.whoami-name{font-size:13px;font-weight:600;line-height:1.2}.whoami-role{color:var(--ink-3);font-size:11px;line-height:1.2}.icon-btn{border-radius:var(--r);width:32px;height:32px;color:var(--ink-3);cursor:pointer;transition:background var(--fast) var(--ease), color var(--fast) var(--ease);background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--paper-tint);color:var(--ink)}.page{width:100%;max-width:1160px;padding:var(--s7) clamp(var(--s4), 3vw, var(--s6)) var(--s8);flex:1;margin:0 auto}.page-wide{max-width:1240px}.page-head{align-items:flex-end;gap:var(--s5);padding-bottom:var(--s4);margin-bottom:var(--s5);border-bottom:1.5px solid var(--ink-4);display:flex}.page-head-text{flex:1;min-width:0}.page-head h1{font-family:var(--serif);letter-spacing:-.02em;font-size:clamp(1.55rem,3vw,2rem);font-weight:500}.page-head p{color:var(--ink-3);max-width:56ch;margin-top:.4rem;font-size:14px}.page-head-actions{gap:var(--s2);flex:none;padding-bottom:.2rem;display:flex}.section{margin-top:var(--s7)}.section-head{align-items:baseline;gap:var(--s3);margin-bottom:var(--s3);padding-bottom:var(--s2);border-bottom:1px solid var(--rule);display:flex}.section-head h2{letter-spacing:-.01em;font-size:15px;font-weight:650}.section-head .count{color:var(--ink-4);font-variant-numeric:tabular-nums;font-size:12.5px}.section-head .spacer{margin-left:auto}.roster{border-top:1px solid var(--rule)}.row{align-items:center;gap:var(--s4);border-bottom:1px solid var(--rule);color:inherit;transition:background var(--fast) var(--ease);padding:.78rem .6rem;text-decoration:none;display:grid}a.row:hover,button.row:hover{background:var(--paper-tint)}button.row{border:0;border-bottom:1px solid var(--rule);text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0}.row-main{min-width:0}.row-title,.row-sub{display:block}.row-title{letter-spacing:-.008em;text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600;overflow:hidden}.row-sub{color:var(--ink-3);margin-top:.12rem;font-size:12.5px}.row-side{align-items:center;gap:var(--s3);justify-self:end;display:flex}.row-num{font-variant-numeric:tabular-nums;color:var(--ink-2);font-size:13px}.student-row{grid-template-columns:1.6fr auto}.doc-row{grid-template-columns:1fr auto}.bar{background:var(--rule);border-radius:99px;flex:none;width:78px;height:5px;overflow:hidden}.bar>i{background:var(--moss);height:100%;transition:width var(--mid) var(--ease);border-radius:99px;display:block}.empty{padding:var(--s7) var(--s5);border:1px dashed var(--rule-strong);border-radius:var(--r-lg);background:var(--paper-sunken);text-align:left;max-width:60ch}.empty h3{font-family:var(--serif);margin-bottom:.4rem;font-size:1.1rem;font-weight:500}.empty p{color:var(--ink-3);margin-bottom:var(--s4);font-size:13.5px}.empty ol{margin:0 0 var(--s4);color:var(--ink-2);padding-left:1.2rem;font-size:13.5px}.empty li{margin:.3rem 0}.gate{min-height:100%;padding:var(--s6) var(--s4);grid-template-columns:1fr;place-items:center;display:grid}@media (width>=900px){.gate{gap:var(--s8);grid-template-columns:1.05fr .95fr;max-width:1080px;margin:0 auto}}.gate-pitch{max-width:46ch}.gate-pitch .wordmark{margin-bottom:var(--s5);font-size:22px}.gate-pitch h1{font-family:var(--serif);letter-spacing:-.025em;font-size:clamp(1.9rem,4.4vw,2.9rem);font-weight:500;line-height:1.22}.gate-pitch h1 em{color:var(--proof);font-style:italic}.gate-pitch>p{margin-top:var(--s4);color:var(--ink-2);font-size:15px;line-height:1.75}.gate-sample{margin-top:var(--s6);border:1px solid var(--rule);border-radius:var(--r-lg);background:var(--paper-raised);box-shadow:var(--shadow-page);overflow:hidden}.gate-sample-head{border-bottom:1px solid var(--rule);background:var(--paper-sunken);color:var(--ink-4);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.35rem;padding:.5rem .7rem;font-size:11px;font-weight:600;display:flex}.gate-sample-body{grid-template-columns:1fr 1fr;display:grid}.gate-sample-body pre{font-family:var(--mono);color:var(--ink-2);border-right:1px solid var(--rule);white-space:pre;margin:0;padding:.9rem;font-size:11.5px;line-height:1.75;overflow:hidden}.gate-sample-body .md{padding:.9rem;font-size:13px;overflow:hidden}.gate-form{width:min(100%,380px);padding:var(--s6);border-radius:var(--r-lg);border:1px solid var(--rule-strong);background:var(--paper-raised);box-shadow:var(--shadow-page);gap:var(--s4);display:grid}.gate-form h2{font-size:1.05rem}.gate-form .switcher{border-radius:var(--r);background:var(--paper-sunken);border:1px solid var(--rule);gap:.15rem;padding:3px;display:flex}.gate-form .switcher button{border-radius:var(--r-sm);color:var(--ink-3);cursor:pointer;transition:background var(--fast) var(--ease), color var(--fast) var(--ease);background:0 0;border:0;flex:1;padding:.36rem;font-size:12.5px;font-weight:600}.gate-form .switcher button[aria-pressed=true]{background:var(--paper-raised);color:var(--ink);box-shadow:0 1px 2px oklch(0% 0 0/.06)}.toasts{z-index:90;bottom:var(--s5);gap:var(--s2);pointer-events:none;width:min(92vw,420px);display:grid;position:fixed;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;align-items:flex-start;gap:var(--s3);border-radius:var(--r);background:var(--ink);color:var(--paper);box-shadow:var(--shadow-pop);animation:toast-in var(--mid) var(--ease) both;padding:.6rem .85rem;font-size:13.5px;display:flex}.toast[data-tone=error]{background:var(--proof-ink)}.toast[data-tone=ok]{background:var(--moss)}.toast button{color:inherit;opacity:.7;cursor:pointer;background:0 0;border:0;margin-left:auto}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}.panel{border:1px solid var(--rule-strong);border-radius:var(--r-lg);background:var(--paper-raised);overflow:hidden}.panel-head{align-items:center;gap:var(--s3);border-bottom:1px solid var(--rule);background:var(--paper-sunken);padding:.7rem .9rem;display:flex}.panel-head h3{font-size:13.5px;font-weight:650}.panel-body{padding:var(--s5);gap:var(--s4);display:grid}.grid-2{gap:var(--s4);grid-template-columns:1fr;display:grid}@media (width>=640px){.grid-2{grid-template-columns:1fr 1fr}}.loading{min-height:50vh;color:var(--ink-4);place-items:center;font-size:13.5px;display:grid}@media (width<=760px){.topbar{gap:var(--s3);height:50px;padding:0 var(--s3)}.wordmark{font-size:15px}.topbar .wordmark .long{display:none}.page{padding-top:var(--s5)}.page-head{align-items:stretch;gap:var(--s3);flex-direction:column}.page-head-actions{flex-wrap:wrap;padding-bottom:0}.row{gap:var(--s3);padding:.7rem .2rem}.student-row,.doc-row{grid-template-columns:1fr}.row-side{flex-wrap:wrap;justify-self:start}}@media (width<=480px){.whoami{padding-left:var(--s2);border-left:0}.whoami-name{font-size:12px}.whoami-role{display:none}}.bell-wrap{flex:none;position:relative}.bell{position:relative}.bell-count{background:var(--proof);color:oklch(99% 0 0);font-variant-numeric:tabular-nums;border:1.5px solid var(--paper);border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:flex;position:absolute;top:-2px;right:-3px}.bell-panel{z-index:60;background:var(--paper-raised);border:1px solid var(--rule-strong);border-radius:var(--r-lg);width:min(340px,100vw - 2rem);box-shadow:var(--shadow-pop);animation:bell-in var(--mid) var(--ease);position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}@keyframes bell-in{0%{opacity:0;transform:translateY(-6px)}}.bell-head{align-items:center;gap:var(--s2);padding:.5rem var(--s3) .5rem var(--s4);border-bottom:1px solid var(--rule);font-size:13px;display:flex}.bell-empty{padding:var(--s5) var(--s4);margin:0}.bell-list{max-height:min(60vh,420px);margin:0;padding:0;list-style:none;overflow-y:auto}.bell-list li+li{border-top:1px solid var(--rule)}.bell-item{gap:var(--s2);width:100%;padding:var(--s3) var(--s4);text-align:left;cursor:pointer;font:inherit;color:inherit;transition:background var(--fast) var(--ease);background:0 0;border:0;align-items:flex-start;display:flex;position:relative}.bell-item:hover{background:var(--paper-tint)}.bell-item[data-unread=true]{background:var(--paper-sunken)}.bell-item[data-unread=true]:before{content:"";background:var(--proof);border-radius:50%;width:5px;height:5px;margin-top:.45rem;position:absolute;left:5px}.bell-item .tag{flex:none;margin-top:1px}.bell-item-text{flex-direction:column;gap:2px;min-width:0;display:flex}.bell-item-title{color:var(--ink);font-size:13px;font-weight:600}.bell-item-body{color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12.5px;display:-webkit-box;overflow:hidden}.bell-item .meta{font-size:11.5px}.live-dot{background:var(--ink-4);vertical-align:.05em;border-radius:50%;flex:none;width:7px;height:7px;margin-right:.45rem;display:inline-block}.live-dot[data-typing=true]{background:var(--moss);box-shadow:0 0 0 3px oklch(from var(--moss) l c h / .22);animation:1.3s ease-in-out infinite pulse}.tag-live{color:var(--moss);border-color:var(--moss-line);background:var(--moss-soft)}.tag-live:before{content:"";vertical-align:.08em;background:currentColor;border-radius:50%;width:5px;height:5px;margin-right:.35rem;animation:1.3s ease-in-out infinite pulse;display:inline-block}@media (prefers-reduced-motion:reduce){.bell-panel,.live-dot,.tag-live:before{animation:none}}.desk{flex-direction:column;height:calc(100dvh - 54px);display:flex;overflow:hidden}.desk-head{align-items:center;gap:var(--s3);padding:.55rem clamp(var(--s3), 2vw, var(--s5));border-bottom:1px solid var(--rule);background:var(--paper);flex:none;min-height:50px;display:flex}.desk-crumb{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex;overflow:hidden}.desk-title{letter-spacing:-.01em;border-radius:var(--r);width:100%;min-width:4ch;max-width:42ch;transition:border-color var(--fast) var(--ease), background var(--fast) var(--ease);background:0 0;border:1px solid #0000;margin-left:-.4rem;padding:.16rem .4rem;font-size:14.5px;font-weight:650}.desk-title:hover:not(:focus){border-color:var(--rule)}.desk-title:focus{border-color:var(--focus);background:var(--paper-raised);outline:none}.desk-title:disabled{color:var(--ink);opacity:1}.desk-actions{align-items:center;gap:var(--s2);flex:none;display:flex}.savestate{color:var(--ink-3);font-variant-numeric:tabular-nums;padding-right:var(--s3);border-right:1px solid var(--rule);align-items:center;gap:.4rem;font-size:12px;display:inline-flex}.savestate:before{content:"";background:var(--moss);width:6px;height:6px;transition:background var(--fast) var(--ease);border-radius:50%}.savestate[data-state=dirty]:before{background:var(--amber)}.savestate[data-state=saving]:before{background:var(--amber);animation:1.1s ease-in-out infinite pulse}.savestate[data-state=error]:before{background:var(--proof)}@keyframes pulse{50%{opacity:.25}}.toolbar{padding:.3rem clamp(var(--s3), 2vw, var(--s5));border-bottom:1px solid var(--rule);background:var(--paper-sunken);overscroll-behavior-x:contain;scrollbar-width:none;flex-wrap:nowrap;flex:none;align-items:center;gap:.12rem;display:flex;overflow-x:auto}.toolbar::-webkit-scrollbar{display:none}.toolbar .sep,.toolbar .tool,.toolbar .viewmode{flex:none}.toolbar .sep{background:var(--rule-strong);width:1px;height:18px;margin:0 .35rem}.toolbar .spacer{margin-left:auto}.tool{border-radius:var(--r-sm);min-width:30px;height:28px;color:var(--ink-2);cursor:pointer;transition:background var(--fast) var(--ease), color var(--fast) var(--ease);background:0 0;border:1px solid #0000;place-items:center;padding:0 .42rem;font-size:12.5px;font-weight:600;display:inline-grid}.tool:hover{background:var(--paper-raised);color:var(--ink);border-color:var(--rule)}.tool[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.tool-wide{letter-spacing:-.01em;min-width:0;padding:0 .55rem;font-size:12px;font-weight:600}.tool-b{font-weight:800}.tool-i{font-style:italic;font-family:var(--serif)}.tool-s{text-decoration:line-through}.tool-mono{font-family:var(--mono);font-size:12px}.split{flex:1;min-height:0;display:flex;position:relative}.split[data-mode=write] .pane-preview,.split[data-mode=read] .pane-write{display:none}.split[data-mode=write] .pane-write,.split[data-mode=read] .pane-preview{flex:100%!important}.split[data-mode=write] .gutter,.split[data-mode=read] .gutter{display:none}.pane{flex-direction:column;min-width:0;display:flex;overflow:hidden}.pane-write{background:var(--paper)}.pane-preview{background:var(--paper-sunken)}.gutter{cursor:col-resize;background:linear-gradient(90deg, transparent 0 4px, var(--rule) 4px 5px, color-mix(in oklab, var(--rule) 45%, transparent) 5px 7px, transparent 7px);width:11px;transition:background-color var(--fast) var(--ease);flex:none;position:relative}.gutter:after{content:"";background:var(--rule-strong);opacity:0;width:3px;height:34px;transition:opacity var(--fast) var(--ease);border-radius:99px;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.gutter:hover:after,.gutter[data-dragging=true]:after{opacity:1}.gutter[data-dragging=true]{background-color:color-mix(in oklab, var(--focus) 10%, transparent)}.pane-write .cm-editor{background:0 0;height:100%}.pane-write .cm-scroller{font-family:var(--mono);padding:var(--s5) 0 40vh;font-size:13.5px;line-height:1.78}.pane-write .cm-content{padding:0 clamp(var(--s4), 2.4vw, var(--s6));caret-color:var(--proof)}.pane-write .cm-line{padding:0}.pane-write .cm-cursor{border-left-width:2px;border-color:var(--proof)}.pane-write .cm-gutters{color:var(--ink-4);background:0 0;border:0}.pane-write .cm-lineNumbers .cm-gutterElement{padding:0 .6rem 0 var(--s4);font-variant-numeric:tabular-nums;font-size:11.5px}.pane-write .cm-activeLine{background:color-mix(in oklab, var(--paper-tint) 55%, transparent)}.pane-write .cm-activeLineGutter{color:var(--ink-2);background:0 0}.pane-write .cm-selectionBackground{background:color-mix(in oklab, var(--focus) 20%, transparent)!important}.pane-write .cm-content ::selection{background:color-mix(in oklab, var(--focus) 20%, transparent)!important}.pane-write .cm-focused{outline:none}.pane-write .cm-placeholder{color:var(--ink-4);font-style:italic}.cm-host{height:100%;position:relative}.cm-host[data-dropping=true]:after{content:"여기에 놓으면 이미지가 문서에 삽입됩니다";z-index:5;background:color-mix(in oklab, var(--focus) 10%, var(--paper) 82%);border:2px dashed var(--focus);border-radius:var(--r);color:var(--focus);pointer-events:none;place-items:center;font-size:13.5px;font-weight:600;display:grid;position:absolute;inset:0}.preview-scroll{padding:var(--s6) var(--s4) 30vh;flex:1;overflow-y:auto}.preview-page{max-width:68ch;padding:clamp(var(--s5), 4vw, var(--s7)) clamp(var(--s4), 4vw, var(--s7));background:var(--paper-raised);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow-page);min-height:40vh;margin:0 auto}.preview-empty{color:var(--ink-4);font-family:var(--serif);font-size:15px;font-style:italic}.marginalia{max-width:68ch;margin:var(--s5) auto 0;gap:var(--s3);display:grid}.marginalia-head{align-items:center;gap:var(--s2);letter-spacing:.09em;text-transform:uppercase;color:var(--proof);font-size:11px;font-weight:700;display:flex}.marginalia-head:after{content:"";background:var(--proof-line);flex:1;height:1px}.mark-note{border:1px solid var(--proof-line);border-radius:var(--r);background:var(--proof-soft);animation:note-in var(--mid) var(--ease) both;padding:.7rem .85rem .7rem 1.1rem;font-size:13.5px;line-height:1.65;position:relative}.mark-note:before{content:"";background:var(--proof);border-radius:99px;width:3px;position:absolute;top:.7rem;bottom:.7rem;left:0}.mark-note[data-resolved=true]{border-color:var(--rule);color:var(--ink-3);background:0 0}.mark-note[data-resolved=true]:before{background:var(--rule-strong)}.mark-note-head{color:var(--proof-ink);align-items:center;gap:.45rem;margin-bottom:.28rem;font-size:12px;display:flex}.mark-note[data-resolved=true] .mark-note-head{color:var(--ink-3)}.mark-note-head b{font-weight:700}.mark-note-head .spacer{margin-left:auto}.mark-note-body{white-space:pre-wrap;color:var(--ink)}.mark-note[data-resolved=true] .mark-note-body{color:var(--ink-3);text-decoration:line-through;-webkit-text-decoration-color:var(--rule-strong);text-decoration-color:var(--rule-strong)}.mark-note-anchor{border-left:2px solid var(--proof-line);background:color-mix(in oklab, var(--paper) 55%, transparent);font-family:var(--mono);color:var(--ink-3);white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:.35rem;padding:.25rem .45rem;font-size:11.5px;display:block}@keyframes note-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.mark-compose{gap:var(--s2);display:grid}.drawer{border-left:1px solid var(--rule);background:var(--paper);flex-direction:column;flex:none;width:min(340px,42vw);display:flex;overflow:hidden}.drawer-tabs{border-bottom:1px solid var(--rule);background:var(--paper-sunken);flex:none;display:flex}.drawer-tabs button{cursor:pointer;color:var(--ink-3);transition:color var(--fast) var(--ease), border-color var(--fast) var(--ease);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:.55rem .3rem;font-size:12.5px;font-weight:600}.drawer-tabs button:hover{color:var(--ink)}.drawer-tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--proof)}.drawer-body{padding:var(--s4);flex:1;overflow-y:auto}.cheat{gap:.1rem;display:grid}.cheat-group{margin-bottom:var(--s4)}.cheat-group>h4{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-4);border-bottom:1px solid var(--rule);margin-bottom:.4rem;padding-bottom:.3rem;font-size:11px;font-weight:700}.cheat-item{gap:var(--s2);border-radius:var(--r);text-align:left;cursor:pointer;width:100%;transition:background var(--fast) var(--ease);background:0 0;border:0;grid-template-columns:1fr auto;align-items:center;padding:.4rem;display:grid}.cheat-item:hover{background:var(--paper-tint)}.cheat-item code{font-family:var(--mono);color:var(--ink-2);white-space:pre-wrap;overflow-wrap:anywhere;font-size:11.5px}.cheat-item span{color:var(--ink-4);white-space:nowrap;font-size:11.5px}.cheat-item:hover span{color:var(--proof)}.assets{gap:var(--s2);grid-template-columns:repeat(auto-fill,minmax(88px,1fr));display:grid}.asset{aspect-ratio:1;border-radius:var(--r);border:1px solid var(--rule);background:var(--paper-sunken);cursor:pointer;padding:0;position:relative;overflow:hidden}.asset img{object-fit:cover;width:100%;height:100%;display:block}.asset:hover{border-color:var(--focus)}.asset:hover:after{content:"삽입";background:color-mix(in oklab, var(--ink) 85%, transparent);color:var(--paper);text-align:center;padding:.2rem;font-size:10.5px;font-weight:700;position:absolute;inset:auto 0 0}.dropzone{padding:var(--s5) var(--s3);margin-bottom:var(--s4);border:1px dashed var(--rule-strong);border-radius:var(--r);background:var(--paper-sunken);color:var(--ink-3);text-align:center;cursor:pointer;transition:border-color var(--fast) var(--ease), color var(--fast) var(--ease);place-items:center;gap:.3rem;font-size:12.5px;display:grid}.dropzone:hover{border-color:var(--focus);color:var(--focus)}.revlist{display:grid}.rev{gap:var(--s2);border-bottom:1px solid var(--rule);text-align:left;cursor:pointer;background:0 0;border-top:0;border-left:0;border-right:0;grid-template-columns:1fr auto;align-items:center;width:100%;padding:.5rem .4rem;display:grid}.rev:hover{background:var(--paper-tint)}.rev-when{font-variant-numeric:tabular-nums;font-size:12.5px}.rev-who{color:var(--ink-3);font-size:11.5px}.statusbar{align-items:center;gap:var(--s4);white-space:nowrap;scrollbar-width:none;padding:.3rem clamp(var(--s3), 2vw, var(--s5));border-top:1px solid var(--rule);background:var(--paper-sunken);color:var(--ink-4);font-variant-numeric:tabular-nums;flex:none;font-size:11.5px;display:flex;overflow-x:auto}.statusbar::-webkit-scrollbar{display:none}.statusbar .spacer{margin-left:auto}.statusbar>span{flex:none}.statusbar b{color:var(--ink-3);font-weight:600}.viewmode{border:1px solid var(--rule-strong);border-radius:var(--r);background:var(--paper-sunken);flex:none;gap:2px;padding:2px;display:none}.viewmode button{border-radius:var(--r-sm);cursor:pointer;color:var(--ink-3);transition:background var(--fast) var(--ease), color var(--fast) var(--ease);background:0 0;border:0;padding:.24rem .55rem;font-size:12px;font-weight:600}.viewmode button[aria-pressed=true]{background:var(--ink);color:var(--paper)}@media (width<=900px){.viewmode{display:inline-flex}.split:not([data-mode]) .pane-preview,.split:not([data-mode]) .gutter{display:none}.split:not([data-mode]) .pane-write{flex:100%!important}.drawer{z-index:60;width:min(360px,90vw);box-shadow:var(--shadow-pop);position:fixed;inset:54px 0 0 auto}.desk{height:calc(100dvh - 50px)}.desk-head{min-height:44px;padding:.4rem var(--s3)}.desk-title{font-size:14px}.statusbar .hint{display:none}}.presence{padding-right:var(--s3);border-right:1px solid var(--rule);flex:none;align-items:center;gap:.45rem;display:inline-flex}.presence-dots{display:inline-flex}.presence-dot{width:18px;height:18px;color:var(--paper);background:var(--ink-2);border:1.5px solid var(--paper-raised);transition:box-shadow var(--mid) var(--ease), background var(--fast) var(--ease);border-radius:50%;justify-content:center;align-items:center;margin-left:-5px;font-size:10px;font-style:normal;font-weight:700;line-height:1;display:inline-flex}.presence-dot:first-child{margin-left:0}.presence-dot[data-role=teacher]{background:var(--proof)}.presence-dot[data-me=true]{color:var(--ink-3);box-shadow:inset 0 0 0 1.2px var(--rule-strong);background:0 0}.presence-dot[data-typing=true]{box-shadow:0 0 0 1.5px var(--paper-raised), 0 0 0 3px var(--moss);animation:1.5s ease-in-out infinite presence-beat}.presence-dot[data-typing=true][data-me=true]{box-shadow:inset 0 0 0 1.2px var(--rule-strong), 0 0 0 1.5px var(--paper-raised), 0 0 0 3px var(--moss)}@keyframes presence-beat{50%{box-shadow:0 0 0 1.5px var(--paper-raised), 0 0 0 5.5px color-mix(in oklab, var(--moss) 30%, transparent)}}.presence-label{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;max-width:26ch;font-size:12px;overflow:hidden}.conflict{align-items:center;gap:var(--s2);padding:.5rem clamp(var(--s3), 2vw, var(--s5));background:var(--amber-soft);border-bottom:1px solid var(--amber-line);color:var(--ink);animation:conflict-in var(--mid) var(--ease);flex-wrap:wrap;flex:none;font-size:13px;display:flex}.conflict-text{flex:22ch;min-width:0}.conflict .btn{flex:none}@keyframes conflict-in{0%{opacity:0;transform:translateY(-4px)}}.mark-note[data-fresh=true]{animation:note-arrive 6s var(--ease)}@keyframes note-arrive{0%{background:var(--proof-soft);border-color:var(--proof)}70%{background:var(--proof-soft);border-color:var(--proof)}to{background:inherit}}@media (prefers-reduced-motion:reduce){.presence-dot[data-typing=true],.conflict,.mark-note[data-fresh=true]{animation:none}}@media (width<=760px){.presence-label{display:none}.presence{padding-right:var(--s2)}}.md{font-family:var(--serif);color:var(--ink);font-size:16.5px;line-height:1.78}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 1.05em}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{font-family:var(--sans);letter-spacing:-.02em;margin:1.9em 0 .62em;scroll-margin-top:1rem;font-weight:650;line-height:1.3}.md h1{border-bottom:1px solid var(--rule-strong);margin-top:.2em;padding-bottom:.34em;font-size:1.72em}.md h2{border-bottom:1px solid var(--rule);padding-bottom:.28em;font-size:1.34em}.md h3{font-size:1.13em}.md h4{color:var(--ink-2);font-size:1em}.md h5,.md h6{color:var(--ink-3);letter-spacing:.02em;font-size:.92em}.md a{color:var(--focus);text-decoration:underline;-webkit-text-decoration-color:color-mix(in oklab, var(--focus) 40%, transparent);text-decoration-color:color-mix(in oklab, var(--focus) 40%, transparent)}.md a:hover{text-decoration-color:currentColor}.md strong{font-weight:700}.md em{font-style:italic}.md del,.md s{color:var(--ink-3);text-decoration-thickness:1px}.md ul,.md ol{margin:0 0 1.05em;padding-left:1.45em}.md li{margin:.22em 0}.md li>ul,.md li>ol{margin:.22em 0 .3em}.md ul{padding-left:1.2em;list-style:none}.md ul>li{position:relative}.md ul>li:before{content:"";background:var(--ink-4);border-radius:50%;width:4px;height:4px;position:absolute;top:.82em;left:-.92em}.md ul ul>li:before{box-shadow:inset 0 0 0 1px var(--ink-4);background:0 0}.md ul.contains-task-list{padding-left:1.6em}.md .task-list-item{list-style:none}.md .task-list-item:before{display:none}.md .task-list-item input[type=checkbox]{appearance:none;vertical-align:-.06em;border:1.5px solid var(--ink-4);background:var(--paper-raised);cursor:default;border-radius:2px;width:.92em;height:.92em;margin:0 .45em 0 -1.45em;position:relative}.md .task-list-item input[type=checkbox]:checked{background:var(--ink);border-color:var(--ink)}.md .task-list-item input[type=checkbox]:checked:after{content:"";background:var(--paper);clip-path:polygon(20% 52%,42% 72%,82% 26%,90% 36%,43% 88%,12% 60%);position:absolute;inset:0}.md .task-list-item input[type=checkbox]:checked+*{color:var(--ink-3)}.md blockquote{border-left:2px solid var(--rule-strong);color:var(--ink-2);margin:0 0 1.05em;padding:.1em 0 .1em 1.15em;font-style:italic}.md blockquote>:last-child{margin-bottom:0}.md hr{background:var(--rule-strong);border:0;height:1px;margin:2.2em 0;position:relative;overflow:visible}.md hr:after{content:"◇";background:var(--paper-raised);color:var(--ink-4);padding:0 .6em;font-size:.7em;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.md .table-scroll{margin:0 0 1.2em;overflow-x:auto}.md table{border-collapse:collapse;width:100%;font-family:var(--sans);font-size:.88em;line-height:1.55}.md th,.md td{text-align:left;border-bottom:1px solid var(--rule);vertical-align:top;padding:.5em .75em}.md thead th{color:var(--ink-2);border-bottom:1.5px solid var(--ink-4);background:var(--paper-sunken);white-space:nowrap;font-weight:650}.md tbody tr:last-child td{border-bottom:1px solid var(--rule-strong)}.md tbody tr:hover td{background:color-mix(in oklab, var(--paper-tint) 60%, transparent)}.md th[align=right],.md td[align=right]{text-align:right}.md th[align=center],.md td[align=center]{text-align:center}.md code{font-family:var(--mono);border-radius:var(--r-sm);background:var(--paper-tint);border:1px solid var(--rule);word-break:break-all;padding:.12em .36em;font-size:.855em}.md pre{background:var(--paper-sunken);border:1px solid var(--rule);border-radius:var(--r);margin:0 0 1.2em;padding:.9rem 1rem;font-size:13px;line-height:1.62;overflow-x:auto}.md pre code{font-size:inherit;word-break:normal;white-space:pre;background:0 0;border:0;padding:0}.md pre[data-lang]:before{content:attr(data-lang);font-family:var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-4);margin:-.2rem 0 .6rem;font-size:10.5px;font-weight:600;display:block}.md img{border-radius:var(--r-sm);background:var(--paper-sunken);max-width:100%;height:auto;margin:.4em 0;display:block}.md p>img:only-child{box-shadow:var(--shadow-page);margin:1.2em auto}.md kbd{font-family:var(--sans);border-radius:var(--r-sm);border:1px solid var(--rule-strong);background:var(--paper-raised);border-bottom-width:2px;padding:.1em .4em;font-size:.8em;font-weight:600}.md mark{background:color-mix(in oklab, var(--amber) 26%, transparent);color:inherit;border-radius:2px;padding:.05em .14em}.md .wikilink{color:var(--focus);border-bottom:1px dashed color-mix(in oklab, var(--focus) 50%, transparent);cursor:help;text-decoration:none}.md .callout{border-radius:var(--r);border:1px solid var(--rule-strong);border-left:3px solid var(--cal,var(--ink-4));background:color-mix(in oklab, var(--cal,var(--ink-4)) 7%, var(--paper-raised));font-family:var(--sans);margin:0 0 1.2em;padding:.75rem .95rem;font-size:.9em}.md .callout-title{color:var(--cal,var(--ink-2));align-items:center;gap:.45rem;margin-bottom:.35rem;font-weight:650;display:flex}.md .callout-title-icon{font-size:.95em;line-height:1}.md .callout-body>:last-child{margin-bottom:0}.md .callout-body{color:var(--ink-2)}.md .callout[data-type=note]{--cal:var(--focus)}.md .callout[data-type=tip],.md .callout[data-type=success]{--cal:var(--moss)}.md .callout[data-type=question],.md .callout[data-type=warning]{--cal:var(--amber)}.md .callout[data-type=danger]{--cal:var(--proof)}.md .callout[data-type=quote]{--cal:var(--ink-4)}.md .callout[data-type=example]{--cal:var(--focus)}.md details.callout>summary{cursor:pointer;list-style:none}.md details.callout>summary::-webkit-details-marker{display:none}.md details.callout>summary .callout-title:after{content:"▾";color:var(--ink-4);transition:transform var(--fast) var(--ease);margin-left:auto;font-size:.8em}.md details.callout:not([open])>summary .callout-title:after{transform:rotate(-90deg)}.md .hljs-comment,.md .hljs-quote{color:var(--ink-4);font-style:italic}.md .hljs-keyword,.md .hljs-selector-tag,.md .hljs-literal,.md .hljs-section,.md .hljs-doctag,.md .hljs-type,.md .hljs-name,.md .hljs-strong{color:var(--proof-ink);font-weight:600}.md .hljs-string,.md .hljs-title,.md .hljs-attr,.md .hljs-attribute,.md .hljs-symbol,.md .hljs-bullet,.md .hljs-addition{color:var(--moss)}.md .hljs-number,.md .hljs-variable,.md .hljs-template-variable,.md .hljs-built_in,.md .hljs-class .hljs-title{color:var(--amber)}.md .hljs-meta,.md .hljs-link,.md .hljs-selector-id,.md .hljs-selector-class{color:var(--focus)}.md .hljs-emphasis{font-style:italic}.md .hljs-deletion{color:var(--proof)}
