:root{--paper: #f6f1e6;--card: #fffdf7;--ink: #14313b;--ink-soft: rgba(20, 49, 59, .64);--ink-faint: rgba(20, 49, 59, .45);--teal: #00a9ad;--teal-deep: #01595f;--orange: #f5821f;--orange-deep: #c96507;--line: rgba(1, 89, 95, .14);--danger: #b3402a;--serif: "Songti SC", "STSong", "Noto Serif SC", "Noto Serif CJK SC", SimSun, serif;--sans: "PingFang SC", "HarmonyOS Sans SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono: "SF Mono", "JetBrains Mono", Menlo, Consolas, "Courier New", monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--sans);color:var(--ink);background-color:var(--paper);background-image:radial-gradient(rgba(1,89,95,.05) 1px,transparent 1px);background-size:24px 24px;-webkit-font-smoothing:antialiased;line-height:1.55}::selection{background:var(--orange);color:#fff}img{display:block;max-width:100%}a{color:inherit}button{font-family:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.page{min-height:100vh;display:flex;flex-direction:column}.page main{flex:1}.site-head{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px clamp(18px,4vw,44px);background:#f8f4eafa;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center}.brand-group{display:flex;align-items:center;gap:14px;min-width:0}.brand-name{font-family:var(--serif);font-size:17px;font-weight:700;letter-spacing:.06em;color:var(--teal-deep);white-space:nowrap}.brand-logo{height:42px;width:auto}.head-tag{font-family:var(--mono);font-size:11.5px;letter-spacing:.34em;color:var(--teal-deep);border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 15px;background:#fffdf7b3;white-space:nowrap}.admin-head-right{display:flex;align-items:center;gap:12px}.lib-note{max-width:1240px;margin:0 auto;padding:18px clamp(18px,4vw,44px) 0;font-size:12.5px;letter-spacing:.05em;color:var(--ink-soft);text-align:center}.poster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:26px 20px;margin-top:26px}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--orange-deep);margin:0 0 20px}.eyebrow:before{content:"—";margin-right:12px;letter-spacing:0}@keyframes rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.notice{max-width:1240px;margin:6px auto 0;padding:14px 22px;display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;background:#f9ead6;border:1px solid rgba(201,101,7,.35);border-radius:8px;color:var(--orange-deep);font-size:14px}.empty-page{text-align:center;padding:64px 24px 110px}.empty-title{font-family:var(--serif);font-size:26px;color:var(--teal-deep);margin:0 0 10px}.empty-sub{color:var(--ink-soft);margin:0}.poster-empty{margin-top:18px;border:1.5px dashed rgba(1,89,95,.28);border-radius:8px;padding:26px;text-align:center;color:var(--ink-soft);font-size:13.5px}.mentor{max-width:1240px;margin:0 auto;padding:clamp(30px,5vw,56px) clamp(18px,4vw,44px) 0;opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}.mentor.in{opacity:1;transform:translateY(0)}.mentor-head{display:flex;align-items:baseline;gap:clamp(12px,2.4vw,22px);flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:14px}.mentor-no{font-family:var(--serif);font-size:clamp(30px,4vw,42px);font-weight:700;color:transparent;-webkit-text-stroke:1.3px rgba(0,169,173,.42);line-height:1}.mentor-name{font-family:var(--serif);font-size:clamp(24px,3.2vw,32px);margin:0;letter-spacing:.04em;color:var(--teal-deep)}.mentor-course{font-family:var(--sans);font-size:clamp(13px,1.6vw,15px);font-weight:400;letter-spacing:.06em;color:var(--teal);white-space:nowrap}.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:10px 10px 14px;box-shadow:0 1px 2px #14313b0d;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s cubic-bezier(.2,.7,.2,1)}.card:hover{transform:translateY(-5px);box-shadow:0 18px 34px -18px #01595f73}.thumb{display:block;width:100%;aspect-ratio:9 / 16;padding:0;border:1px solid var(--line);border-radius:5px;overflow:hidden;background:#ece2cd;position:relative}.thumb img{width:100%;height:100%;object-fit:contain;transition:transform .55s cubic-bezier(.2,.7,.2,1)}.card:hover .thumb img{transform:scale(1.04)}.thumb-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12.5px;color:var(--ink-faint);border:1.5px dashed rgba(1,89,95,.25);border-radius:5px}.card-body{padding:0 2px}.card-title{font-size:14px;font-weight:500;margin:11px 0 9px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.8em;line-height:1.4;text-align:center}.card-meta{font-family:var(--mono);font-size:11px;color:var(--ink-faint);margin:0 0 10px}.btn-dl{display:flex;text-decoration:none;align-items:center;justify-content:center;gap:8px;width:100%;border:1.5px solid var(--orange);background:transparent;color:var(--orange-deep);border-radius:6px;padding:9px 0;font-size:14px;font-weight:600;letter-spacing:.06em;transition:background .22s,color .22s,transform .12s;cursor:pointer}.btn-dl svg{width:16px;height:16px}.btn-dl:hover{background:var(--orange);color:#fff}.btn-dl:active{transform:scale(.97)}.btn-dl:disabled{opacity:.55;cursor:wait}.btn-dl.solid{background:var(--orange);color:#fff;width:auto;padding:10px 24px;white-space:nowrap}.btn-dl.solid:hover{background:var(--orange-deep);border-color:var(--orange-deep)}.site-foot{margin-top:clamp(56px,9vw,96px);background:var(--teal-deep);color:#ffffffdb;text-align:center;padding:52px 24px calc(18px + env(safe-area-inset-bottom))}.foot-logo-wrap{display:inline-block;background:#fffdf5;border-radius:999px;padding:10px 20px}.foot-logo{height:30px}.foot-main{font-family:var(--serif);font-size:clamp(16px,2.4vw,20px);letter-spacing:.16em;color:#fff;margin:24px 0 8px}.foot-sub{font-family:var(--mono);font-size:10.5px;letter-spacing:.3em;color:#ffffff6b;margin:0}.foot-rule{width:64px;height:1px;background:#ffffff2e;margin:28px auto 14px}.foot-admin{display:inline-block;font-size:12px;letter-spacing:.4em;text-indent:.4em;text-decoration:none;color:#ffffff80;padding:6px 12px;transition:color .22s}.foot-admin:hover{color:var(--orange)}.viewer{position:fixed;inset:0;z-index:70;background:#10181c;display:flex;flex-direction:column;animation:fade .22s ease both}@keyframes fade{0%{opacity:0}to{opacity:1}}.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px clamp(14px,3vw,26px);flex:none}.viewer-info{margin:0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-width:0}.viewer-mentor{font-family:var(--serif);font-size:17px;letter-spacing:.05em;color:#fff}.viewer-title{font-size:13px;color:#ffffff8c}.viewer-actions{display:flex;align-items:center;gap:10px}.viewer-close{border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;border-radius:999px;padding:8px 20px;font-size:13px;letter-spacing:.12em;transition:background .2s}.viewer-close:hover{background:#ffffff1f}.viewer-stage{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:0 16px 20px}.viewer-img{max-width:min(720px,100%);max-height:calc(100vh - 170px);max-height:calc(100dvh - 170px);border-radius:8px;background:#1c2830;box-shadow:0 24px 60px -24px #000c}.viewer-hint{margin:0;font-size:12.5px;letter-spacing:.08em;color:#ffffff73}.btn-solid{border:none;background:var(--orange);color:#fff;border-radius:6px;padding:13px 20px;font-size:15px;font-weight:600;letter-spacing:.08em;transition:background .22s,transform .12s;cursor:pointer}.btn-solid:hover{background:var(--orange-deep)}.btn-solid:active{transform:scale(.98)}.btn-solid:disabled{background:#d8cdb8;color:#8b8371;cursor:not-allowed}.btn-solid.small{padding:8px 16px;font-size:13px}.btn-line{border:1px solid var(--line);background:transparent;color:var(--teal-deep);border-radius:999px;padding:6px 15px;font-size:12.5px;letter-spacing:.06em;transition:background .2s}.btn-line:hover{background:#01595f12}.btn-danger{border:1px solid rgba(179,64,42,.45);background:transparent;color:var(--danger);border-radius:6px;padding:8px 16px;font-size:13px;transition:background .2s,color .2s}.btn-danger:hover{background:var(--danger);color:#fff}.btn-danger.tiny{padding:4px 12px;font-size:12px}label>span{display:block;font-size:12.5px;font-weight:600;letter-spacing:.06em;color:var(--teal-deep);margin-bottom:6px}input,textarea{width:100%;font:inherit;font-size:14px;color:var(--ink);background:#fff;border:1px solid rgba(1,89,95,.22);border-radius:6px;padding:10px 12px}textarea{resize:vertical}input:focus,textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px #f5821f2e}.admin-main{width:100%;max-width:1020px;margin:0 auto;padding:34px 20px 70px}.admin-note{text-align:center;color:var(--ink-soft);margin:80px 0}.login-card{max-width:420px;margin:clamp(56px,12vh,120px) auto 0;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:36px 34px 34px;box-shadow:0 24px 50px -30px #01595f73}.login-card .eyebrow{margin-bottom:10px}.login-title{font-family:var(--serif);font-size:27px;letter-spacing:.1em;color:var(--teal-deep);margin:0 0 8px}.login-sub{color:var(--ink-soft);font-size:14px;margin:0 0 26px}.login-card label{display:block;margin-bottom:18px}.login-card .btn-solid{width:100%}.admin-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px;margin-bottom:20px}.admin-card h2{font-family:var(--serif);font-size:20px;letter-spacing:.08em;color:var(--teal-deep);margin:0}.admin-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.admin-tip{font-size:12.5px;color:var(--ink-soft);margin:8px 0 0}.mentor-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;margin:18px 0 14px}.mentor-form-grid .span-2{grid-column:span 2}.order-label{max-width:120px}.row-actions{display:flex;gap:10px;flex-wrap:wrap}.posters{border-top:1.5px dashed rgba(1,89,95,.2);margin-top:18px;padding-top:18px}.posters-title{font-size:13px;font-weight:600;letter-spacing:.12em;color:var(--teal-deep);margin:0 0 14px}.posters-title em{font-style:normal;color:var(--orange-deep)}.admin-poster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr));gap:14px}.admin-poster{border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 8px 12px;text-align:center}.admin-poster img{width:100%;aspect-ratio:3 / 4;object-fit:cover;border-radius:5px;border:1px solid var(--line);background:#ece2cd}.admin-poster-name{font-size:12px;margin:8px 0 2px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-bottom:1px dashed transparent}.admin-poster-name:hover{border-bottom-color:#01595f4d}.rename-input{font-size:12px;padding:4px 6px;margin:7px 0 3px}.admin-poster-meta{font-family:var(--mono);font-size:10.5px;color:var(--ink-faint);margin:0 0 8px}.upload-row{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;margin-top:16px}.file-pick{position:relative;flex:1 1 260px;min-width:0}.file-pick input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.file-pick-face{display:flex;align-items:center;height:100%;min-height:42px;border:1.5px dashed rgba(1,89,95,.35);border-radius:6px;padding:6px 14px;font-size:13px;color:var(--teal-deep);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:border-color .2s,background .2s}.file-pick:hover .file-pick-face{border-color:var(--orange);background:#f5821f0f}.upload-title{flex:1 1 220px;min-width:0}.add-mentor h2,.add-mentor-title{font-family:var(--serif);font-size:20px;color:var(--teal-deep);margin:0 0 4px}.add-mentor{border-style:dashed}.pw-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 16px;margin:16px 0 12px}.pw-warn{color:var(--danger);font-size:13px;margin:0 0 10px}.toast{position:fixed;left:50%;bottom:32px;transform:translate(-50%);z-index:90;background:var(--teal-deep);color:#fff;border-radius:999px;padding:11px 24px;font-size:13.5px;letter-spacing:.04em;box-shadow:0 14px 30px -12px #00464c8c;animation:toastIn .3s cubic-bezier(.2,.7,.2,1) both;max-width:88vw}.toast-bad{background:var(--danger)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%)}}.admin-foot{padding-bottom:calc(14px + env(safe-area-inset-bottom))}@media(max-width:720px){.brand-logo{height:34px}.brand-group{gap:10px}.brand-name{font-size:14.5px;letter-spacing:.03em;overflow:hidden;text-overflow:ellipsis}.head-tag{display:none}.poster-grid{grid-template-columns:repeat(3,1fr);gap:12px 8px;margin-top:18px}.card{padding:6px 6px 9px;border-radius:6px}.thumb{border-radius:4px}.card-title{font-size:10.5px;margin:7px 0 6px;min-height:2.6em;-webkit-line-clamp:2}.btn-dl{font-size:10.5px;padding:6px 0;gap:4px;letter-spacing:0}.btn-dl svg{width:12px;height:12px}.mentor-form-grid{grid-template-columns:1fr}.mentor-form-grid .span-2{grid-column:auto}.pw-grid{grid-template-columns:1fr}.upload-row>*{flex:1 1 100%}.viewer-bar{flex-direction:column;align-items:stretch;gap:10px}.viewer-actions{justify-content:flex-end}.viewer-download{display:none}.viewer-img{max-height:calc(100vh - 210px);max-height:calc(100dvh - 210px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.mentor{opacity:1;transform:none}}
