:root{--branson-blue:#004b87;--branson-blue-light:#0a63b0;--branson-green:#00a651;--navy:#0a1428;--navy-2:#060d1c;--ink:#14263f;--paper:#fff;--muted:#5b6b82;--line:#e4eaf2;--bg:#eef2f7}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);min-height:100vh}a{color:var(--branson-blue)}.banner{position:relative;overflow:hidden;background:linear-gradient(120deg,var(--navy-2) 0,var(--branson-blue) 60%,var(--branson-blue-light) 100%);color:#fff;padding:24px;box-shadow:0 4px 24px rgba(0,40,90,.25)}.banner-wrap{max-width:1040px;margin:0 auto;display:flex;align-items:center;gap:16px}.banner img.mark{width:50px;height:50px}.banner h1{margin:0;font-size:24px;letter-spacing:.01em}.banner h1 a{color:#fff;text-decoration:none}.banner p{margin:3px 0 0;color:hsla(0,0%,100%,.82);font-size:14px}.banner .spacer{margin-left:auto}.banner .nav{display:flex;align-items:center;gap:18px;font-size:14px}.banner .nav a{color:hsla(0,0%,100%,.9);text-decoration:none}.banner .nav a:hover{color:#fff;text-decoration:underline}.banner .watermark{position:absolute;right:-30px;bottom:-50px;width:210px;opacity:.06;pointer-events:none}main.page{max-width:1040px;margin:0 auto;padding:36px 24px 80px;position:relative}.corner-mark{position:fixed;width:180px;opacity:.04;pointer-events:none;z-index:0}.corner-mark.tl{top:96px;left:-40px}.corner-mark.br{bottom:-40px;right:-40px}.content{position:relative;z-index:1}h2.title{font-size:26px;margin:0 0 6px}p.lead{font-size:17px;color:var(--muted);max-width:640px;margin:0 0 26px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:20px;gap:20px}.card{background:var(--paper);border-radius:16px;padding:24px;border:1px solid var(--line);border-top:4px solid var(--branson-blue);box-shadow:0 8px 26px rgba(20,50,90,.07);transition:transform .18s ease,box-shadow .18s ease;text-decoration:none;color:inherit;display:block}a.card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(20,50,90,.14)}.card.green{border-top-color:var(--branson-green)}.card h3{margin:0 0 8px;font-size:19px}.card p{margin:0 0 14px;color:var(--muted);font-size:14px;line-height:1.5}.card .go{font-weight:700;font-size:14px;color:var(--branson-blue)}.card.green .go{color:var(--branson-green)}.panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:0 8px 26px rgba(20,50,90,.07);max-width:560px}.panel.wide{max-width:100%}label{display:block;font-weight:600;font-size:14px;margin:16px 0 6px}.hint{color:var(--muted);font-size:13px;font-weight:400;margin:2px 0 0}input[type=password],input[type=text],select,textarea{width:100%;padding:11px 12px;border:1px solid #cdd8e6;border-radius:10px;font:inherit;color:var(--ink);background:#fff}textarea{resize:vertical;min-height:120px;line-height:1.5}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--branson-blue);box-shadow:0 0 0 3px rgba(0,75,135,.12)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--branson-blue);color:#fff;border:none;padding:12px 20px;border-radius:10px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;transition:background .15s ease}.btn:hover{background:#013a68}.btn.green{background:var(--branson-green)}.btn.green:hover{background:#008a43}.btn.ghost{background:none;color:var(--branson-blue);border:1px solid #cdd8e6}.btn.ghost:hover{background:#f2f6fb;border-color:var(--branson-blue)}.btn:disabled{opacity:.6;cursor:default}.btn-row{margin-top:22px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.error{background:#fdecec;border:1px solid #f5c2c2;color:#a12626;border-radius:10px}.error,.notice{padding:10px 14px;font-size:14px;margin:14px 0 0}.notice{background:#eef7f1;border:1px solid #b8e0c6;color:#1c6b3a;border-radius:10px}.role-toggle{display:flex;gap:10px;margin-top:6px}.role-toggle label{flex:1 1;margin:0;border:1px solid #cdd8e6;border-radius:10px;padding:12px;text-align:center;cursor:pointer;font-weight:600;color:var(--muted);transition:all .15s ease}.role-toggle input{display:none}.role-toggle input:checked+span{color:var(--branson-blue)}.role-toggle label:has(input:checked){border-color:var(--branson-blue);background:#f2f6fb;color:var(--branson-blue)}.muted-link{margin-top:18px;font-size:14px;color:var(--muted)}.essay-view{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;line-height:1.8;white-space:pre-wrap;box-shadow:0 8px 26px rgba(20,50,90,.07)}mark.hl{background:#fff2b8;border-bottom:2px solid #f2c94c;padding:0 1px;border-radius:2px}mark.hl.active{background:#ffd968}.comments-col{display:flex;flex-direction:column;gap:14px}.comment{background:#fff;border:1px solid var(--line);border-left:4px solid var(--branson-blue);border-radius:10px;padding:14px 16px;box-shadow:0 4px 14px rgba(20,50,90,.05)}.comment .q{font-size:12.5px;color:var(--muted);font-style:italic;margin:0 0 6px}.comment .c{font-size:14.5px;margin:0}.two-col{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:24px;gap:24px;align-items:start}@media (max-width:820px){.two-col{grid-template-columns:1fr}}.rubric-table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--line)}.rubric-table td,.rubric-table th{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top;font-size:14px}.rubric-table th{background:#f5f8fc;color:var(--ink);font-size:13px}.rubric-table td.level{font-weight:700;color:var(--branson-green);white-space:nowrap}.list-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.list-table td,.list-table th{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);font-size:14px}.list-table th{background:#f5f8fc;font-size:13px}.badge{display:inline-block;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px}.badge.pending{background:#fff3d6;color:#9a6a00}.badge.approved{background:#e3f5ea;color:#1c6b3a}.section-gap{margin-top:34px}.comment,mark.hl{cursor:pointer}.comment{transition:top .18s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease}.comment.active{border-left-width:5px;border-color:var(--branson-blue);background:#f7fbff;box-shadow:0 10px 30px rgba(0,75,135,.16);z-index:3}.comment.active .c{font-size:16px}.comment .c{transition:font-size .15s ease}.doc{display:grid;grid-template-columns:minmax(0,1fr) 330px;grid-gap:24px;gap:24px;align-items:start}.doc-essay{margin:0}.doc-margin{position:relative}.doc-margin .comment{margin-bottom:12px}@media (max-width:860px){.doc{grid-template-columns:1fr}}.disclaimer{background:#fff8e6;border:1px solid #f2d894;color:#7a5a00;padding:11px 15px;border-radius:10px;font-size:14px;line-height:1.5;max-width:760px;margin:0 0 20px}.intro{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 120% at 50% 40%,#12204a 0,#0a1428 45%,#060d1c 100%);overflow:hidden;cursor:pointer;transform-origin:50% 45%}.intro .skip{position:absolute;bottom:26px;left:0;right:0;text-align:center;color:hsla(0,0%,100%,.35);font-size:13px;letter-spacing:.12em;text-transform:uppercase;opacity:0;animation:introFade .6s ease 1.6s forwards}.intro .stars{position:absolute;inset:0;pointer-events:none}.intro .star{position:absolute;border-radius:50%;background:#fff;opacity:.25;animation-name:introTwinkle;animation-timing-function:ease-in-out;animation-iteration-count:infinite}@keyframes introTwinkle{0%,to{opacity:.15;transform:scale(.8)}50%{opacity:.9;transform:scale(1.2)}}.intro .stage{position:relative;display:flex;flex-direction:column;align-items:center}.intro .glow{top:8px;width:340px;height:340px;transform:translate(-50%) scale(0);background:radial-gradient(circle,hsla(0,0%,100%,.55) 0,rgba(120,180,255,.28) 35%,rgba(10,20,40,0) 68%);filter:blur(4px);animation:introGlowIn .7s ease .22s forwards,introGlowPulse 1.6s ease-in-out .9s infinite alternate}.intro .glow,.intro .ring{position:absolute;left:50%;border-radius:50%}.intro .ring{top:50%;width:220px;height:220px;margin:-110px 0 0 -110px;border:2px solid rgba(120,190,255,.6);transform:scale(.35);opacity:0}.intro .ring.r1{animation:introRipple 1.6s ease-out .85s 2}.intro .ring.r2{animation:introRipple 1.6s ease-out 1.15s 2;border-color:rgba(80,220,150,.5)}.intro .ring.r3{animation:introRipple 1.6s ease-out 1.45s 2;border-color:hsla(0,0%,100%,.4)}@keyframes introRipple{0%{transform:scale(.35);opacity:.7}to{transform:scale(2.2);opacity:0}}.intro .bull{width:200px;height:200px;position:relative;z-index:2;transform:scale(0);opacity:0;animation:introSpring .6s cubic-bezier(.2,1.3,.35,1) .2s forwards;filter:drop-shadow(0 10px 30px rgba(0,60,140,.55))}@keyframes introSpring{0%{transform:scale(0);opacity:0}65%{transform:scale(1.08);opacity:1}to{transform:scale(1);opacity:1}}.intro .tagline{margin-top:26px;display:flex;color:#eaf2ff;font-weight:800;font-size:34px;letter-spacing:.02em}.intro .ch{display:inline-block;opacity:0;transform:translateY(8px);animation:introCh .5s ease forwards}@keyframes introCh{to{opacity:1;transform:translateY(0)}}.intro .subtag{margin-top:12px;color:rgba(180,205,240,.8);font-size:14px;letter-spacing:.34em;text-transform:uppercase;opacity:0;animation:introFade .7s ease 1.5s forwards}@keyframes introGlowIn{to{transform:translate(-50%) scale(1)}}@keyframes introGlowPulse{0%{opacity:1}to{opacity:.82}}@keyframes introFade{to{opacity:1}}.intro.burst{animation:introBurst .6s cubic-bezier(.5,0,.75,0) forwards;pointer-events:none}@keyframes introBurst{0%{transform:scale(1);opacity:1;filter:blur(0)}to{transform:scale(1.8);opacity:0;filter:blur(6px)}}.qa-open{margin-top:10px;background:none;border:none;padding:0;color:var(--branson-blue);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.qa-open:hover{text-decoration:underline}.qa{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:8px}.bubble{font-size:13.5px;line-height:1.5;padding:8px 11px;border-radius:10px;max-width:92%;white-space:pre-wrap}.bubble.student{align-self:flex-end;background:var(--branson-blue);color:#fff;border-bottom-right-radius:3px}.bubble.teacher{align-self:flex-start;background:#eef2f7;color:var(--ink);border-bottom-left-radius:3px}.qa-row{display:flex;gap:8px;margin-top:2px}.qa-row input{flex:1 1;padding:8px 10px;font-size:13.5px}.qa-error{color:#a12626;font-size:13px;margin:2px 0 0}