:root{--bg-color:#faf8f5;--bg-gradient:linear-gradient(180deg, #faf8f5 0%, #f4f0ea 100%);--panel-bg:#fff;--border-color:#2b2b2a;--border-muted:#dfdad2;--primary:#b85c38;--primary-hover:#9c4a2a;--secondary:#3c6255;--text-dark:#2b2b2a;--text-muted:#7a7570;--white:#fff;--danger:#b33939;--success:#2e7d32;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--transition-fast:.15s ease;--transition-normal:.25s cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-gradient);color:var(--text-dark);-webkit-font-smoothing:antialiased;background-attachment:fixed;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}h1,h2,h3,h4,h5,h6{color:var(--text-dark);font-family:Outfit,sans-serif;font-weight:700;line-height:1.25}.container{max-width:1100px;margin:0 auto;padding:0 24px}.glass-nav{z-index:100;border-bottom:2px solid var(--border-color);transition:padding var(--transition-fast);background:#faf8f5f2;padding:20px 0;position:sticky;top:0}.nav-container{justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;padding:0 24px;display:flex}.nav-menus,.training-nav,.nav-actions{align-items:center;display:flex}.nav-menus{gap:18px}.training-nav{gap:4px}.nav-actions{gap:12px}.logo{letter-spacing:-.5px;color:var(--text-dark);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:0;font-family:Outfit,sans-serif;font-size:1.4rem;font-weight:700;display:flex}.logo-copy{flex-direction:column;align-items:flex-start;line-height:1.1;display:flex}.logo-text{white-space:nowrap}.logo-tagline{color:var(--text-muted);letter-spacing:0;margin-top:5px;font-family:Inter,sans-serif;font-size:.62rem;font-weight:600}.logo-text b{color:var(--primary);font-weight:800}.logo-icon{color:var(--secondary);font-size:1.6rem;display:flex}.nav-link{white-space:nowrap;color:var(--text-muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:9px 11px;font-family:inherit;font-size:.86rem;font-weight:700;display:inline-flex;position:relative}.nav-link:after{background:var(--primary);content:"";opacity:0;height:2px;transition:opacity var(--transition-fast), transform var(--transition-fast);position:absolute;bottom:3px;left:10px;right:10px;transform:scaleX(.4)}.nav-link:hover,.nav-link.active{color:var(--text-dark)}.nav-link.active:after{opacity:1;transform:scaleX(1)}.question-pending-badge{background:var(--primary);min-width:38px;height:18px;color:var(--white);letter-spacing:.02em;box-shadow:1px 1px 0 var(--border-color);border-radius:999px;align-items:center;padding:0 6px;font-family:Inter,sans-serif;font-size:.58rem;font-weight:800;line-height:1;display:inline-flex}.nav-divider{background:var(--border-muted);width:1px;height:28px;margin-right:4px}.lab-button{border-color:var(--secondary);color:var(--secondary);box-shadow:2px 2px 0 var(--secondary)}.lab-button:hover,.lab-button.active{background:var(--secondary);color:var(--white)}body.admin-mode #admin-login-btn{display:none}.admin-menu{position:relative}.admin-menu-toggle{white-space:nowrap}.admin-menu-caret{transition:transform var(--transition-fast);font-size:.8em}.admin-menu.is-open .admin-menu-caret{transform:rotate(180deg)}.admin-menu-panel{z-index:130;border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--panel-bg);min-width:210px;box-shadow:4px 4px 0 var(--border-color);flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 10px);right:0}.admin-menu-panel[hidden]{display:none}.admin-menu-item{border-radius:var(--radius-xs);width:100%;color:var(--text-dark);font:inherit;text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:10px 12px;font-size:.86rem;font-weight:600;display:flex}.admin-menu-item:hover,.admin-menu-item:focus-visible{background:#f3ede4;outline:none}.admin-menu-item.active{color:var(--primary)}.admin-menu-logout{border-top:1px solid var(--border-muted);border-radius:0 0 var(--radius-xs) var(--radius-xs);color:var(--danger);margin-top:4px}@media (width<=720px){.nav-actions .admin-menu{flex:1}.nav-actions .admin-menu-toggle{justify-content:center;width:100%}.admin-menu-panel{min-width:min(260px,100vw - 32px)}}.btn{border-radius:var(--radius-xs);cursor:pointer;transition:all var(--transition-fast);border:2px solid var(--border-color);background:var(--white);color:var(--text-dark);box-shadow:2px 2px 0px 0px var(--border-color);justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-family:Inter,sans-serif;font-size:.9rem;font-weight:600;display:inline-flex}.btn:hover{box-shadow:3px 3px 0px 0px var(--border-color);transform:translate(-1px,-1px)}.btn:active{box-shadow:1px 1px 0px 0px var(--border-color);transform:translate(1px,1px)}.btn-primary{background:var(--primary);color:var(--white);border:2px solid var(--border-color)}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--bg-color);border:2px solid var(--border-muted);box-shadow:none}.btn-secondary:hover{border-color:var(--border-color);background:var(--white)}.btn-secondary.lab-button.active,.btn-secondary.lab-button.active:hover{border-color:var(--secondary);background:var(--secondary);color:var(--white)}.btn-outline{color:var(--text-dark);border:2px solid var(--border-color);background:0 0}.btn-outline:hover{background:var(--border-color);color:var(--white)}.btn-large{padding:14px 28px;font-size:1rem}.hero-compact{text-align:left;border-bottom:2px solid var(--border-color);margin-bottom:30px;padding:30px 0 10px}.hero-badge{background:var(--white);border:1px solid var(--border-color);color:var(--secondary);border-radius:var(--radius-xs);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-block}.hero-title{letter-spacing:-1px;color:var(--text-dark);font-size:2.2rem}.centered-layout{max-width:600px;margin:0 auto}#view-home .hero-compact{margin-bottom:18px;padding:18px 0 8px}#view-home .hero-title{font-size:2rem}#view-home .centered-layout{max-width:470px}#training-list .glass-card{box-shadow:3px 3px 0 var(--border-color);gap:9px;padding:15px}#training-list .training-cover{padding:14px}#training-list .training-cover:after{inset:10px}#training-list .training-cover-title{font-size:clamp(1.25rem,2.6vw,1.85rem)}#training-list .card-desc{font-size:.82rem;line-height:1.45}#training-list .card-tags{gap:6px}#training-list .tag{padding:3px 8px;font-size:.7rem}#training-list .btn-enter-session{padding:8px 12px;font-size:.85rem}.past-training-section{border-top:2px solid var(--border-color);margin-top:30px;padding-top:17px}.past-training-header{justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:12px;display:flex}.past-training-header .hero-badge{margin-bottom:6px}.past-training-header h2{letter-spacing:-.6px;font-size:1.45rem}.past-training-header p{color:var(--text-muted);margin-top:3px;font-size:.82rem}.past-training-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.past-training-card{border:1px solid var(--border-color);border-radius:var(--radius-xs);background:var(--panel-bg);min-width:0;min-height:145px;box-shadow:3px 3px 0 var(--border-color);flex-direction:column;gap:5px;padding:12px 12px 10px;display:flex;position:relative;overflow:hidden}.past-training-card:before{background:var(--archive-accent,var(--primary));content:"";height:5px;position:absolute;top:0;left:0;right:0}.past-training-accent-1{--archive-accent:#b85c38}.past-training-accent-2{--archive-accent:#3c6255}.past-training-accent-3{--archive-accent:#d6a64f}.past-training-accent-4{--archive-accent:#5b7380}.past-training-meta{color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;font-size:.68rem;font-weight:600;display:flex}.past-training-status{border:1px solid var(--border-muted);background:var(--bg-color);border-radius:999px;padding:1px 6px}.past-training-card h3{letter-spacing:-.4px;word-break:keep-all;min-height:2.3em;font-size:.92rem}.past-training-card .card-tags{gap:5px;margin-bottom:0}.past-training-card .tag{padding:2px 7px;font-size:.68rem}.past-training-link{border:0;border-top:1px solid var(--border-muted);width:100%;color:var(--text-dark);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;margin-top:auto;padding:5px 0 0;font-family:inherit;font-size:.78rem;font-weight:700;display:flex}.past-training-link:hover,.past-training-link:focus-visible{color:var(--primary)}main{padding:0 0 80px}main:has(#view-home:not(.hidden)){padding-bottom:0}.section-header{text-align:left;border-bottom:1px solid var(--border-color);margin-bottom:20px;padding-bottom:10px}.section-header h2{letter-spacing:-.5px;font-size:1.6rem}.section-header p{color:var(--text-muted);font-size:.9rem}.hidden{display:none!important}.view-loading{min-height:50vh;color:var(--text-muted);justify-content:center;align-items:center;gap:10px;font-size:.9rem;font-weight:600;animation:.2s .3s both view-loading-in;display:flex}.view-loading-dot{background:var(--secondary);border-radius:50%;width:10px;height:10px;animation:.9s ease-in-out infinite view-loading-pulse}@keyframes view-loading-in{0%{opacity:0}}@keyframes view-loading-pulse{50%{opacity:.25;transform:scale(.7)}}.cards-stack{flex-direction:column;gap:24px;display:flex}.glass-card{background:var(--panel-bg);border:2px solid var(--border-color);border-radius:var(--radius-xs);box-shadow:4px 4px 0px 0px var(--border-color);transition:all var(--transition-normal);flex-direction:column;gap:16px;padding:24px;display:flex}.glass-card:hover{box-shadow:7px 7px 0px 0px var(--border-color);transform:translate(-3px,-3px)}.card-image{aspect-ratio:16/9;background:var(--bg-color);border:1px solid var(--border-muted);border-radius:var(--radius-xs);object-fit:cover;width:100%}.training-cover{--cover-text:#fffaf5;--cover-text-shadow:#2b2b2aa6;isolation:isolate;color:var(--cover-text);grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);align-items:start;padding:20px;display:grid;position:relative;overflow:hidden}.training-cover:after{content:"";z-index:-1;opacity:.55;border:1px solid;position:absolute;inset:14px}.training-cover-brand{letter-spacing:.12em;text-shadow:0 1px 3px var(--cover-text-shadow);grid-area:1/1;font-size:.7rem;font-weight:800}.training-cover-title{width:82%;color:inherit;letter-spacing:-.04em;text-align:center;overflow-wrap:anywhere;word-break:keep-all;text-wrap:balance;text-shadow:0 2px 5px var(--cover-text-shadow);grid-area:1/1/-1/-1;place-self:center;margin:0;font-family:Noto Sans KR,sans-serif;font-size:clamp(1.55rem,4vw,2.35rem);font-weight:800;line-height:1.12}.theme-terracotta{--cover-text:#fff8ee;background:linear-gradient(90deg,#0000 0 66%,#fff8ee21 66% 100%),radial-gradient(circle at 80% 27%,#e8b764 0 17%,#0000 17.5%),linear-gradient(135deg,#bd6441 0 63%,#85412e 63% 100%)}.theme-olive{--cover-text:#fff9eb;background:radial-gradient(42% 82% at 88% 10%,#eddc9e42 0 49%,#0000 50%),radial-gradient(34% 72% at 70% -4%,#2637297a 0 49%,#0000 50%),linear-gradient(135deg,#607253,#34483a)}.theme-mustard{--cover-text:#292b28;--cover-text-shadow:#fff9e5b8;background-color:#d6a64f;background-image:linear-gradient(#2b2b2a1f 1px,#0000 1px),linear-gradient(90deg,#2b2b2a1f 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}.theme-slate{--cover-text:#fff9f0;background:linear-gradient(120deg,#0000 0 53%,#c45b3ae0 53.5% 64%,#0000 64.5%),linear-gradient(90deg,#f9f0dc24 0 18%,#0000 18.5% 100%),linear-gradient(150deg,#5b7380,#354a56)}.card-title{letter-spacing:-.5px;font-size:1.3rem}.card-desc{color:var(--text-muted);flex-grow:1;font-size:.95rem}.card-tags{flex-wrap:wrap;gap:8px;display:flex;position:relative}.tag{background:var(--bg-color);color:var(--text-dark);border:1px solid var(--border-muted);border-radius:var(--radius-xs);padding:4px 10px;font-size:.75rem;font-weight:600}.tech-tag{appearance:none;text-align:left;cursor:help;font-family:inherit;line-height:1.2;position:relative}.tech-tag:hover,.tech-tag:focus-visible,.tech-tag.is-open{border-color:var(--secondary);color:var(--secondary);outline:none}.tech-tooltip{z-index:20;visibility:hidden;border:1px solid var(--border-color);border-radius:var(--radius-xs);background:var(--text-dark);width:max-content;max-width:min(250px,72vw);color:var(--white);opacity:0;pointer-events:none;transition:opacity var(--transition-fast), transform var(--transition-fast), visibility var(--transition-fast);white-space:normal;flex-direction:column;gap:4px;padding:10px 12px;font-size:.75rem;font-weight:400;line-height:1.45;display:flex;position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%,4px);box-shadow:3px 3px #2b2b2a38}.tech-tooltip strong{color:#f1c17a;font-size:.7rem}.tech-tooltip:after{border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);background:var(--text-dark);content:"";width:8px;height:8px;position:absolute;top:100%;left:50%;transform:translate(-50%,-4px)rotate(45deg)}.tech-tag:hover .tech-tooltip,.tech-tag:focus-visible .tech-tooltip,.tech-tag.is-open .tech-tooltip{visibility:visible;opacity:1;transform:translate(-50%)}.fade-in{animation:.4s ease-out forwards fadeIn}.section-animate{animation:.4s cubic-bezier(.16,1,.3,1) forwards slideUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.admin-badge{background:var(--danger);color:#fff;border-radius:var(--radius-xs);text-transform:uppercase;padding:2px 8px;font-size:.7rem;font-weight:700}.admin-actions{border-top:1px solid var(--border-muted);gap:8px;margin-top:16px;padding-top:16px;display:none}.admin-mode .admin-actions{display:flex}.admin-only{display:none!important}.admin-mode .admin-only{display:inline-flex!important}.detail-header{border-bottom:2px solid var(--border-color);margin-bottom:24px;padding:32px 0 12px}.detail-header-row{align-items:center;gap:16px;width:100%;display:flex}.btn-sm{padding:6px 12px;font-size:.8rem}.detail-title{letter-spacing:-.5px;margin:0;font-size:1.8rem}.detail-meta{color:var(--text-muted);border-left:1px solid var(--border-muted);align-items:center;height:18px;padding-left:12px;font-size:.85rem;display:inline-flex}.detail-header-row .admin-only{margin-left:auto}.detail-grid{grid-template-columns:1fr 1fr;align-items:start;gap:28px;display:grid}@media (width<=850px){.detail-grid{grid-template-columns:1fr;gap:30px}}.editorial-card{background:var(--panel-bg);border:2px solid var(--border-color);border-radius:var(--radius-xs);box-shadow:4px 4px 0px 0px var(--border-color);flex-direction:column;gap:20px;padding:24px;display:flex}.editorial-card h3{border-bottom:1px solid var(--border-color);align-items:center;gap:8px;padding-bottom:10px;font-size:1.25rem;display:flex}.wifi-info{background:var(--bg-color);border:1px solid var(--border-muted);border-radius:var(--radius-xs);padding:16px;font-size:1.05rem}.wifi-info p{margin-bottom:8px}.wifi-info p:last-child{margin-bottom:0}.wifi-card{flex-shrink:0;height:auto;min-height:310px;overflow:visible}#wifi-notice{overflow-wrap:anywhere;white-space:pre-wrap}.resources-card{min-height:310px}.resource-ul{flex-direction:column;gap:12px;padding-right:4px;list-style:none;display:flex}.resource-item{background:var(--bg-color);border:1px solid var(--border-muted);border-radius:var(--radius-xs);transition:border-color var(--transition-fast);justify-content:space-between;align-items:center;padding:12px;display:flex}.resource-item:hover{border-color:var(--border-color)}.resource-info{min-width:0;color:var(--text-dark);flex:1;align-items:center;gap:10px;font-weight:500;text-decoration:none;display:flex}.resource-info i{color:var(--primary);font-size:1.3rem}.resource-info.resource-protected-link{font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.resource-info.resource-protected-link:hover,.resource-info.resource-protected-link:focus-visible{color:var(--primary)}.resource-access-badge,.library-protected-note{width:fit-content;color:var(--primary);align-items:center;gap:4px;font-size:.72rem;font-weight:700;display:inline-flex}.resource-access-badge i,.library-protected-note i{font-size:.85rem}.resource-access-toggle{cursor:pointer;align-items:center;gap:8px;font-weight:700;display:inline-flex}.resource-access-toggle input{width:17px;height:17px;accent-color:var(--primary)}.input-field{border:2px solid var(--border-color);border-radius:var(--radius-xs);background:var(--bg-color);outline:none;width:100%;padding:12px;font-family:Inter,sans-serif;font-size:.95rem}.input-field:focus{background:var(--white)}.input-sm-field{padding:8px 10px!important;font-size:.85rem!important}.carousel-container{align-items:center;gap:16px;width:100%;display:flex}.carousel-track{scroll-behavior:smooth;gap:20px;width:100%;padding:4px;display:flex;overflow-x:hidden}.carousel-track .glass-card{flex-shrink:0;width:100%}.carousel-btn{background:var(--white);border:2px solid var(--border-color);border-radius:var(--radius-xs);cursor:pointer;width:40px;height:40px;box-shadow:2px 2px 0px 0px var(--border-color);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;display:flex}.carousel-btn:hover{box-shadow:3px 3px 0px 0px var(--border-color);transform:translate(-1px,-1px)}.carousel-btn:active{box-shadow:1px 1px 0px 0px var(--border-color);transform:translate(1px,1px)}.carousel-btn.hidden{display:none!important}.questions-header{border-bottom:2px solid var(--border-color);padding:30px 0 16px}.questions-heading-row{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.questions-intro{color:var(--text-muted);margin-top:8px;font-size:.92rem}.question-summary{border:1px solid var(--border-muted);border-radius:var(--radius-xs);background:var(--white);color:var(--secondary);flex:none;padding:7px 10px;font-size:.8rem;font-weight:700}.questions-page-grid{grid-template-columns:minmax(280px,340px) minmax(0,1fr);align-items:start;gap:28px;margin-top:28px;display:grid}.question-submit-card{position:sticky;top:118px}.question-submit-help{color:var(--text-muted);margin-top:-8px;font-size:.82rem}.question-form{flex-direction:column;display:flex}.question-textarea,.input-answer{resize:vertical;min-height:120px;line-height:1.55}.question-submit-button{width:100%}.questions-list-card{min-width:0}.questions-list-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-end;gap:18px;padding-bottom:14px;display:flex}.questions-list-header h3{border:0;margin:0;padding:0}.questions-list-header p{color:var(--text-muted);margin-top:5px;font-size:.82rem}.question-filter-label{color:var(--text-muted);flex-direction:column;flex:0 0 180px;gap:4px;font-size:.72rem;font-weight:700;display:flex}.question-filter{padding:8px 10px;font-size:.8rem}.question-list{flex-direction:column;gap:14px;display:flex}.question-box{border:1px solid var(--border-muted);border-radius:var(--radius-xs);background:var(--bg-color);flex-direction:column;gap:12px;padding:18px;display:flex}.question-box-hidden{background:#f3efea;border-style:dashed}.q-header{color:var(--text-muted);justify-content:space-between;align-items:center;gap:12px;font-size:.75rem;display:flex}.q-meta{align-items:center;gap:8px;min-width:0;display:flex}.q-meta strong{color:var(--text-dark);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.question-training-tag{border-radius:var(--radius-xs);max-width:220px;color:var(--secondary);text-overflow:ellipsis;white-space:nowrap;background:#edf4f1;border:1px solid #b7c9c2;flex:none;padding:3px 7px;font-weight:700;overflow:hidden}.q-text{color:var(--text-dark);overflow-wrap:anywhere;white-space:pre-wrap;font-size:.98rem;font-weight:600;line-height:1.65}.q-answer{border-left:4px solid var(--secondary);background:var(--white);padding:13px 14px;font-size:.9rem}.q-answer strong{color:var(--secondary);margin-bottom:4px;font-size:.78rem;display:block}.q-answer p{overflow-wrap:anywhere;white-space:pre-wrap;line-height:1.65}.question-admin-badges{gap:6px;margin-top:-4px;display:flex}.question-status,.question-visibility{border-radius:var(--radius-xs);padding:3px 7px;font-size:.7rem;font-weight:700}.question-status.waiting,.question-visibility.private{color:#8e452a;background:#f7e9dd}.question-status.answered,.question-visibility.public{color:var(--secondary);background:#e4efe9}.question-admin-panel{border-top:1px dashed var(--border-muted);flex-direction:column;gap:8px;padding-top:12px;display:flex}.question-admin-panel label{font-size:.78rem;font-weight:700}.question-admin-actions{flex-wrap:wrap;gap:8px;display:flex}.btn-danger-outline{border-color:var(--danger);color:var(--danger);box-shadow:2px 2px 0 var(--danger);margin-left:auto}.btn-danger-outline:hover{background:var(--danger);color:var(--white)}.question-empty{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:42px 20px;display:flex}.question-empty i{color:var(--secondary);font-size:2.2rem}.question-empty span{font-size:.82rem}.modal{z-index:1000;background:#0006;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.modal-content{background:var(--panel-bg);border:2px solid var(--border-color);border-radius:var(--radius-xs);width:90%;max-width:400px;box-shadow:8px 8px 0px 0px var(--border-color);padding:24px;animation:.3s cubic-bezier(.16,1,.3,1) forwards slideUp}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;display:flex}.modal-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;font-size:1.25rem}.protected-resource-description{color:var(--text-muted);margin:0 0 18px;line-height:1.6}.protected-resource-error{border:1px solid var(--danger);border-radius:var(--radius-xs);color:var(--danger);background:#fff4f4;margin:-4px 0 14px;padding:10px 12px;font-size:.85rem;font-weight:700}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-group label{font-size:.85rem;font-weight:600}#training-modal .modal-content{width:min(92%,560px);max-width:560px;max-height:90vh;overflow-y:auto}.training-cover-fieldset{border:0;margin:0 0 18px;padding:0}.training-cover-fieldset legend{font-size:.85rem;font-weight:600}.training-cover-fieldset .form-help{margin:4px 0 10px}.training-cover-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.training-cover-option{cursor:pointer;flex-direction:column;gap:6px;display:flex;position:relative}.training-cover-option input{opacity:0;position:absolute}.training-cover-preview{aspect-ratio:16/9;border:2px solid var(--border-color);border-radius:var(--radius-xs);width:100%;box-shadow:2px 2px 0 var(--border-color);transition:transform var(--transition-fast), box-shadow var(--transition-fast), outline-color var(--transition-fast);padding:10px}.training-cover-preview:after{inset:7px}.training-cover-preview .training-cover-brand{font-size:.42rem}.training-cover-preview .training-cover-title{max-width:76%;font-size:.6rem;line-height:1}.training-cover-option input:checked+.training-cover-preview{outline:3px solid var(--primary);outline-offset:2px;box-shadow:4px 4px 0 var(--border-color);transform:translate(-2px,-2px)}.training-cover-option input:focus-visible+.training-cover-preview{outline:3px solid var(--secondary);outline-offset:2px}.training-cover-name{text-align:center;font-size:.72rem;font-weight:600}.project-grid-container{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:32px;padding:16px 0 80px;display:grid}.library-guide{border:2px solid var(--border-color);border-radius:var(--radius-xs);background:var(--secondary);box-shadow:4px 4px 0 var(--border-color);color:var(--white);justify-content:space-between;align-items:center;gap:24px;padding:24px 28px;display:flex}.library-guide .hero-badge{color:var(--secondary);margin-bottom:10px}.library-guide h2{margin-bottom:6px;font-size:1.65rem}.library-guide p{color:#e8f0ed}.library-guide>i{opacity:.72;flex:none;font-size:4.5rem}.library-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:30px 0 80px;display:grid}.library-card{min-height:320px}.library-featured-card{border-color:var(--secondary);background:#f5faf7}.library-featured-card .library-card-icon{color:var(--primary);background:#e5f2ec}.library-card-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.library-card-icon{border:1px solid var(--border-color);border-radius:var(--radius-xs);width:48px;height:48px;color:var(--secondary);background:#edf4f1;place-items:center;font-size:1.6rem;display:grid}.library-category{border-radius:var(--radius-xs);color:var(--secondary);background:#edf4f1;border:1px solid #b7c9c2;padding:5px 9px;font-size:.72rem;font-weight:700}.library-open-link{width:100%;margin-top:auto}.library-card .admin-actions{margin-top:0}.library-card .admin-actions .btn{width:100%}.library-empty{min-height:220px;color:var(--text-muted);text-align:center;grid-column:1/-1;justify-content:center;align-items:center}.library-empty i{color:var(--secondary);font-size:2.5rem}.drive-workflow-box{border:1px solid var(--secondary);border-radius:var(--radius-xs);background:#f3f7f2;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;padding:14px;display:flex}.drive-workflow-box strong{color:var(--secondary)}.drive-workflow-box p,.form-help{color:var(--text-muted);font-size:.78rem;line-height:1.5}.form-row,.checkbox-row{gap:12px;display:flex}.form-group-emoji{width:82px}.checkbox-row{align-items:center;margin:-2px 0 18px;font-size:.9rem;font-weight:600}.checkbox-row input{width:18px;height:18px;accent-color:var(--primary)}#project-modal .modal-content{width:min(92%,640px);max-width:640px;max-height:90vh;overflow-y:auto}.portfolio-card{padding:0 0 18px;position:relative;overflow:visible}.portfolio-card:hover,.portfolio-card:focus-within{z-index:3}.portfolio-card>:not(.portfolio-card-media){margin-left:22px;margin-right:22px}.portfolio-card-media{aspect-ratio:2;border-bottom:2px solid var(--border-color);background:#e8dfd4;border-radius:2px 2px 0 0;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.portfolio-card-media img{object-fit:cover;width:100%;height:100%}.portfolio-card-emoji{font-size:4rem}.portfolio-status{color:var(--white);background:var(--primary);border:1px solid var(--border-color);border-radius:var(--radius-xs);padding:4px 9px;font-size:.72rem;font-weight:700;position:absolute;top:12px;right:12px}.portfolio-card-meta{min-height:18px;color:var(--text-muted);margin-top:14px;font-size:.75rem;font-weight:600}.portfolio-subtitle{min-height:0;color:var(--secondary);font-size:.9rem;font-weight:600}.portfolio-detail-content{width:min(94%,980px);max-width:980px;max-height:90vh;overflow-y:auto}.portfolio-detail-grid{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:28px;display:grid}.portfolio-gallery-stage{aspect-ratio:16/10;border:2px solid var(--border-color);border-radius:var(--radius-xs);background:#eee7de;position:relative;overflow:hidden}.portfolio-detail-image{object-fit:contain;background:var(--white);width:100%;height:100%}.portfolio-detail-placeholder{justify-content:center;align-items:center;width:100%;height:100%;font-size:6rem;display:flex}.portfolio-gallery-btn{width:40px;height:40px;color:var(--white);border:1px solid var(--white);cursor:pointer;background:#2b2b2acc;border-radius:50%;position:absolute;top:50%;transform:translateY(-50%)}.portfolio-gallery-prev{left:12px}.portfolio-gallery-next{right:12px}.portfolio-image-counter{color:var(--text-muted);text-align:center;margin-top:8px;font-size:.78rem}.portfolio-detail-info{flex-direction:column;gap:18px;display:flex}.portfolio-detail-meta{border-left:0;height:auto;margin-bottom:4px;padding-left:0}.portfolio-detail-subtitle{color:var(--secondary);font-size:1.02rem;font-weight:700}.portfolio-detail-description{color:var(--text-dark);white-space:pre-line;line-height:1.75}.tech-category-list{flex-direction:column;gap:13px;display:flex}.tech-category{grid-template-columns:minmax(92px,auto) 1fr;align-items:start;gap:10px;display:grid}.tech-category-title{color:var(--text-muted);letter-spacing:-.02em;padding-top:5px;font-size:.72rem;font-weight:700}.portfolio-detail-links{flex-wrap:wrap;gap:10px;margin-top:auto;display:flex}@media (width>=721px) and (width<=850px){.nav-container{flex-wrap:wrap;gap:10px}.logo,.nav-menus{width:100%}.nav-menus{justify-content:space-between}.past-training-grid,.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.glass-nav{padding:10px 0}.nav-container{flex-wrap:wrap;gap:10px;padding:0 16px}.logo{width:100%;font-size:1.05rem}.logo-icon{font-size:1.25rem}.nav-menus{flex-direction:column;gap:8px;width:100%}.training-nav,.nav-actions{gap:8px;width:100%}.nav-link{flex:1;justify-content:center;padding:8px 6px;font-size:.8rem}.nav-divider{display:none}.nav-actions .btn{white-space:nowrap;flex:1;min-width:0;padding:8px 10px;font-size:.78rem}.container{padding:0 16px}.past-training-section{margin-top:40px;padding-top:22px}.past-training-header{flex-direction:column;align-items:flex-start;gap:14px}.past-training-header .btn{width:100%}.past-training-grid{grid-template-columns:1fr}.past-training-card{min-height:200px}.detail-header{padding-top:20px}.detail-header-row{flex-wrap:wrap;gap:10px}.detail-title{flex:1;min-width:0;font-size:1.35rem}.detail-meta{border-left:0;width:100%;height:auto;padding-left:0}.detail-header-row .admin-only{margin-left:0}.editorial-card{padding:18px}.questions-heading-row,.questions-list-header,.q-header{flex-direction:column;align-items:flex-start}.questions-page-grid{grid-template-columns:1fr}.question-submit-card{position:static}.question-summary,.question-filter-label{width:100%}.question-filter-label{flex-basis:auto}.q-meta{flex-wrap:wrap}.question-training-tag{max-width:100%}.question-admin-actions .btn{flex:130px}.btn-danger-outline{margin-left:0}.drive-workflow-box,.form-row,.portfolio-detail-grid{flex-direction:column;grid-template-columns:1fr}.form-group-emoji{width:100%}#training-list .training-cover{padding:12px}#training-list .training-cover:after{inset:8px}#training-list .training-cover-brand{font-size:.5rem}#training-list .training-cover-title{width:100%;font-size:1rem;line-height:1.08}.training-cover-options{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid-container{grid-template-columns:1fr}.library-guide{align-items:flex-start;padding:20px}.library-guide>i{display:none}.library-grid{grid-template-columns:1fr}.portfolio-detail-content{padding:18px}.tech-category{grid-template-columns:1fr;gap:6px}.tech-tag{position:static}.tech-tooltip{width:100%;max-width:none;inset:calc(100% + 8px) 0 auto;transform:translateY(-4px)}.tech-tag:hover .tech-tooltip,.tech-tag:focus-visible .tech-tooltip,.tech-tag.is-open .tech-tooltip{transform:translateY(0)}.tech-tooltip:after{display:none}}.portfolio-card .portfolio-subtitle,.portfolio-card .card-desc{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.portfolio-card .portfolio-subtitle{-webkit-line-clamp:1;line-clamp:1;margin-bottom:6px}.portfolio-card .card-desc{-webkit-line-clamp:3;line-clamp:3;margin-bottom:12px}.portfolio-card .card-title{margin-top:6px;margin-bottom:6px}.page-private[hidden],html[data-blocked-pages~=campus] [data-page-link=campus],html[data-blocked-pages~=home] [data-page-link=home],html[data-blocked-pages~=projects] [data-page-link=projects],html[data-blocked-pages~=questions] [data-page-link=questions],html[data-blocked-pages~=library] [data-page-link=library]{display:none!important}.page-private{position:relative}body.admin-mode .page-private:before{z-index:1;border:1px solid var(--text-dark);color:var(--text-dark);content:"비공개";pointer-events:none;background:#f4d58a;border-radius:999px;padding:1px 5px;font-size:.58rem;font-weight:800;line-height:1.4;position:absolute;top:-7px;right:-4px}#view-private{padding:72px 0 96px}.private-card{border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--panel-bg);max-width:520px;box-shadow:6px 6px 0 var(--border-color);text-align:center;margin:0 auto;padding:44px 36px 36px}.private-icon{border:2px solid var(--border-color);width:64px;height:64px;color:var(--primary);background:#f4ede3;border-radius:50%;place-items:center;margin-bottom:18px;font-size:1.9rem;display:inline-grid}.private-eyebrow{color:var(--secondary);letter-spacing:.16em;margin-bottom:6px;font-size:.72rem;font-weight:800}.private-title{margin-bottom:12px;font-size:clamp(1.45rem,4vw,1.9rem)}.private-desc{color:var(--text-muted);margin-bottom:26px;font-size:.95rem}.private-desc strong{color:var(--text-dark)}.portal-pages{border:1px solid var(--border-muted);border-radius:var(--radius-sm);margin:4px 0 18px;padding:14px 16px 10px}.portal-pages legend{padding:0 6px;font-size:.9rem;font-weight:700}.portal-pages .portal-settings-note{margin:0 0 10px}.portal-page-row{border-top:1px dashed var(--border-muted);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:9px 2px;display:flex}.portal-page-name{gap:1px;display:grid}.portal-page-name strong{font-size:.88rem}.portal-page-name small{color:var(--text-muted);font-size:.74rem}.portal-page-switch{border:1px solid var(--border-muted);color:var(--text-muted);border-radius:999px;flex:none;align-items:center;gap:6px;padding:4px 10px 4px 8px;font-size:.78rem;font-weight:700;display:inline-flex}.portal-page-row.is-hidden .portal-page-name strong{color:var(--primary)}.portal-page-row.is-hidden .portal-page-switch{border-color:var(--primary);color:var(--primary);background:#fbeee7}.portal-page-switch input{accent-color:var(--primary)}.portal-pages.is-unsupported .portal-page-row{opacity:.55;cursor:not-allowed}.portal-pages-warning{border-left:3px solid var(--danger);color:var(--danger);background:#fbecec;margin:8px 0 4px;padding:8px 10px;font-size:.8rem;font-weight:600}@media (width<=640px){#view-private{padding:40px 0 64px}.private-card{box-shadow:4px 4px 0 var(--border-color);padding:34px 20px 26px}}.question-live{border:1px solid var(--border-muted);color:var(--text-muted);vertical-align:middle;border-radius:999px;align-items:center;gap:5px;margin-left:6px;padding:2px 8px;font-family:Inter,sans-serif;font-size:.68rem;font-weight:700;display:inline-flex}.question-live:before{content:"";background:#b9b3aa;border-radius:50%;width:7px;height:7px}.question-live[data-state=live]{color:var(--secondary);border-color:#a9c6b9}.question-live[data-state=live]:before{background:#3fa06b;animation:1.8s ease-in-out infinite live-pulse}.question-live[data-state=connecting]:before{background:#e0b04f}.question-live[data-state=error]{color:var(--danger);border-color:#e2b4b4}.question-live[data-state=error]:before{background:var(--danger)}.question-live-refresh{border:2px solid var(--secondary);border-radius:var(--radius-sm);width:100%;color:var(--secondary);font:inherit;cursor:pointer;background:#eaf2ee;margin:0 0 12px;padding:10px 14px;font-size:.84rem;font-weight:700;display:block}.question-live-refresh[hidden]{display:none}.question-live-refresh:hover{background:#dcebe3}.live-toast{left:50%;bottom:max(24px, env(safe-area-inset-bottom));z-index:1200;border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--panel-bg);max-width:min(440px,100vw - 32px);box-shadow:4px 4px 0 var(--border-color);color:var(--text-dark);font:inherit;text-align:left;cursor:pointer;padding:12px 18px;font-size:.88rem;font-weight:700;position:fixed;transform:translate(-50%)}.live-toast[hidden]{display:none}.live-toast.is-in{animation:.32s cubic-bezier(.16,1,.3,1) live-toast-in}@keyframes live-pulse{50%{opacity:.35}}@keyframes live-toast-in{0%{opacity:0;transform:translate(-50%,14px)}}#btn-goto-campus{text-decoration:none}.pw-layer{pointer-events:none;z-index:200;position:fixed;inset:0}.pw-character{will-change:transform;opacity:0;transition:opacity .12s;position:absolute;top:0;left:0}.pw-character.is-visible{opacity:1}.pw-character:after{content:"";z-index:-1;background:#263b4236;border-radius:50%;width:26px;height:8px;position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.pw-sprite{image-rendering:pixelated;background-repeat:no-repeat;display:block}.pw-character.is-interacting .pw-sprite{animation:.22s ease-out pw-tap}.pw-bubble{color:#fff;white-space:normal;text-align:center;background:#2b3630;border:2px solid #faf8f5;border-radius:6px;width:max-content;max-width:min(245px,70vw);padding:7px 10px;font-size:.72rem;line-height:1.5;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);box-shadow:2px 3px #263b4226}.pw-bubble[hidden]{display:none}.pw-bubble.is-below{top:calc(100% + 8px);bottom:auto}.pw-bubble kbd{color:#f0ca8d;margin-right:5px;font-size:.64rem}.pw-dock{z-index:1100;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));background:#faf8f5;border:2px solid #2b2b2a;border-radius:9px;align-items:center;gap:6px;padding:6px;display:flex;position:fixed;box-shadow:3px 3px #2b2b2a}.pw-dock button{cursor:pointer;background:var(--secondary);color:#fff;border:0;border-radius:4px;min-height:40px;padding:10px 13px;font:700 .74rem inherit}.pw-dock a{color:var(--secondary);padding:9px;font-size:.72rem;text-decoration:none}.pw-dock button:focus-visible,.pw-dock a:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.pw-dock button:disabled{cursor:default;background:#746f67}.pw-guide{z-index:210;border:1px solid #c9c2b7;border-left:4px solid var(--secondary);max-width:350px;color:var(--text-dark);pointer-events:none;background:#faf8f5f5;border-radius:6px;padding:12px 16px;font-size:.77rem;position:fixed;bottom:22px;left:24px;box-shadow:0 5px 25px #2b2b2a12}.pw-guide strong{color:var(--secondary);margin-bottom:4px;display:block}.pw-guide small{color:var(--text-muted);margin-top:5px;display:block}.pw-near{outline-offset:4px;outline:2px solid #3c6255!important}.glass-card.pw-near{transform:translateY(-2px);box-shadow:7px 8px #3c6255!important}.btn.pw-near{transform:translateY(-2px);box-shadow:3px 4px #3c6255}.input-field.pw-near{outline-offset:2px;box-shadow:0 0 0 6px #3c625518}.pw-pressed{animation:.22s ease-out pw-press}.pw-transition{z-index:300;pointer-events:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#f7f2e9ed;place-items:center;display:grid;position:fixed;inset:0}.pw-transition[hidden]{display:none}.pw-passage{text-align:center;background:#e2e7da;border-block:2px solid #bdc8b8;width:min(380px,80vw);padding:24px}.pw-passage-track{border-bottom:4px solid #b8ae97;height:65px;margin-bottom:18px;position:relative}.pw-traveller{animation:.5s ease-in-out forwards pw-travel;position:absolute;bottom:0;left:10%}.pw-traveller .pw-sprite{animation:pw-passage-walk .5s steps(var(--pw-walk-frames)) infinite}.pw-passage strong{color:var(--secondary);font-size:.9rem}.pw-passage span{color:var(--text-muted);margin-top:8px;font-size:.72rem;display:block}.pw-touch{z-index:210;pointer-events:none;height:140px;display:none;position:fixed;inset:auto 0 0}.pw-touch button{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;cursor:pointer}.pw-touch .pw-joystick{left:max(18px,env(safe-area-inset-left));bottom:max(22px,env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2b363055;border:2px solid #faf8f588;border-radius:50%;width:112px;height:112px;padding:0;position:absolute;box-shadow:inset 0 0 0 12px #faf8f522,0 3px 12px #1d2a1f33}.pw-joystick-knob{pointer-events:none;background:#faf8f5dd;border:2px solid #3c625588;border-radius:50%;position:absolute;inset:31px;box-shadow:0 3px 8px #1d2a1f44}.pw-joystick:not(.is-held) .pw-joystick-knob{transition:transform .12s ease-out}.pw-touch .pw-touch-action{right:max(20px,env(safe-area-inset-right));bottom:max(36px,env(safe-area-inset-bottom));color:#fff;background:#3c62558c;border:2px solid #faf8f5cc;border-radius:50%;width:72px;height:72px;font:800 .85rem sans-serif;position:absolute;box-shadow:0 3px 12px #1d2a1f44}.pw-touch button:focus-visible{outline-offset:4px;outline:3px solid #f2c56b}.pw-sr{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.portal-settings-content{max-height:85dvh;overflow:auto}.portal-settings-note{color:var(--text-muted);margin:12px 0;font-size:.8rem}@keyframes pw-tap{50%{transform:translateY(-7px)scale(1.05)}}@keyframes pw-press{50%{translate:1px 3px}}@keyframes pw-travel{to{left:75%}}@keyframes pw-passage-walk{to{background-position-x:var(--pw-walk-end)}}@media (width<=720px){.training-nav{gap:2px}.training-nav .nav-link{white-space:nowrap;gap:4px;padding:8px 3px;font-size:.74rem}.pw-guide{max-width:none;font-size:.7rem;bottom:125px;left:16px;right:16px}.pw-dock{bottom:12px;right:12px}.pw-dock a{display:none}.pw-dock button{padding:9px}body.pw-playing .pw-touch:not(.campus-touch){display:block}body.pw-paused .pw-touch:not(.campus-touch){display:none}}@media (pointer:coarse){body.pw-playing .pw-touch:not(.campus-touch){display:block}body.pw-paused .pw-touch:not(.campus-touch){display:none}}.pw-door-scene{background:#e2e7da;border:2px solid #2b2b2a;border-radius:8px;flex-direction:column;align-items:center;gap:8px;width:min(300px,80vw);padding:22px 24px 16px;display:flex;box-shadow:4px 4px #2b2b2a;background-image:none!important}.pw-door{background:#2b3630;border:3px solid #2b2b2a;border-bottom:0;width:72px;height:92px;margin-bottom:30px;position:relative;overflow:visible}.pw-door-light{background:radial-gradient(at 50% 85%,#ffe8b0,#f0b86a 55%,#b85c38);position:absolute;inset:0}.pw-door-leaf{transform-origin:0;background:#3c514b;border-right:3px solid #2b2b2a;position:absolute;inset:0}.pw-door-leaf:after{content:"";background:#dfbf6c;width:4px;height:8px;position:absolute;top:46%;right:7px}.pw-door .pw-traveller{opacity:0;animation:none;position:absolute;bottom:0;left:50%;transform:translate(-50%)scale(.72)}.pw-transition.is-playing .pw-door-leaf{animation:.28s ease-out forwards pw-door-open}.pw-transition.is-playing .pw-door .pw-traveller{animation:.5s ease-out .2s forwards pw-walk-out}.pw-door-scene strong{color:var(--secondary);font-size:.92rem}.pw-door-scene span{color:var(--text-muted);font-size:.68rem}@keyframes pw-door-open{to{transform:scaleX(.14)}}@keyframes pw-walk-out{0%{opacity:0;transform:translate(-50%,-4px)scale(.72)}30%{opacity:1}to{opacity:1;transform:translate(-50%,34px)scale(1.05)}}.pw-exit{z-index:190;left:max(14px,env(safe-area-inset-left));color:#2b2b2a;letter-spacing:.08em;flex-direction:column;align-items:center;gap:4px;font:800 .62rem Outfit,Inter,sans-serif;text-decoration:none;display:none;position:fixed;top:96px}body.pw-playing:not(.campus-active) .pw-exit{display:flex}.pw-exit-door{background:#3c514b;border:2.5px solid #2b2b2a;border-bottom-width:4px;width:30px;height:40px;position:relative;box-shadow:3px 3px #2b2b2a33}.pw-exit-door:after{content:"";background:#dfbf6c;width:3px;height:6px;position:absolute;top:46%;right:4px}.pw-exit>span:last-child{background:#faf8f5;border:1.5px solid #2b2b2a;border-radius:999px;padding:2px 8px}.pw-exit:hover .pw-exit-door,.pw-exit.pw-near .pw-exit-door{background:radial-gradient(at 50% 85%,#ffe8b0,#f0b86a 60%,#b85c38)}.pw-exit:focus-visible{outline:3px solid var(--primary);outline-offset:3px}@media (width<=1180px){.pw-exit{top:auto;left:auto;right:max(14px,env(safe-area-inset-right));bottom:calc(max(18px,env(safe-area-inset-bottom)) + 64px)}}.pw-dock .pw-sound{color:#2b2b2a;background:#faf8f5;border:1.5px solid #2b2b2a;padding:8px 10px}.pw-toast{z-index:1050;color:#faf8f5;text-align:center;pointer-events:none;background:#2b3630f2;border:2px solid #faf8f5;border-radius:8px;max-width:min(560px,88vw);padding:10px 16px;font-size:.8rem;line-height:1.5;position:fixed;top:96px;left:50%;translate:-50%;box-shadow:3px 4px #1d2a1f55}.pw-toast.is-secret{color:#fff3d1;background:#3c2f1ef2;border-color:#f4d58a}.pw-toast[hidden]{display:none}.pw-toast.is-in{animation:.4s cubic-bezier(.2,.9,.3,1.3) both pw-toast-in}.pw-marker{pointer-events:none;border:2px solid #3c6255;border-radius:50%;width:12px;height:8px;position:absolute;top:-4px;left:-6px}.pw-marker[hidden]{display:none}.pw-marker.is-on{animation:.6s ease-out pw-marker}body.pw-playing .pw-egg{position:relative}body.pw-playing .pw-egg:after{content:"✦";color:#e0a93a;pointer-events:none;font-size:.7rem;animation:2.4s ease-in-out infinite pw-twinkle;position:absolute;top:-6px;right:-14px}@keyframes pw-toast-in{0%{opacity:0;transform:translateY(-10px)scale(.96)}}@keyframes pw-marker{0%{transform-origin:50%;opacity:.2;scale:1.8}}@keyframes pw-twinkle{0%,70%,to{opacity:0;transform:scale(.6)}80%{opacity:1;transform:scale(1.2)}}.pw-egg-anchor{transform-origin:50% 90%;display:inline-block}.pw-egg-mark{color:#2b2b2a;vertical-align:.25em;width:1.15em;height:1.15em;transform-style:preserve-3d;background:#f4d58a;border:2px solid #2b2b2a;border-radius:4px;place-items:center;margin-left:.35em;font:800 .62em Outfit,sans-serif;display:inline-grid;box-shadow:2px 2px #2b2b2a}.pw-egg-mark.is-answered{color:#fff;background:#e07a4f}.pw-egg-anchor[data-egg=potion].is-egg{animation:1.1s cubic-bezier(.3,1.4,.5,1) pw-flask}.pw-egg-anchor[data-egg=pages].is-egg{animation:1.1s ease-in-out pw-book}.hero-badge[data-egg=chalk]{position:relative}.hero-badge[data-egg=chalk].is-egg{animation:.9s ease-in-out pw-wiggle}.hero-badge[data-egg=chalk].is-egg:before{content:"";background:repeating-linear-gradient(90deg,#3c6255 0 6px,#0000 6px 9px);height:3px;animation:.6s steps(8,end) both pw-chalk-line;position:absolute;bottom:-7px;left:6%;right:6%}.pw-egg-mark.is-egg{animation:.7s ease-in-out pw-mark-flip,.5s ease-out .7s pw-bounce}.pw-character.is-cheering .pw-sprite{animation:.42s ease-out 2 pw-hop}@keyframes pw-flask{0%{transform:none}15%{filter:drop-shadow(0 0 6px #86ad73);transform:rotate(-18deg)scale(1.35)}30%{transform:rotate(16deg)scale(1.4)}45%{transform:rotate(-12deg)scale(1.35)}60%{filter:drop-shadow(0 0 10px #f4d58a);transform:rotate(8deg)scale(1.25)}to{transform:none}}@keyframes pw-book{0%{transform:none}40%{transform:perspective(200px)rotateY(180deg)scale(1.4)translateY(-6px)}70%{transform:perspective(200px)rotateY(360deg)scale(1.3)translateY(-8px)}to{transform:none}}@keyframes pw-wiggle{0%,to{transform:none}20%{transform:rotate(-4deg)scale(1.08)}40%{transform:rotate(3deg)scale(1.1)}60%{transform:rotate(-2deg)scale(1.06)}80%{transform:rotate(1deg)}}@keyframes pw-chalk-line{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes pw-mark-flip{0%{transform:none}50%{transform:rotateY(90deg)scale(1.4)}to{transform:rotateY(0)scale(1)}}@keyframes pw-bounce{0%,to{transform:none}40%{transform:translateY(-10px)scale(1.15)}70%{transform:translateY(2px)scale(.95)}}@keyframes pw-hop{0%,to{transform:none}45%{transform:translateY(-10px)}}@media (pointer:coarse),(width<=720px){.pw-guide{display:none}body.campus-active .campus-touch{display:block}body.campus-active .campus-map-hud{bottom:156px}body.campus-active .campus-corner{bottom:150px}body.campus-active .campus-hint{bottom:280px}body:not(.campus-active) .pw-dock{bottom:146px}}body.campus-active{overflow:hidden}body.campus-active .glass-nav{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#faf8f5e0;position:fixed;inset:0 0 auto}#view-campus{z-index:1;background:#7f9a6c;position:fixed;inset:0;overflow:hidden}.campus-canvas{touch-action:none;-webkit-tap-highlight-color:transparent;width:100%;height:100%;display:block;position:absolute;inset:0}.campus-vignette{pointer-events:none;background:radial-gradient(75% 70% at 50% 55%,#0000 60%,#1d2a1f38 100%);position:absolute;inset:0}.campus-bubble{z-index:3;color:#fff;white-space:nowrap;pointer-events:none;background:#2b3630;border:2px solid #faf8f5;border-radius:6px;align-items:center;gap:7px;max-width:min(260px,72vw);padding:7px 11px;font-size:.74rem;line-height:1.4;display:flex;position:absolute;top:0;left:0;box-shadow:2px 3px #263b4240}.campus-bubble.is-touch{pointer-events:auto;cursor:pointer;padding:10px 14px;font-size:.8rem}.campus-bubble[hidden]{display:none}.campus-bubble kbd{color:#f0ca8d;letter-spacing:.04em;font:800 .64rem Outfit,sans-serif}.campus-hint{z-index:3;left:50%;bottom:max(18px,env(safe-area-inset-bottom));color:#2b2b2a;letter-spacing:.02em;pointer-events:none;white-space:nowrap;background:#faf8f5ee;border:2px solid #2b2b2a;border-radius:6px;padding:9px 14px;font:600 .74rem Outfit,Inter,sans-serif;position:absolute;translate:-50%;box-shadow:3px 3px #2b2b2a}.campus-hint[hidden]{display:none}.campus-shortcuts{z-index:4;clip-path:inset(50%);gap:8px;display:flex;position:absolute;bottom:18px;left:50%;translate:-50%}.campus-shortcuts:focus-within{clip-path:none}.campus-shortcuts button{cursor:pointer;white-space:nowrap;background:#faf8f5;border:2px solid #2b2b2a;border-radius:6px;padding:10px 14px;font:700 .78rem Inter,sans-serif;box-shadow:3px 3px #2b2b2a}.campus-shortcuts button:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.campus-corner{z-index:3;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));gap:6px;display:flex;position:absolute}.campus-corner button,.campus-corner a{letter-spacing:.12em;color:#2b2b2a;cursor:pointer;background:#faf8f5d9;border:1.5px solid #2b2b2a;border-radius:999px;padding:7px 11px;font:700 .66rem Outfit,Inter,sans-serif;text-decoration:none}.campus-corner button:focus-visible,.campus-corner a:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.campus-map-hud{z-index:3;left:max(18px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));flex-direction:column;gap:6px;display:flex;position:absolute}.campus-minimap{width:192px;height:128px;image-rendering:pixelated;cursor:crosshair;touch-action:none;background:#7f9a6c;border:2px solid #2b2b2a;border-radius:6px;display:block;box-shadow:3px 3px #2b2b2a}.campus-map-bar{justify-content:space-between;align-items:center;gap:6px;display:flex}.campus-found,.campus-minimap-toggle{letter-spacing:.1em;color:#2b2b2a;background:#faf8f5e6;border:1.5px solid #2b2b2a;border-radius:999px;padding:5px 10px;font:800 .66rem Outfit,Inter,sans-serif}.campus-found.is-complete{background:#f4d58a}.campus-minimap-toggle{cursor:pointer}.minimap-collapsed .campus-minimap{display:none}.campus-map-hud{position:absolute}.campus-map-hud .campus-minimap-toggle{z-index:1;padding:3px 8px;font-size:12px;position:absolute;top:8px;left:8px}.minimap-collapsed .campus-map-hud .campus-minimap-toggle,.campus-map-hud.minimap-collapsed .campus-minimap-toggle{align-self:flex-start;position:static}.campus-minimap-toggle:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.campus-toast{z-index:5;color:#faf8f5;text-align:center;pointer-events:none;background:#2b3630f2;border:2px solid #faf8f5;border-radius:8px;max-width:min(560px,88vw);padding:10px 16px;font-size:.8rem;line-height:1.5;position:absolute;top:104px;left:50%;translate:-50%;box-shadow:3px 4px #1d2a1f55}.campus-toast[data-kind=secret]{color:#fff3d1;background:#3c2f1ef2;border-color:#f4d58a}.campus-toast[hidden]{display:none}.campus-toast.is-in{animation:.4s cubic-bezier(.2,.9,.3,1.3) both campus-toast-in}.campus-note{z-index:6;background:#faf8f5;border:3px solid #2b2b2a;border-radius:8px;flex-direction:column;gap:12px;width:min(420px,88vw);padding:20px 22px;display:flex;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:6px 6px #2b2b2a}.campus-note[hidden]{display:none}.campus-note strong{color:#b85c38;letter-spacing:.04em;font:800 1rem Outfit,Inter,sans-serif}.campus-note code{color:#f3ead7;white-space:pre-wrap;background:#2b3630;border-radius:6px;padding:12px 14px;font:600 .82rem/1.6 ui-monospace,Consolas,monospace}.campus-note button{color:#fff;cursor:pointer;background:#3c6255;border:0;border-radius:4px;align-self:flex-end;padding:8px 16px;font:700 .76rem Inter,sans-serif}.campus-arcade{z-index:6;color:#f3ead7;background:#1e1a2e;border:3px solid #2b2b2a;border-radius:8px;flex-direction:column;gap:12px;width:min(460px,90vw);padding:20px 22px;font-size:.82rem;line-height:1.6;display:flex;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:6px 6px #2b2b2a}.campus-arcade[hidden]{display:none}.campus-arcade strong{color:#f4d58a;letter-spacing:.04em;font:800 .95rem Outfit,Inter,sans-serif}.campus-arcade b{color:#f4d58a}.campus-arcade i{color:#d8d2ee;font-style:italic}.campus-arcade-lights{gap:6px;display:flex}.campus-arcade-lights i{background:#2d4a40;border-radius:3px;width:14px;height:14px;transition:background .15s,box-shadow .15s;box-shadow:inset 0 0 0 2px #16231d}.campus-arcade-lights i.is-on{background:#f4d58a;box-shadow:0 0 8px #f4d58a}.campus-arcade-note{color:#b8b0d8;font-size:.76rem}.campus-info{z-index:6;background:#faf8f5;border:3px solid #2b2b2a;border-radius:8px;flex-direction:column;gap:10px;width:min(480px,90vw);max-height:min(70vh,560px);padding:18px 20px;display:flex;position:absolute;top:50%;left:50%;overflow:auto;translate:-50% -50%;box-shadow:6px 6px #2b2b2a}.campus-info[hidden]{display:none}.campus-info-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.campus-info-title{color:#3c6255;font:800 1rem Outfit,Inter,sans-serif}.campus-info-close{cursor:pointer;background:#faf8f5;border:2px solid #2b2b2a;border-radius:6px;width:32px;height:32px;font-size:1.1rem}.campus-info-lead{color:#5d6166;font-size:.8rem}.campus-info-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.campus-info-list li{background:#f3ead7;border:1.5px solid #ddd0b6;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.campus-info-list strong{color:#2b2b2a;font-size:.86rem;display:block}.campus-info-list span{color:#7d7468;margin-top:2px;font-size:.72rem;display:block}.campus-info-list button,.campus-info-footer{color:#fff;cursor:pointer;background:#3c6255;border:0;border-radius:4px;flex:none;padding:8px 12px;font:700 .74rem Inter,sans-serif}.campus-info-footer{background:#b85c38;align-self:flex-end}.campus-info button:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.campus-arcade-pad{flex-wrap:wrap;gap:6px;display:none}.campus-arcade-pad button{color:#2b2b2a;background:#f3ead7;border:2px solid #2b2b2a;border-radius:6px;min-width:44px;min-height:44px;font:800 1rem Outfit,sans-serif}@media (pointer:coarse){.campus-arcade-pad{display:flex}}.campus-arcade-close{color:#fff;cursor:pointer;background:#7d6fb5;border:0;border-radius:4px;align-self:flex-end;padding:8px 16px;font:700 .76rem Inter,sans-serif}@keyframes campus-toast-in{0%{opacity:0;transform:translateY(-10px)scale(.96)}}body.campus-active .pw-dock{display:none}@media (width<=720px){body.campus-active .nav-actions,body.campus-active .logo-tagline{display:none}.campus-hint{white-space:normal;text-align:center;width:max-content;max-width:calc(100vw - 24px);bottom:132px}.campus-corner{bottom:12px;right:12px}.campus-map-hud{bottom:12px;left:12px}.campus-minimap{width:120px;height:80px}.campus-toast{font-size:.74rem;top:96px}}.campus-rehide{color:#2b2b2a;cursor:pointer;background:#f4d58ae6;border:1.5px solid #2b2b2a;border-radius:999px;padding:5px 10px;font:700 12px Galmuri11,Malgun Gothic,sans-serif}.campus-rehide:hover,.campus-rehide:focus-visible{background:#f4d58a;box-shadow:2px 2px #2b2b2a}.campus-rehide[hidden]{display:none}.campus-sky{z-index:3;left:max(18px,env(safe-area-inset-left));pointer-events:auto;opacity:.72;flex-direction:column;align-items:center;gap:2px;transition:opacity .2s;display:flex;position:absolute;top:100px}.campus-sky:hover{opacity:1}.campus-sky canvas{width:256px;height:96px;image-rendering:pixelated;filter:drop-shadow(2px 2px #2b2b2a55);display:block}.campus-sky__label{color:#fbf1d6;text-shadow:1px 0 #2b2b2a,-1px 0 #2b2b2a,0 1px #2b2b2a,0 -1px #2b2b2a,2px 2px #2b2b2a;font:700 12px/1 Galmuri11,Malgun Gothic,sans-serif}body:not(.campus-active) .campus-sky{display:none}@media (width<=720px){.campus-sky{top:96px;left:10px}.campus-sky canvas{width:128px;height:48px}}.hs-volume{z-index:1000;color:#2b2b2a;background:#faf8f5;border:2px solid #2b2b2a;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font:700 12px/1 Outfit,Inter,system-ui,Malgun Gothic,sans-serif;display:flex;position:fixed;box-shadow:3px 3px #2b2b2a}.hs-volume[hidden]{display:none}.hs-volume__label{white-space:nowrap;color:#3c6255}.hs-volume__value{text-align:right;font-variant-numeric:tabular-nums;min-width:34px}.hs-volume__range{--fill:80%;appearance:none;cursor:pointer;background:0 0;width:104px;height:18px;margin:0}.hs-volume__range::-webkit-slider-runnable-track{background:linear-gradient(90deg, #b85c38 var(--fill), #e7d9b9 var(--fill));border:1.5px solid #2b2b2a;border-radius:4px;height:6px}.hs-volume__range::-moz-range-track{background:linear-gradient(90deg, #b85c38 var(--fill), #e7d9b9 var(--fill));border:1.5px solid #2b2b2a;border-radius:4px;height:6px}.hs-volume__range::-webkit-slider-thumb{-webkit-appearance:none;background:#faf8f5;border:2px solid #2b2b2a;border-radius:3px;width:14px;height:14px;margin-top:-5.5px}.hs-volume__range::-moz-range-thumb{background:#faf8f5;border:2px solid #2b2b2a;border-radius:3px;width:12px;height:12px}.hs-volume__range:focus-visible{outline-offset:3px;outline:2px solid #3c6255}.rpg-dialogue{z-index:20;box-sizing:border-box;color:#2b2b2a;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#faf8f5;border:3px solid #2b2b2a;border-radius:8px;grid-template-columns:132px minmax(0,1fr);align-items:start;gap:18px;width:min(720px,94vw);max-width:calc(100% - 12px);padding:26px 20px 14px;font-family:Outfit,Inter,system-ui,Malgun Gothic,sans-serif;display:grid;position:absolute;bottom:96px;left:50%;transform:translate(-50%);box-shadow:4px 4px #2b2b2a}.rpg-dialogue[hidden],.rpg-dialogue [hidden]{display:none}.rpg-dialogue:before{content:"";pointer-events:none;border:1px solid #b85c3833;border-radius:3px;position:absolute;inset:4px}.rpg-dialogue .rpg-dialogue__portrait{box-sizing:border-box;width:132px;height:132px;image-rendering:pixelated;background:#f4d58a;border:2px solid #3c6255;border-radius:6px;display:block;box-shadow:2px 2px #2b2b2a}.rpg-dialogue .rpg-dialogue__body{min-width:0}.rpg-dialogue .rpg-dialogue__heading{align-items:center;gap:8px;display:flex;position:absolute;top:0;left:170px;right:20px;transform:translateY(-50%)}.rpg-dialogue .rpg-dialogue__name{color:#faf8f5;text-overflow:ellipsis;white-space:nowrap;background:#2b2b2a;border-radius:6px;min-width:0;max-width:65%;padding:5px 11px;font-size:.95rem;font-weight:800;line-height:1.4;overflow:hidden;box-shadow:2px 2px #b85c38}.rpg-dialogue .rpg-dialogue__role{color:#736d63;text-overflow:ellipsis;white-space:nowrap;background:#faf8f5;min-width:0;padding:2px 4px;font-size:.72rem;line-height:1.4;overflow:hidden}.rpg-dialogue .rpg-dialogue__text{overflow-wrap:anywhere;min-height:4.8em;margin:0 0 8px;font-size:1rem;line-height:1.6}.rpg-dialogue .rpg-dialogue__typed{white-space:pre-wrap}.rpg-dialogue .rpg-dialogue__hint{color:#736d63;letter-spacing:.06em;text-align:right;padding-right:24px;font-size:.65rem;font-weight:600;line-height:1.6;display:block}.rpg-dialogue .rpg-dialogue__indicator{color:#b85c38;font-size:.8rem;line-height:1.2;animation:.16s ease-out rpg-dialogue-bounce,1s step-end .16s infinite rpg-dialogue-blink;position:absolute;bottom:13px;right:18px}.rpg-dialogue .rpg-dialogue__sr{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.rpg-dialogue.is-opening{animation:.18s ease-out both rpg-dialogue-open}.rpg-dialogue.is-closing{pointer-events:none;animation:.12s ease-in both rpg-dialogue-close}@keyframes rpg-dialogue-open{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@keyframes rpg-dialogue-close{0%{opacity:1}to{opacity:0}}@keyframes rpg-dialogue-bounce{50%{transform:translateY(-1px)}}@keyframes rpg-dialogue-blink{50%{opacity:0}}@media (width<=720px){.rpg-dialogue{grid-template-columns:68px minmax(0,1fr);gap:12px;padding:26px 12px 14px;bottom:150px}.rpg-dialogue .rpg-dialogue__portrait{width:68px;height:68px}.rpg-dialogue .rpg-dialogue__heading{gap:5px;left:92px;right:12px}}@font-face{font-family:Galmuri11;src:url(/assets/Galmuri11-DfQIlyDK.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Galmuri11;src:url(/assets/Galmuri11-Bold-QdFGsJ3v.woff2)format("woff2");font-weight:700;font-display:swap}:root{--pixel-font:"Galmuri11", "Malgun Gothic", system-ui, sans-serif}html body .campus-bubble,html body .campus-bubble kbd,html body .campus-hint,html body .campus-corner button,html body .campus-corner a,html body .campus-found,html body .campus-minimap-toggle,html body .campus-shortcuts button,html body .campus-note strong,html body .campus-note button,html body .campus-arcade,html body .campus-arcade strong,html body .campus-arcade-pad button,html body .campus-arcade-close,html body .campus-info,html body .campus-info-title,html body .campus-info-list button,html body .campus-info-footer,html body .campus-toast,html body .hs-volume{font-family:var(--pixel-font);letter-spacing:0;-webkit-font-smoothing:none}html body .campus-hint,html body .campus-corner button,html body .campus-corner a,html body .campus-found,html body .campus-minimap-toggle,html body .campus-bubble kbd,html body .hs-volume{font-size:12px;font-weight:700}html body .campus-note strong,html body .campus-arcade strong,html body .campus-info-title{font-size:24px;font-weight:700;line-height:1.1}html body .rpg-dialogue{font-family:var(--pixel-font);-webkit-font-smoothing:none}html body .rpg-dialogue .rpg-dialogue__name{letter-spacing:0;font-size:12px;font-weight:700}html body .rpg-dialogue .rpg-dialogue__role{letter-spacing:0;font-size:12px;font-weight:400}html body .rpg-dialogue .rpg-dialogue__text{letter-spacing:0;font-size:24px;font-weight:400;line-height:1.45}html body .rpg-dialogue .rpg-dialogue__hint{letter-spacing:0;font-size:12px}@media (width<=720px){html body .rpg-dialogue .rpg-dialogue__text{font-size:12px;line-height:1.6}}html body .rpg-dialogue .rpg-dialogue__name{border:2px solid #2b2b2a;border-radius:4px;padding:6px 10px;line-height:1;box-shadow:3px 3px #b85c38}html body .rpg-dialogue .rpg-dialogue__role{color:#2d4a40;background:#f4d58a;border:2px solid #2b2b2a;border-radius:4px;padding:5px 8px;line-height:1;box-shadow:3px 3px #2b2b2a}html body .rpg-dialogue .rpg-dialogue__role:before{content:"◆ ";color:#b85c38}.campus-found{cursor:pointer}.campus-found:hover,.campus-found:focus-visible{background:#fff;outline:none;box-shadow:2px 2px #2b2b2a}.campus-notebook{z-index:7;left:50%;top:calc(var(--campus-nav,64px) + (100% - var(--campus-nav,64px)) / 2);width:min(620px,94vw);max-height:min(calc(100% - var(--campus-nav,64px) - 28px), 760px);overscroll-behavior:contain;color:#2b2b2a;background:#faf8f5;border:3px solid #2b2b2a;border-radius:8px;flex-direction:column;gap:14px;padding:18px 20px 16px;display:flex;position:absolute;overflow:auto;translate:-50% -50%;box-shadow:6px 6px #2b2b2a}.campus-notebook[hidden]{display:none}.notebook-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.notebook-title{color:#3c6255;font:700 1.05rem Galmuri11,Malgun Gothic,sans-serif}.notebook-rank{background:#f3ead7;border:2px solid #2b2b2a;border-radius:6px;grid-template-columns:auto 1fr minmax(120px,42%);align-items:center;gap:12px;padding:12px 14px;display:grid}.notebook-rank.is-master{background:linear-gradient(120deg,#f4d58a,#fff3c9 50%,#f4d58a)}.notebook-rank-icon{font-size:1.9rem;line-height:1}.notebook-rank small{color:#7d7468;font-size:.68rem;font-weight:700;display:block}.notebook-rank strong{font:700 .98rem Galmuri11,Malgun Gothic,sans-serif}.notebook-progress{background:#fff;border:2px solid #2b2b2a;border-radius:999px;height:22px;position:relative;overflow:hidden}.notebook-progress i{background:repeating-linear-gradient(45deg,#3c6255 0 8px,#4d7a6a 8px 16px);transition:width .5s;position:absolute;inset:0 auto 0 0}.notebook-progress b{text-align:center;color:#2b2b2a;text-shadow:0 0 3px #fff,0 0 3px #fff;font:700 .72rem/18px Galmuri11,sans-serif;display:block;position:relative}.notebook-section h3{color:#2b2b2a;border-bottom:2px dashed #ddd0b6;justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 8px;padding-bottom:4px;font:700 .84rem Galmuri11,Malgun Gothic,sans-serif;display:flex}.notebook-section h3 b{color:#b85c38;font-size:.74rem}.notebook-section ul{margin:0;padding:0;list-style:none}.notebook-stamps{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;display:grid}.notebook-stamp{text-align:center;color:#9a9187;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;font-size:.7rem;display:flex}.notebook-stamp-mark{color:#c9bfae;background:#fff;border:2px dashed #c9bfae;border-radius:50%;place-items:center;width:50px;height:50px;font:700 1.1rem Galmuri11,sans-serif;display:grid}.notebook-stamp.is-got{color:#2b2b2a;font-weight:700}.notebook-stamp.is-got .notebook-stamp-mark{color:inherit;background:#fdf1ec;border:3px double #c0392b;font-size:1.45rem;rotate:-8deg;box-shadow:inset 0 0 0 2px #fdf1ec,inset 0 0 0 3px #e7a99d}.notebook-people{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;display:grid}.notebook-person{text-align:center;background:#fff;border:1.5px solid #ddd0b6;border-radius:6px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.notebook-person img,.notebook-person-mystery{border-radius:4px;width:54px;height:54px}.notebook-person img{image-rendering:pixelated;object-fit:cover}.notebook-person .notebook-person-mystery{color:#c9bfae;background:#f6f1e8;border:2px dashed #c9bfae;place-items:center;font:700 1.3rem Galmuri11,sans-serif;display:grid}.notebook-person span{color:#9a9187;font-size:.74rem;font-weight:700}.notebook-person small{color:#9a9187;font-size:.62rem;line-height:1.3}.notebook-person.is-got span{color:#2b2b2a}.notebook-works{flex-wrap:wrap;gap:6px;display:flex}.notebook-work{color:#9a9187;border:1.5px dashed #c9bfae;border-radius:999px;align-items:center;gap:5px;max-width:100%;padding:5px 10px;font-size:.72rem;display:inline-flex}.notebook-work span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.notebook-work.is-got{color:#2b2b2a;background:#eaf2ee;border-style:solid;border-color:#3c6255;font-weight:700}.notebook-empty{color:#7d7468;font-size:.76rem}.notebook-secrets{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px;display:grid}.notebook-secret{background:#fff;border:1.5px solid #ddd0b6;border-radius:6px;align-items:flex-start;gap:8px;padding:7px 10px;display:flex}.notebook-secret>span{color:#c9bfae;font-size:1rem;line-height:1.2}.notebook-secret strong{color:#9a9187;font-size:.76rem;display:block}.notebook-secret small{color:#7d7468;margin-top:2px;font-size:.66rem;line-height:1.4;display:block}.notebook-secret.is-got{background:#fff8e2;border-color:#e5c56f}.notebook-secret.is-got>span{color:#d29a16}.notebook-secret.is-got strong{color:#2b2b2a}.notebook-foot{color:#7d7468;text-align:center;margin:0;font-size:.68rem}.campus-notebook button:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.campus-stamp-pop{z-index:8;left:50%;top:calc(var(--campus-nav,64px) + 16px);color:#2b2b2a;pointer-events:none;background:#faf8f5;border:2px solid #2b2b2a;border-radius:999px;align-items:center;gap:10px;padding:8px 16px 8px 10px;font:700 .8rem Galmuri11,Malgun Gothic,sans-serif;display:flex;position:absolute;translate:-50%;box-shadow:3px 3px #2b2b2a}.campus-stamp-pop[hidden]{display:none}.campus-stamp-pop-mark{background:#fdf1ec;border:3px double #c0392b;border-radius:50%;place-items:center;width:34px;height:34px;font-size:1.1rem;display:grid;rotate:-10deg}.campus-stamp-pop.is-in{animation:.55s cubic-bezier(.2,1.6,.4,1) stamp-pop-in}.campus-stamp-pop.is-in .campus-stamp-pop-mark{animation:.5s ease-out .1s both stamp-thump}@keyframes stamp-pop-in{0%{opacity:0;transform:translateY(-14px)scale(.9)}}@keyframes stamp-thump{0%{opacity:0;transform:scale(2.2)}60%{opacity:1;transform:scale(.9)}to{transform:scale(1)}}@media (width<=560px){.campus-notebook{gap:12px;padding:14px 12px}.notebook-rank{grid-template-columns:auto 1fr}.notebook-progress{grid-column:1/-1}.notebook-stamps{grid-template-columns:repeat(auto-fill,minmax(74px,1fr))}.notebook-stamp-mark{width:42px;height:42px}.notebook-secrets{grid-template-columns:1fr}}.intro-canvas{z-index:150;pointer-events:none;width:100%;height:100%;transition:opacity .35s;position:fixed;inset:0}.intro-canvas.is-leaving{opacity:0}.intro-chrome{z-index:160;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));gap:8px;animation:.6s .5s both intro-fade;display:flex;position:fixed}.intro-chrome button{letter-spacing:.16em;color:#f3ead7a6;cursor:pointer;background:#14171299;border:1px solid #f3ead733;border-radius:999px;padding:9px 15px;font:700 .68rem Outfit,Inter,sans-serif}.intro-chrome button:hover,.intro-chrome button:focus-visible{color:#fff;border-color:#f3ead7aa;outline:none}.intro-chrome button[hidden]{display:none}.intro-press{z-index:155;pointer-events:none;text-align:center;flex-direction:column;align-items:center;gap:8px;animation:.8s ease-out both intro-fade;display:flex;position:fixed;left:50%;translate:-50%}.intro-press[hidden]{display:none}.intro-press strong{letter-spacing:.42em;color:#f3ead7;padding-left:.42em;font:800 .82rem Outfit,sans-serif;animation:1.2s steps(2,end) infinite intro-blink}.intro-press span{color:#f3ead780;letter-spacing:.04em;font-size:.72rem}@keyframes intro-blink{50%{opacity:.25}}.intro-press.is-paper strong{letter-spacing:.04em;color:#2b2b2a;padding-left:.04em;font:700 clamp(1.05rem,2.2vw,1.4rem) Outfit,Pretendard,Malgun Gothic,sans-serif;animation:1.6s ease-in-out infinite intro-breathe}.intro-press.is-paper span{color:#7a7570;font-size:.8rem}@keyframes intro-breathe{50%{opacity:.45}}html[data-intro-style=paper] .intro-chrome button{color:#2b2b2acc;background:#faf8f5cc;border-color:#2b2b2a33}html[data-intro-style=paper] .intro-chrome button:hover,html[data-intro-style=paper] .intro-chrome button:focus-visible{color:#2b2b2a;border-color:#2b2b2a99}html[data-intro-live] .campus-corner,html[data-intro-live] .campus-map-hud,html[data-intro-live] .campus-sky{visibility:hidden}html.intro-reveal .glass-nav{animation:.75s cubic-bezier(.2,.8,.2,1) both intro-hud}html.intro-reveal .campus-vignette,html.intro-reveal .campus-corner,html.intro-reveal .campus-map-hud,html.intro-reveal .campus-sky{animation:1s ease-out both intro-fade}.intro-move{z-index:120;color:#faf8f5;pointer-events:none;background:#2b3630f2;border:2px solid #faf8f5;border-radius:8px;flex-direction:column;align-items:center;gap:6px;padding:10px 14px 11px;animation:.38s cubic-bezier(.2,.9,.3,1.3) both intro-move-in;display:flex;position:fixed;top:0;left:0;box-shadow:3px 4px #1d2a1f55}.intro-move:after{content:"";background:#2b3630;border:2px solid #faf8f5;border-top:0;border-left:0;width:10px;height:10px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)rotate(45deg)}.intro-move strong{letter-spacing:.32em;color:#f0ca8d;padding-left:.32em;font:800 .82rem Outfit,sans-serif}.intro-move span{white-space:nowrap;font-size:.74rem}.intro-keys{align-items:center;gap:3px;display:flex}.intro-keys kbd{text-align:center;color:#2b2b2a;background:#faf8f5;border-radius:4px;min-width:22px;padding:3px 5px;font:700 .7rem Outfit,sans-serif;box-shadow:0 2px #9b9284}.intro-keys i{opacity:.5;margin:0 4px;font-style:normal}.intro-move.is-leaving{animation:.34s steps(5,end) both intro-move-out}@keyframes intro-fade{0%{opacity:0}}@keyframes intro-hud{0%{opacity:0;transform:translateY(-14px)}}@keyframes intro-move-in{0%{opacity:0;margin-top:10px}}@keyframes intro-move-out{to{opacity:0;filter:blur(2px);clip-path:inset(45% 0)}}
