:root{--navy:#102751;--navy-deep:#0a1a38;--mint:#3fe0bd;--mint-btn:#1fb89a;--mint-dark:#0f7a66;--paper:#f4f6fa;--card:#ffffff;--paper-2:#eef1f7;--ink:#1b2433;--ink-soft:#4f5a6b;--rule:#dfe4ee;--rule-ink:#1b2433;--gold:#caac4c;--gold-ink:#8a6c1d;--sub:#b9c3da;--orange:#e8833a;--line-on-navy:rgba(255,255,255,0.14);--shade:rgba(27,36,51,0.12);--serif:"Noto Serif KR","Nanum Myeongjo","Batang",serif;--sans:"Pretendard Variable",Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;--ease-out:cubic-bezier(0.2,0.8,0.2,1);--mint-deep:var(--mint-dark);--mint-soft:#dcf7ef;--navy-soft:#3a4a7a;--line:#dfe4ee;--sun:var(--gold);--coral:#ff7a59;--blue:#2f6bff;--danger:#d63c3c;--warn:#b7791f;--radius:18px;--btn-radius:10px;--shadow:0 14px 34px rgba(0,0,0,0.28)}*{box-sizing:border-box}body,html{margin:0;padding:0}body,html{background:var(--paper)}body{font-family:var(--sans);color:var(--ink);min-height:100vh;min-height:100dvh;word-break:keep-all;overflow-wrap:anywhere;-webkit-text-size-adjust:100%}img{max-width:100%}blockquote,dd,dt,figcaption,label,li,p,small,summary,td,th{word-break:keep-all;text-wrap:pretty}h1,h2,h3,h4{word-break:keep-all;text-wrap:balance}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition:none!important;scroll-behavior:auto!important}}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}.card a:not(.btn),.gate a:not(.btn),.paper a:not(.btn),a{color:var(--mint-dark)}.wrap{width:100%;max-width:1120px;margin:0 auto;padding:0 16px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;margin-bottom:8px;background:var(--navy);color:#fff;border-bottom:2px solid var(--gold);box-shadow:0 0 0 100vmax var(--navy);clip-path:inset(0 -100vmax)}.topbar a:focus-visible,.topbar button:focus-visible{outline:3px solid #fff;outline-offset:3px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;color:#fff;text-decoration:none;font-size:16px;min-width:0}.brand img{width:34px;height:auto;flex:none}.brand small{display:block;font-weight:700;font-size:11px;color:var(--gold);letter-spacing:.04em;margin-top:1px}.who{display:flex;gap:8px;align-items:center;flex:none}.link-btn,.who{font-size:13px;color:var(--sub)}.link-btn{background:none;border:0;text-decoration:underline;padding:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:var(--btn-radius);padding:14px 24px;font-weight:800;font-size:16px;text-decoration:none;transition:transform .12s ease,box-shadow .12s ease;min-height:48px}.btn:active{transform:translateY(1px) scale(.99)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--mint);color:var(--navy-deep);font-weight:900;box-shadow:0 3px 0 var(--mint-dark)}.btn:focus-visible{outline:3px solid var(--navy);outline-offset:3px}.btn-primary:hover:not(:disabled){background:#6ae9cd}.btn-navy{background:var(--navy-deep);color:#fff;border:1px solid var(--line-on-navy)}.btn-ghost{background:transparent;color:var(--navy);border:1.5px solid var(--navy)}.btn-ghost:hover:not(:disabled){background:#fff}.card .btn-ghost,.chat .btn-ghost,.gate .btn-ghost,.paper .btn-ghost{color:var(--navy);border-color:var(--line);background:#fff}.btn-small{padding:9px 16px;font-size:14px;min-height:40px}.notice{background:#eef2f8;border:2px solid #c9d3e4;color:#1b2433;border-radius:14px;padding:10px 14px;font-size:14px;margin:0 0 12px}.speaker{display:flex;align-items:flex-end;gap:14px}.char{flex:none;-webkit-user-select:none;user-select:none}.bubble{position:relative;background:#fff;color:var(--ink);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);font-size:18px;line-height:1.6;font-weight:600}.bubble .name{display:block;font-size:13px;font-weight:800;color:var(--mint-deep);margin-bottom:4px}.bubble.navy .name{color:var(--navy)}.bubble.beige .name{color:#8a5a2b}.bubble:after{content:"";position:absolute;left:-10px;bottom:26px;border:10px solid transparent;border-right-color:#fff;border-left:0}.paper{background:var(--paper);color:var(--ink);border-radius:4px;box-shadow:var(--shadow);padding:26px 26px 22px;border-top:6px solid var(--navy-deep)}.paper .masthead{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--ink-soft);border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:14px}.paper .masthead b{color:var(--navy);font-size:14px}.paper h2.title{font-family:var(--serif);font-weight:900;font-size:24px;line-height:1.4;margin:0 0 8px;color:var(--ink);letter-spacing:-.01em}.paper .subtitle{font-size:16px;color:var(--ink-soft);margin:0 0 16px;line-height:1.55}.paper .byline{font-size:14px;color:var(--navy);font-weight:700;margin:0 0 14px}.paper p{font-size:16.5px;line-height:1.85;margin:0 0 14px}.paper h3{font-size:17.5px;margin:22px 0 10px;color:var(--ink)}.paper figure{margin:16px 0}.paper figure img{width:100%;border-radius:12px;display:block}.paper figcaption{font-size:13.5px;color:var(--ink-soft);margin-top:6px;line-height:1.5}.paper .footer-note{margin-top:20px;padding-top:12px;border-top:1px solid #ddd;font-size:14px;color:#666;line-height:1.6}.paper .keywords{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.paper .keywords span{background:var(--mint-soft);color:var(--mint-deep);border-radius:999px;padding:4px 10px;font-size:12.5px;font-weight:700}.fade-bottom{position:relative;max-height:46vh;overflow:hidden}.fade-bottom:after{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;background:linear-gradient(transparent,var(--paper))}.room{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start;padding-bottom:20px}.notebook{position:sticky;top:12px;background:var(--paper);color:var(--ink);border-radius:20px;box-shadow:var(--shadow);padding:18px;font-size:14px}.notebook h2{font-size:15px;margin:0 0 10px;color:var(--navy);display:flex;align-items:center;gap:8px}.notebook dl{margin:0;display:grid;gap:8px}.notebook dt{font-size:12px;font-weight:800;color:var(--mint-deep)}.notebook dd{margin:0;color:var(--ink);line-height:1.5;white-space:pre-wrap;max-height:4.5em;overflow:hidden}.notebook .empty{color:#a0a9bb}.thumbs{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.thumbs img{width:56px;height:56px;object-fit:cover;border-radius:10px;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.12)}.thumbs .doc{font-size:12px;background:var(--mint-soft);border-radius:8px;padding:4px 8px}.notebook-toggle{display:none}.chat{background:var(--paper);color:var(--ink);border-radius:24px;padding:16px;box-shadow:var(--shadow);flex-direction:column;min-height:calc(100dvh - 110px)}.chat,.msgs{display:flex}.msgs{flex:1 1;flex-direction:column;gap:14px;padding:4px 2px 12px}.msg{display:flex;gap:10px;align-items:flex-end;max-width:92%;animation:rise .3s ease both}.msg .face{width:46px;height:46px;flex:none;border-radius:50%;background:var(--mint-soft);overflow:hidden;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.1)}.msg .face img{width:100%;height:100%;object-fit:cover;display:block}.msg .text{background:#fff;color:var(--ink);border-radius:18px 18px 18px 6px;padding:12px 15px;font-size:16.5px;line-height:1.6;box-shadow:0 3px 10px rgba(27,42,87,.08);white-space:pre-wrap}.msg .hint{display:block;font-size:13px;color:var(--ink-soft);margin-top:4px}.msg.me{align-self:flex-end;flex-direction:row-reverse}.msg.me .text{background:var(--navy);color:#fff;border-radius:18px 18px 6px 18px}.msg.me .thumbs img{width:72px;height:72px}.composer{border-top:1px solid var(--line);padding-top:12px;display:grid;gap:10px}.composer textarea{width:100%;min-height:84px;max-height:40vh;resize:vertical;border:2px solid var(--line);border-radius:16px;padding:12px 14px;font-size:16.5px;line-height:1.6;background:#fff}.composer textarea:focus{outline:none;border-color:var(--mint)}.composer .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.composer .row .grow{flex:1 1}.mic{display:inline-flex;align-items:center;gap:8px;border:2px solid var(--mint-btn);background:#fff;color:var(--mint-dark);border-radius:var(--btn-radius);padding:10px 16px;font-weight:800;font-size:15px;min-height:46px}.mic.on{background:var(--coral);border-color:var(--coral);color:#fff;animation:pulse 1.2s ease-in-out infinite}.mic:disabled{opacity:.45}.mic .dot{width:10px;height:10px;border-radius:50%;background:currentColor}@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(255,122,89,.25)}}.mic-tip{font-size:13px}.drop,.mic-tip{color:var(--ink-soft)}.drop{border:3px dashed var(--mint-btn);border-radius:18px;background:#fff;padding:18px;text-align:center;font-size:15px}.drop.over{background:var(--mint-soft)}.drop label{display:inline-flex;margin:6px}.grades{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.grade{background:#fff;color:var(--ink);border:3px solid var(--line);border-radius:18px;padding:14px;text-align:left;display:grid;gap:4px}.grade.on{border-color:var(--mint-btn);box-shadow:0 0 0 4px rgba(63,224,189,.25)}.grade strong{font-size:18px;color:var(--navy)}.grade span{font-size:13px;color:var(--ink-soft);line-height:1.45}.grade em{font-style:normal;font-size:12px;color:var(--mint-deep);font-weight:800}.pay-note{font-size:13px;color:var(--ink-soft);margin:4px 0 0}.consent{display:grid;gap:8px;background:#fff;color:var(--ink);border-radius:16px;padding:14px}.consent label{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.5}.consent input{width:20px;height:20px;margin-top:2px;accent-color:var(--mint);flex:none}.working{display:grid;justify-items:center;text-align:center;gap:12px;padding:30px 10px}.working img{width:170px}.working p{font-size:17px;font-weight:700;color:var(--navy);margin:0}.working small{color:var(--ink-soft)}.story{display:grid;grid-template-columns:1fr 360px;gap:20px;align-items:start;padding-bottom:30px}.side{display:grid;gap:14px;position:sticky;top:12px}.card{background:#fff;color:var(--ink);border-radius:20px;box-shadow:var(--shadow);padding:18px}.card h3{margin:0 0 10px;font-size:16px;color:var(--navy)}.status{display:flex;gap:12px;align-items:center}.status img{width:84px;flex:none}.status strong{display:block;font-size:18px;color:var(--navy)}.status p{margin:4px 0 0;font-size:14px;color:var(--ink-soft);line-height:1.55}.issues{list-style:none;padding:0;margin:0;display:grid;gap:8px}.issues li{font-size:14px;line-height:1.5;padding:8px 10px 8px 12px;border-radius:10px;border-left:4px solid}.issues li.block{background:#fdecec;border-color:var(--danger)}.issues li.warn{background:#fff6e0;border-color:#f0b429}.issues li.ok{background:var(--mint-soft);border-color:var(--mint)}.issues li b{font-size:12px;margin-right:6px}details summary{cursor:pointer;font-weight:700;color:var(--navy)}.changes{font-size:13.5px;display:grid;gap:8px;margin-top:8px}.changes del{color:var(--danger)}.changes ins{color:var(--mint-deep);text-decoration:none;font-weight:700}.edit-field{display:grid;gap:6px;margin-bottom:12px}.edit-field span{font-size:13px;font-weight:800;color:var(--ink-soft)}.edit-field input,.edit-field textarea{width:100%;border:2px solid var(--line);border-radius:12px;padding:10px 12px;font-size:16px;line-height:1.7;background:#fff}.edit-field textarea{min-height:60vh}.actions{display:grid;gap:8px}.gate{max-width:520px;margin:0 auto;background:var(--paper);color:var(--ink);border-radius:24px;box-shadow:var(--shadow);padding:22px;display:grid;gap:12px}.gate input{border:2px solid var(--line);border-radius:14px;padding:14px;font-size:20px;letter-spacing:.08em;text-transform:uppercase;text-align:center}.gate .err{color:var(--danger);font-size:14px;margin:0}.modal-back{position:fixed;inset:0;background:rgba(10,26,56,.72);display:grid;place-items:center;padding:16px;z-index:50}table.desk{width:100%;min-width:640px;border-collapse:collapse;background:#fff;color:var(--ink);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);font-size:14px}table.desk td,table.desk th{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}table.desk th{background:var(--navy-deep);color:#fff;font-weight:700}.pill{display:inline-block;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:800}.pill.ready{background:var(--mint-soft);color:var(--mint-deep)}.pill.awaiting_instructor{background:#e6efff;color:var(--blue)}.pill.needs_fix{background:#fdecec;color:var(--danger)}.table-scroll{overflow-x:auto}@media (max-width:860px){.room,.story{grid-template-columns:1fr}.notebook{position:static;order:-1;padding:12px 14px}.notebook-toggle{display:flex;width:100%;justify-content:space-between;background:none;border:0;padding:0;font-weight:800;color:var(--navy);font-size:15px}.notebook h2.desk-only,.notebook.closed .nb-body{display:none}.side{position:static}.chat{min-height:0;padding:12px}}@media (max-width:640px){.grades{grid-template-columns:1fr}.paper{padding:18px 16px}.paper h2.title{font-size:20px}.bubble{font-size:16px;padding:14px 16px}.msg{max-width:100%}.msg .text{font-size:16px}.btn{padding:13px 18px;font-size:15.5px}.brand small{display:none}}