:root{--green:#164c44;--deep:#103d36;--ink:#253b36;--muted:#667670;--line:#dce4df;--paper:#fff;--bg:#f2f5f3;--gold:#ae884b;--red:#9c4038;--serif:"Songti SC","Noto Serif CJK SC","STSong",serif;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;line-height:1.8}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #bd9245;outline-offset:4px}button{border:1px solid var(--line);background:#fff;color:var(--ink);padding:.55rem 1rem;border-radius:3px}button:hover{background:#edf2ef}button.primary{background:var(--green);color:#fff;border-color:var(--green)}button.primary:hover{background:var(--deep)}button:disabled{opacity:.5;cursor:not-allowed}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.4}h1{font-family:var(--serif);font-size:2rem}h2{font-size:1.2rem}h3{font-size:1.05rem}small,.muted{color:var(--muted)}small{font-size:.8rem}.skip{position:absolute;top:-100px;background:white;padding:12px;z-index:20}.skip:focus{top:0}.gamebar{background:#202e2a;color:#d8e3dd}.gamebar-inner{max-width:1180px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:8px 24px;gap:12px}.game-title{font-family:var(--serif);font-weight:700;letter-spacing:.14em}.game-title small{font:400 .8rem -apple-system,sans-serif;letter-spacing:0;color:#a9bcb1;margin-left:16px}.tools{display:flex;gap:4px}.tools button{border:0;color:#d8e3dd;background:transparent;font-size:.875rem;padding:3px 10px}.tools button:hover{background:#34463f}.mail-dot{background:#b58c4d;color:#fff;border-radius:10px;font-size:.75rem;padding:0 5px;margin-left:4px}.school-header{max-width:1180px;margin:auto;padding:32px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.school-brand{display:flex;gap:18px;align-items:center}.school-brand:hover{text-decoration:none}.seal{border:3px double var(--green);border-radius:50%;width:64px;height:64px;display:grid;place-content:center;text-align:center;font-family:var(--serif);line-height:1.15;font-weight:700;font-size:1.2rem;flex-shrink:0}.school-brand strong{display:block;letter-spacing:.15em;font-size:1.9rem;font-family:var(--serif);line-height:1.5}.school-brand small{font-size:.7rem;letter-spacing:.14em;color:var(--green)}.motto{font-family:var(--serif);color:var(--green);letter-spacing:.2em}.motto span{display:block;font-family:inherit;letter-spacing:.05em;text-align:right;font-size:.8rem;color:var(--muted)}.school-nav{background:var(--green)}.school-nav>div{display:flex;max-width:1132px;margin:auto;overflow-x:auto}.school-nav a{white-space:nowrap;flex:1;text-align:center;color:#e5f0e9;padding:13px 15px;font-size:.95rem}.school-nav a:hover,.school-nav a[aria-current=page]{background:#ffffff15;text-decoration:none;box-shadow:inset 0 -3px 0 var(--gold)}main{max-width:1180px;margin:auto;padding:30px 24px 65px;min-height:470px}.notice-banner{border:1px solid #cbd9d0;background:#e7eee9;padding:30px 36px;display:flex;justify-content:space-between;gap:32px;align-items:center;margin-bottom:30px}.eyebrow{font-size:.78rem;letter-spacing:.16em;color:var(--muted);text-transform:uppercase;margin-bottom:10px;display:block}.notice-banner h1{font-size:2.2rem;margin-bottom:12px;color:var(--green)}.notice-banner p{margin-bottom:12px}.banner-year{font-family:Georgia,serif;font-size:5.5rem;line-height:1;color:#afc3b6;letter-spacing:-.06em}.banner-year small{display:block;letter-spacing:.17em;font-family:inherit;text-align:center;font-size:.8rem;margin-top:10px}.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px}.panel{border:1px solid var(--line);background:var(--paper);padding:24px}.section-title{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--green);padding-bottom:13px;margin-bottom:0;gap:10px}.section-title h2{margin:0;font-family:var(--serif);font-size:1.25rem}.section-title a{font-size:.8rem}.news-item{display:flex;align-items:flex-start;gap:21px;padding:22px 0;border-bottom:1px solid var(--line)}.news-item:last-child{border-bottom:0;padding-bottom:4px}.date-square{flex:0 0 51px;text-align:center;border:1px solid var(--line);background:#f6f8f6;font-size:.8rem;line-height:1.4;padding:8px 3px;color:var(--muted)}.date-square strong{font-size:1.65rem;display:block;color:var(--green);font-weight:400}.news-item h3{margin-bottom:6px;font-weight:500}.news-item p{font-size:.9rem;margin:0;color:var(--muted)}.archive-box{background:var(--green);color:white;border:0}.archive-box h2{font-family:var(--serif);font-size:1.4rem}.archive-box p{font-size:.9rem;color:#c4d8cc}.archive-box label{font-size:.875rem}.search-row{display:flex;gap:8px;margin:12px 0}.search-row input{min-width:0;flex:1}.archive-box .search-row{flex-direction:column}.archive-box button{background:#eaf0eb;color:var(--green)}input,select,textarea{padding:10px 12px;border:1px solid #bdcbc2;border-radius:2px;background:#fff;color:var(--ink);max-width:100%}input{min-height:44px}textarea{width:100%;min-height:180px;resize:vertical}label{display:block;margin:14px 0 5px}.side-notice{margin-top:22px;background:transparent;border-top:3px solid var(--gold)}.side-notice p{font-size:.9rem;color:var(--muted)}.side-link{display:block;border-top:1px solid var(--line);padding-top:10px}.breadcrumb{font-size:.875rem;color:var(--muted);margin-bottom:24px}.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:28px}.article{padding:38px 44px;background:white;border:1px solid var(--line);overflow-wrap:anywhere}.article h1{font-size:1.9rem;margin-bottom:18px}.article-meta{border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:28px;font-size:.82rem;color:var(--muted);display:flex;gap:16px;flex-wrap:wrap}.article p{line-height:2;margin-bottom:22px}.article blockquote{margin:25px 0;padding:15px 22px;background:#f1f4f1;border-left:3px solid var(--green)}.article table{border-collapse:collapse;width:100%;font-size:.9rem;margin:20px 0}.table-wrap{overflow:auto}.article th,.article td{padding:10px;border:1px solid var(--line);text-align:left}.article th{background:#eef3ef}.article pre{padding:20px;background:#f1f3f0;white-space:pre-wrap;overflow-wrap:anywhere;font:1rem/1.9 ui-monospace,monospace}.article .source-note{font-size:.85rem;background:#f7f8f6;border:1px solid var(--line);padding:12px 16px;color:var(--muted)}.article .signature{text-align:right}.article-aside{font-size:.9rem;align-self:start}.article-aside button{width:100%;margin-bottom:10px}.article-aside p{color:var(--muted)}.tag{display:inline-block;color:var(--green);background:#e9efeb;padding:2px 8px;font-size:.8rem;border-radius:2px}.tag.private{color:#815c35;background:#f2eadf}.result{padding:22px 0;border-bottom:1px solid var(--line)}.result h2{margin:8px 0}.result p{margin:8px 0;color:var(--muted)}.search-panel{max-width:880px;margin:auto}.search-panel h1{margin-bottom:12px}.empty{padding:35px 0;color:var(--muted)}.site-footer{max-width:1132px;margin:auto;border-top:1px solid #cdd8d1;padding:25px 0 32px;color:var(--muted);font-size:.8rem}.site-footer>div{display:flex;justify-content:space-between;gap:16px;margin-bottom:14px}.site-footer strong{font-family:var(--serif);font-size:1.1rem;color:var(--green)}.site-footer p{margin:5px 0}dialog{padding:0;border:1px solid #c9d2cb;border-radius:4px;width:min(640px,calc(100vw - 32px));max-height:88dvh;background:#fff;color:var(--ink);box-shadow:0 24px 100px #07191044}dialog::backdrop{background:#172a246e;backdrop-filter:blur(3px)}#dialog-body{padding:38px;overflow-wrap:anywhere}#dialog-title{font-family:var(--serif);font-size:1.65rem;margin:0 34px 16px 0}.dialog-close{position:absolute;top:10px;right:10px}.dialog-close button{border:0;background:transparent;font-size:1.6rem;padding:0 10px}.letter-meta{font-size:.8rem;color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 0;margin:20px 0}.letter p{line-height:1.95}.letter blockquote{border-left:2px solid var(--gold);margin:18px 0;padding-left:16px;color:#526457}.dialog-actions{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}.help-note{font-size:.85rem;color:var(--muted)}.error{color:var(--red);margin-top:12px}.success{color:var(--green);margin-top:12px}.file-list{padding:0;list-style:none}.file-list li{border-bottom:1px solid var(--line);padding:12px 0}.file-list small{display:block}.mirror-banner{padding:17px 22px;border:1px solid #d6c7b0;background:#f3ede3;margin-bottom:22px;font-size:.9rem}.mirror .article{border-top:4px solid #826949}.mirror .article h1{color:#594b38}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.form-grid>div{min-width:0}.form-grid input{width:100%}.wide{grid-column:1/-1}.record-check{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.record-check input{flex-shrink:0;margin-top:5px;min-height:20px;width:20px;height:20px}.record-check label{margin:0}.ending{max-width:760px;margin:20px auto;padding:45px;border:1px solid var(--line);border-top:5px solid var(--gold);background:white}.ending h1{font-size:2.4rem}.ending p{line-height:2}.ending .ending-no{font:italic 4rem Georgia;color:#b6c4bb;line-height:1.2}.ending-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}details{border-bottom:1px solid var(--line);padding:12px 0}summary{cursor:pointer;color:var(--green);padding:6px 0}details p{margin:14px 0 4px}.journal-count{font-size:.85rem;color:var(--muted)}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:12px 22px;background:#223c32;color:white;box-shadow:0 4px 25px #0002;border-radius:3px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:40;max-width:90vw}#toast.visible{opacity:1}.noscript{padding:40px;background:#fff}.inline-link{padding:0;border:0;background:none!important;text-decoration:underline;color:var(--green)}[hidden]{display:none!important}@media(max-width:850px){.home-grid,.article-layout{grid-template-columns:1fr}.home-aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.side-notice{margin-top:0}.article-aside{display:flex;gap:12px;flex-wrap:wrap}.article-aside button{width:auto}.article-aside p{width:100%}.motto{display:none}.site-footer{margin:0 24px}.article{padding:28px}.banner-year{font-size:4rem}.game-title small{display:none}}@media(max-width:550px){.gamebar-inner{padding:8px 12px}.tools button{padding:4px 7px}.school-header{padding:24px 18px}.school-brand{gap:12px}.school-brand strong{font-size:1.45rem}.school-brand small{font-size:.58rem;letter-spacing:.08em}.seal{width:52px;height:52px}.school-nav a{padding:12px 16px;flex:0 0 auto}.notice-banner{padding:25px;display:block}.banner-year{display:none}.notice-banner h1{font-size:1.75rem}.home-aside{display:block}.side-notice{margin-top:20px}main{padding:22px 16px 45px}.panel{padding:20px}.article{padding:25px 21px}.article h1{font-size:1.55rem}.article table{font-size:.85rem}.news-item{gap:15px}.site-footer>div{display:block}.site-footer span{display:block}.search-row{flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}#dialog-body{padding:28px 23px}.ending{padding:28px 23px}.ending h1{font-size:1.9rem}.game-title{font-size:.9rem}.breadcrumb{overflow-wrap:anywhere}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
:root{--green:#244b71;--deep:#163650;--ink:#293d50;--muted:#6c7883;--line:#dce2e7;--bg:#f6f7f8;--gold:#b99b62}.gamebar{background:#20384b}.gamebar-inner{max-width:1230px}.game-title{letter-spacing:.05em}.game-title small{color:#bdcbd6}.school-header{max-width:1230px;padding:28px 24px;background:white}.school-header:before{content:"";position:absolute;left:0;right:0;height:132px;background:white;z-index:-1}.school-brand strong{font-size:2.05rem;font-weight:500;letter-spacing:.12em}.school-brand small{font-size:.72rem;letter-spacing:.11em}.school-mark{width:76px;height:76px}.school-nav>div{max-width:1182px}.school-nav a{font-size:.9rem;padding:14px 10px;border-right:1px solid #ffffff12}.school-nav a:first-child{border-left:1px solid #ffffff12}#header-search{display:flex;align-items:center;max-width:330px}#header-query{min-width:0;width:240px;border-radius:0}#header-search button{border-radius:0;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.page-width{max-width:1182px;margin:auto}.home-main{max-width:none;padding:0;min-height:0}.photo-carousel{position:relative;background:#243d4b;height:clamp(280px,37vw,510px);overflow:hidden}.photo-slide{position:absolute;inset:0}.photo-slide>img{width:100%;height:100%;object-fit:cover;object-position:center 48%;display:block}.photo-slide:after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#071624bf);pointer-events:none}.photo-caption{position:absolute;z-index:1;left:max(44px,calc((100% - 1182px)/2));right:90px;bottom:48px;color:white}.photo-caption>span{display:inline-block;padding:3px 12px;border-left:3px solid #c4a86d;background:#233a4cbf;font-size:.82rem}.photo-caption h1{font-family:var(--serif);font-size:clamp(1.55rem,2.6vw,2.4rem);font-weight:500;margin:15px 0 0}.photo-caption a{color:white;text-shadow:0 2px 9px #10203044}.slide-arrow{position:absolute;top:45%;z-index:2;border:0;background:#142d4466;color:white;font:2.7rem/1.2 Georgia;padding:4px 14px;border-radius:0}.slide-arrow:hover{background:#173c63aa}.slide-arrow.prev{left:0}.slide-arrow.next{right:0}.slide-controls{position:absolute;right:max(30px,calc((100% - 1182px)/2));bottom:19px;display:flex;gap:14px;align-items:center;z-index:3}.slide-dots{display:flex;gap:10px}.slide-dots button{padding:0;width:28px;height:7px;border:1px solid #ffffff8c;background:#ffffff44;border-radius:0}.slide-dots button[aria-pressed=true]{background:#d6bb80}.slide-controls>button{font-size:.78rem;padding:2px 10px;border-color:#ffffff5a;color:white;background:#20384b77}.home-content{padding:0 0 42px}.alumni-strip{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;margin:28px 0;background:#edf1f4;border-left:4px solid var(--gold);gap:20px}.alumni-strip h2{font-size:1.15rem;margin:5px 0 0;font-family:var(--serif)}.alumni-strip>a{white-space:nowrap;font-size:.9rem}.school-columns{display:grid;grid-template-columns:1.12fr 1fr;gap:50px;margin:38px 0}.section-title{border-bottom:1px solid #cbd4dc;padding-bottom:12px;gap:10px}.section-title h2{border-left:3px solid var(--gold);padding-left:11px;font-size:1.4rem;white-space:nowrap}.section-title>span{font-size:.72rem;color:#83909b;letter-spacing:.1em;flex:1}.section-title>a{white-space:nowrap}.compact-list{list-style:none;padding:0;margin:12px 0 0}.compact-list li{display:flex;align-items:baseline;gap:18px;padding:12px 0;border-bottom:1px dotted #d2dae0;line-height:1.6}.compact-list li:before{content:"";width:4px;height:4px;background:#b7c1c9;align-self:center;flex-shrink:0}.compact-list a{flex:1;font-size:.95rem;color:#334758}.compact-list time{font-size:.8rem;color:var(--muted);white-space:nowrap}.lead-story{display:grid;grid-template-columns:43% 1fr;gap:20px;margin:24px 0 14px}.lead-story img{width:100%;height:154px;object-fit:cover}.lead-story h3{font-family:var(--serif);font-size:1.15rem;margin:8px 0}.lead-story p{font-size:.9rem;color:var(--muted);line-height:1.7;margin:0}.lead-story time{font-size:.8rem;color:var(--muted)}.school-columns .news-item{padding:20px 0;align-items:center;gap:20px}.school-columns .news-item h3{font-weight:400;font-size:1rem;margin:0}.date-square{border:0;border-right:1px solid #d6dfe7;background:transparent;padding-right:15px;flex-basis:75px}.date-square strong{font-size:1.9rem}.school-features{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:48px 0}.school-features>section>a>img{width:100%;height:205px;object-fit:cover;display:block;margin-bottom:20px}.school-features .compact-list li{padding:10px 0}.school-features .compact-list time{display:none}.school-features .section-title h2{font-size:1.25rem}.school-features .section-title>span{font-size:.64rem}.services{padding:25px 0}.service-links{display:grid;grid-template-columns:repeat(6,1fr);margin-top:25px;border:1px solid var(--line)}.service-links a{display:flex;flex-direction:column;align-items:center;gap:12px;padding:22px 10px;border-right:1px solid var(--line);background:#fff}.service-links a:last-child{border:0}.service-links a:hover{background:#edf2f6;text-decoration:none}.service-links span{font-family:var(--serif);font-size:1.6rem;border:1px solid #9cb0c1;border-radius:50%;width:49px;height:49px;display:grid;place-content:center}.home-bottom{text-align:center;border-top:1px solid var(--line);margin-top:24px;padding:30px 0 0;color:var(--muted)}.home-bottom p{font-family:var(--serif);letter-spacing:.4em;color:var(--green);font-size:1.3rem;margin:0 0 6px}.home-bottom span{font-size:.8rem}.site-footer{max-width:1182px}.institution-layout{display:grid;grid-template-columns:210px 1fr;gap:30px}.site-side{background:white;border:1px solid var(--line);align-self:start}.site-side h2{background:var(--green);color:white;padding:20px;font-family:var(--serif);font-weight:500;margin:0}.site-side>a{display:flex;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--line);color:var(--ink)}.site-side>a:hover{background:#eef2f5}.category-panel{padding:30px 36px}.result>time{float:right;color:var(--muted);font-size:.85rem}.result h2{font-weight:500}.article-photo{margin:0 0 28px}.article-photo img{width:100%;height:auto;max-height:490px;object-fit:cover}.article-photo figcaption{text-align:center;color:var(--muted);font-size:.8rem}.article-end{border-top:1px solid var(--line);padding:18px 0;margin-top:32px;color:var(--muted);font-size:.8rem}.related-list{padding-left:18px;font-size:.88rem}.related-list li{margin-bottom:12px}.article-aside h3{margin-top:18px}.button-link{display:inline-block;background:#edf2f5;border:1px solid #c9d6e0;padding:9px 14px;border-radius:2px;font-size:.95rem}.search-scopes{display:flex;gap:18px;border-bottom:1px solid var(--line);margin:20px 0}.search-scopes a{padding-bottom:10px}.search-scopes a[aria-current=page]{border-bottom:2px solid var(--green)}.gate-panel{max-width:670px;margin:30px auto;padding:40px}.gate-panel input{width:100%}.case-panel{max-width:900px;margin:auto;padding:36px}.case-panel select{width:100%;white-space:normal}.form-section-title{border-bottom:1px solid var(--line);padding:24px 0 14px;margin-bottom:10px}.verified-box{margin-top:25px;padding:22px;background:#eaf2ec;border-left:3px solid #407851}.danger-button{background:#853b37;color:white;border-color:#853b37}.danger-button:hover{background:#6d2724}.content-warning{border:1px solid #d9caa7;background:#faf7ef;padding:16px 19px;margin:20px 0}.content-warning strong{font-size:.95rem;color:#795c2e}.content-warning p{font-size:.84rem;line-height:1.8;margin:9px 0}.check-label{display:flex;align-items:flex-start;gap:10px;font-size:.9rem}.check-label input{width:19px;height:19px;min-height:19px;flex-shrink:0;margin:4px 0 0}.forum-brand,.workbench-brand{padding:21px 26px;background:#355b78;color:white;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;gap:20px}.forum-brand{background:#dddfe8;color:#354561;border:1px solid #b5bac9}.forum-brand span,.workbench-brand span,.mirror-banner span{display:block;font-size:.82rem}.forum-post{border-top:1px solid #d2d8e3;padding:20px 0}.forum-post small{display:block;margin:4px 0 12px}.private-view{background:#eeeae3}.private-view .school-header,.private-view .school-nav{display:none}.private-view .site-footer>div{display:none}.private-view main{padding-top:28px}.private-view .article{border-top:3px solid #8b795f}.private-view .site-footer{font-size:.75rem}#personal-dock{max-width:1182px;margin:auto;padding:10px 0;display:flex;gap:22px;align-items:center;font-size:.84rem;border-bottom:1px solid var(--line)}#personal-dock>span{color:var(--muted)}#personal-dock a{color:#476478}.private-view #personal-dock{padding:14px 24px;background:#fff}.sitemap-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.ending blockquote,.invitation blockquote{padding:16px 20px;border-left:3px solid var(--gold);background:#f1f3f3}.reduced-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}@media(max-width:1220px){.page-width{margin:0 24px}#personal-dock{padding-left:24px;padding-right:24px}.site-footer{margin:0 24px}}@media(max-width:850px){.school-header{padding:24px}.school-brand strong{font-size:1.65rem}#header-search{max-width:240px}.school-mark{width:62px;height:62px}.school-columns{gap:28px}.school-features{gap:18px}.school-features>section>a>img{height:160px}.school-features .section-title>span{display:none}.lead-story{display:block}.lead-story img{height:200px}.lead-story time{display:block;margin-top:10px}.institution-layout{grid-template-columns:170px 1fr}.photo-caption{left:34px;right:48px}.photo-caption h1{font-size:1.75rem}.category-panel{padding:24px}.forum-brand,.workbench-brand{display:block}}@media(max-width:600px){.school-header{padding:20px 16px;display:block}.school-brand strong{font-size:1.65rem}.school-brand small{font-size:.58rem}.school-mark{width:60px;height:60px}#header-search{max-width:none;margin-top:18px}#header-query{flex:1;width:auto}.school-nav a{padding:12px 16px}.photo-carousel{height:295px}.photo-caption{left:26px;right:30px;bottom:52px}.photo-caption h1{font-size:1.4rem}.photo-caption>span{font-size:.75rem}.slide-arrow{font-size:2rem;padding:3px 8px}.page-width{margin:0 18px}.alumni-strip{padding:18px;margin:22px 0;display:block}.alumni-strip h2{font-size:1.02rem}.alumni-strip>a{display:block;margin-top:10px}.school-columns,.school-features{grid-template-columns:1fr;gap:30px}.school-columns{margin:30px 0}.school-features{margin:32px 0}.lead-story{display:grid;grid-template-columns:42% 1fr;gap:15px}.lead-story img{height:145px}.lead-story time{margin-top:0}.lead-story h3{font-size:1rem}.lead-story p{font-size:.8rem}.school-features>section>a>img{height:210px}.school-features .section-title>span{display:block}.service-links{grid-template-columns:repeat(3,1fr)}.service-links a{border-bottom:1px solid var(--line)}.institution-layout{grid-template-columns:1fr}.site-side{display:none}.result>time{float:none}.case-panel,.gate-panel{padding:25px 21px}.article-aside{display:block}.article-aside button{width:100%}#personal-dock{gap:14px;overflow:auto;white-space:nowrap;font-size:.78rem;padding:10px 16px}#personal-dock>span{display:none}.sitemap-grid{grid-template-columns:1fr}.photo-caption h1 a{line-height:1.55}.section-title>span{font-size:.64rem}.site-footer{margin:0 18px}.home-bottom span{font-size:.72rem}}

/* Personal messaging lives outside the school identity. */
.messenger{display:grid;grid-template-columns:245px minmax(0,1fr);background:#f2f1ef;border:1px solid #ccd2d5;min-height:650px;box-shadow:0 8px 35px #20354609}.contacts{background:#e8e9e8;border-right:1px solid #d3d7d6}.messenger-label{padding:22px;font-size:1.2rem;font-weight:600;border-bottom:1px solid #d3d7d6}.messenger-label small{font-size:.75rem;display:block;font-weight:400}.contact{display:flex;align-items:center;gap:12px;padding:20px 15px;position:relative;color:#35424a}.contact:hover,.contact.selected{background:#d5ddda;text-decoration:none}.avatar{height:42px;width:42px;flex-shrink:0;display:grid;place-content:center;background:#617b85;color:#fff;border-radius:5px;font-family:var(--serif);font-size:1.2rem}.avatar.clerk{background:#7d7870}.avatar.shen{background:#847389}.avatar.liaison{background:#77634a}.contact strong{display:block;font-size:.95rem;font-weight:500}.contact small{display:block;font-size:.69rem;margin-top:3px}.unread-dot{width:8px;height:8px;background:#b65244;border-radius:50%;position:absolute;right:10px;top:15px}.chat-local{padding:25px 20px;font-size:.74rem;color:#7a8387}.conversation{min-width:0;display:flex;flex-direction:column}.conversation>header{display:flex;gap:12px;align-items:center;background:#f8f8f6;padding:18px 25px;border-bottom:1px solid #d7dbd9}.conversation h1{font-family:inherit;font-size:1.15rem;margin:0}.conversation header small{font-size:.72rem}.conversation header>a{margin-left:auto;font-size:.78rem}.chat-log{height:610px;overflow:auto;padding:24px 32px;overscroll-behavior:contain;scrollbar-gutter:stable}.chat-time{text-align:center;color:#939b9c;font-size:.74rem;margin:16px 0 22px}.chat-episode{display:flow-root}.bubble{width:fit-content;max-width:86%;padding:11px 15px;border:1px solid #e1e3df;border-radius:3px;background:#fff;font-size:.94rem;line-height:1.85;white-space:pre-line;margin:0 0 12px;overflow-wrap:anywhere;box-shadow:0 1px 2px #00000004}.bubble.outgoing{margin-left:auto;background:#d5e6d3;border-color:#c1d5c0}.chat-choices{display:flex;flex-direction:column;align-items:flex-end;gap:8px;margin:20px 0}.chat-choices button{max-width:90%;text-align:left;background:#f8fbf7;border-color:#b9c9bb;color:#385a40;font-size:.87rem}.chat-choices button:hover{background:#dfecdf}.chat-attachment{display:block;position:relative;max-width:340px;background:#fff;border:1px solid #d8dfe0;padding:13px 38px 13px 16px;font-size:.9rem;margin:12px 0 20px;color:#324c60}.chat-attachment span{display:block;color:#8c979d;font-size:.68rem;letter-spacing:.12em}.chat-attachment b{position:absolute;right:16px;top:24px;font-weight:400}.chat-evidence{background:#e7ece8;border:1px solid #ccd7ce;padding:15px;margin:20px 0}.chat-evidence label{font-size:.85rem;margin:0 0 10px}.chat-evidence>div{display:flex;gap:8px}.chat-evidence select{min-width:0;flex:1;font-size:.83rem;width:0}.chat-evidence button{white-space:nowrap;font-size:.85rem}.chat-evidence .error{font-size:.85rem;margin-bottom:0}.chat-footer{margin-top:auto;border-top:1px solid #d7dbd9;padding:14px 24px;display:flex;align-items:center;gap:15px;font-size:.8rem;background:#fafaf8}.chat-footer button{font-size:.8rem;padding:5px 9px}.chat-footer span{color:#929b9b;margin-left:auto;font-size:.73rem}.chat-wait{font-size:.75rem;color:#8b9595;text-align:center;margin:30px 0 15px}.private-view .school-header,.private-view .school-nav{display:none}
@media(max-width:760px){.messenger{grid-template-columns:1fr}.contacts{display:flex;flex-wrap:wrap;border-right:0;border-bottom:1px solid #d3d7d6}.messenger-label,.chat-local{display:none}.contact{flex:1;min-width:135px;padding:12px}.contact small{display:none}.contact .avatar{width:30px;height:30px;font-size:.9rem}.conversation>header{padding:15px}.chat-log{height:65dvh;min-height:380px;padding:15px}.bubble{max-width:94%;font-size:.92rem}.chat-footer{padding:12px;flex-wrap:wrap;gap:10px}.chat-footer span{width:100%;margin:0}.conversation header>a{font-size:.7rem}.gamebar-inner{gap:3px}.tools{flex-wrap:wrap;justify-content:flex-end}.game-title{white-space:nowrap}}
.eye-plate{position:relative;background:#000;padding:20px 0 38px;margin:28px -10px;overflow:hidden}.eye-row{width:100%;aspect-ratio:6/1;position:relative;background:#000}.eye-open{position:absolute;inset:0;background-image:url('./assets/eye-sockets.png');background-size:100% 300%;background-position:center var(--row);animation:slow-blink 10.8s infinite;animation-delay:var(--delay);clip-path:inset(0)}.iris-mask{position:absolute;width:24%;height:54%;left:37%;top:26%;overflow:hidden;border-radius:50% 50% 46% 46%/55% 55% 45% 45%}.watching-iris{position:absolute;width:61%;height:auto;left:20%;top:50%;transform:translate(var(--look-x,0%),calc(-50% + var(--look-y,0%)));filter:brightness(.69) saturate(.65);mix-blend-mode:multiply;transition:transform .2s ease-out;pointer-events:none}.eye-1 .watching-iris{filter:brightness(.58) saturate(.3)}.eye-2 .watching-iris{width:44%;left:28%;filter:brightness(.55) sepia(.3)}.plate-index{position:absolute;bottom:12px;left:20px;font:10px/1.5 ui-monospace,monospace;letter-spacing:.3em;color:#625d57}.image-covered{padding:25px;border:1px dashed #b6bfc0;background:#edf0ef;margin:25px 0;font-size:.85rem}.image-covered p{margin:8px 0 0}.reduced-motion .eye-open{animation:none!important}.reduced-motion .watching-iris{transition:none;transform:translate(0,-50%)}@keyframes slow-blink{0%,85%,95%,100%{clip-path:inset(0)}89%,91%{clip-path:inset(49.5% 0)}}@media(prefers-reduced-motion:reduce){.eye-open{animation:none}.watching-iris{transition:none;transform:translate(0,-50%)}}

/* The damaged red emulsion belongs only to the abnormal catalogue. */
body.uncanny-catalogue{color:#e4cec6;background:#200807 url('./assets/red-emulsion-v1.png') center top/cover fixed;min-height:100vh}
.uncanny-catalogue .gamebar{background:#140706e8;border-bottom:1px solid #783c3260}
.uncanny-catalogue #personal-dock{background:#200c0ce8;border-bottom:1px solid #71352c}
.uncanny-catalogue #personal-dock a,.uncanny-catalogue #personal-dock{color:#d6b3a5}
.uncanny-catalogue .workbench-brand{background:#2d1010e8;border:1px solid #804338;color:#dfb9ad;box-shadow:0 12px 48px #08000055}
.uncanny-catalogue .breadcrumb,.uncanny-catalogue .article-meta{color:#ba9489}
.uncanny-catalogue main a{color:#deb1a2}
.uncanny-catalogue main a:hover{color:#ffe4d5}
.uncanny-catalogue .article{background:linear-gradient(125deg,#2d1112eb,#160b0bef 70%,#351013ed);border:1px solid #773d34;border-top:3px solid #b35643;box-shadow:0 22px 100px #0008,inset 0 0 75px #7b211320}
.uncanny-catalogue .article h1{color:#efc6b6;text-shadow:1px 1px 0 #71170f}
.uncanny-catalogue .article-meta{border-color:#63342d}
.uncanny-catalogue .article blockquote{color:#e9b8a8;background:#490e0d85;border-left:3px solid #b25844;box-shadow:inset 0 0 35px #24000055}
.uncanny-catalogue .article .source-note{background:#1a0c0cc9;border-color:#5e332c;color:#c7a198}
.uncanny-catalogue .article-end{border-color:#5e332c;color:#b38c80}
.uncanny-catalogue .article-aside{background:#210e0eeb;border-color:#693b31;color:#dfb9ad}
.uncanny-catalogue .article-aside button{background:#361918;color:#e4c7ba;border-color:#885043}
.uncanny-catalogue .article-aside button:hover{background:#52221d}
.uncanny-catalogue .help-note,.uncanny-catalogue .site-footer{color:#c49c90;border-color:#693b31}
.uncanny-catalogue .eye-plate{background:#1b0404 url('./assets/red-emulsion-v1.png') center/cover;padding:24px 0 42px;border:1px solid #8c392f;box-shadow:0 0 0 5px #110706,0 0 0 6px #653025,0 15px 55px #0009,inset 0 0 65px #bc1a1433}
.uncanny-catalogue .eye-row{background:transparent}
.uncanny-catalogue .eye-open{mask-image:linear-gradient(90deg,transparent 8%,#000 29%,#000 71%,transparent 92%)}
.uncanny-catalogue .plate-index{color:#c0816d;letter-spacing:.25em}
@media(max-width:600px){body.uncanny-catalogue{background-attachment:scroll;background-size:auto 1600px}.uncanny-catalogue .article{padding:25px 20px}.uncanny-catalogue .eye-plate{margin:28px -8px;padding:20px 0 35px}.uncanny-catalogue .plate-index{left:12px;font-size:9px}}

.uncanny-catalogue #personal-dock>span{color:#bc9586}

/* Archived encounters share an atmosphere, but each has a different interaction. */
.uncanny-catalogue .ending{color:#e4cec6;background:linear-gradient(140deg,#301213ee,#160a0bef);border-color:#804034;box-shadow:0 20px 100px #0009}
.uncanny-catalogue .ending h1{color:#efc6b6}.uncanny-catalogue .ending-no,.uncanny-catalogue .ending .eyebrow{color:#c38b79}
.uncanny-catalogue .ending blockquote{margin:24px 0;border-left:3px solid #b25844;background:#4d161570;padding:20px}
.uncanny-catalogue .ending-actions button{background:#3d1b18;color:#eed6cb;border-color:#915346}
.horror-exhibit{margin:30px 0;background:#0b0808;border:1px solid #713a31;color:#d5b4a8;box-shadow:0 15px 40px #0007;overflow:hidden;font-family:ui-monospace,"PingFang SC",monospace}
.exhibit-bar{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #63362c;padding:12px 16px;font-size:.72rem;letter-spacing:.06em;background:#23100f}
.exhibit-bar span:last-child{color:#b58b7d}.exhibit-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-top:1px solid #63362c;background:#1b0d0c}
.exhibit-controls span{font-size:.72rem;color:#c69988}.exhibit-controls button{background:#4c211b;color:#f0d2c3;border:1px solid #a05e49;font-size:.8rem;padding:8px 14px}.exhibit-controls button:hover{background:#653027}.exhibit-controls button:disabled{opacity:.35}
.cctv-image{position:relative;isolation:isolate;aspect-ratio:3/2;overflow:hidden;background:#050505}.cctv-image>img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.8) contrast(1.08)}
.cctv-label,.cctv-time,.cctv-file{position:absolute;z-index:5;font:12px/1.5 ui-monospace,monospace;color:#dcd2c1;letter-spacing:.05em;text-shadow:1px 1px 2px #000;background:#0003;padding:3px 6px}.cctv-label{left:10px;top:10px}.cctv-time{right:10px;top:10px}.cctv-file{left:10px;bottom:10px}
.cctv-scan{position:absolute;inset:0;z-index:4;pointer-events:none;background:repeating-linear-gradient(0deg,#0002 0 1px,transparent 1px 4px);box-shadow:inset 0 0 90px #000b}[data-corridor-frame="3"] .cctv-image>img{filter:saturate(.5) brightness(.72)}
.article .exhibit-caption{font-size:.85rem;line-height:1.85;padding:15px 18px;margin:0;min-height:85px;color:#deb4a3}
.rollcall-paper{position:relative;padding:32px 28px;min-height:370px;background:linear-gradient(#1d100ed9,#190b0ae8),url('./assets/red-emulsion-v1.png') center/cover;overflow:hidden}
.ritual-header{text-align:center;padding-bottom:28px;border-bottom:2px solid #825043}.ritual-header span{display:block;font-size:.65rem;letter-spacing:.25em;color:#b68877}.ritual-header strong{display:block;font:1.6rem/1.8 var(--serif);color:#e3b39e}.ritual-header small{font-size:.67rem;letter-spacing:.15em;color:#c49986}
.rollcall-entry{display:grid;grid-template-columns:45px 1fr 72px;align-items:center;padding:18px 3px;border-bottom:1px solid #65392e;gap:12px}.roll-number{font-size:.75rem;color:#956651}.roll-name{font:1.7rem/1.4 var(--serif);color:#dcbfae;letter-spacing:.12em}.roll-status{font-family:var(--serif);font-size:1rem;color:#ad5141;text-align:center}
.forbidden-entry .roll-name{color:#ad5141}.rollcall-stamp{position:absolute;top:165px;left:22%;font:700 1.8rem/1.3 var(--serif);border:4px double #b4402e;color:#b4402e;transform:rotate(-12deg);padding:6px 13px;opacity:0;pointer-events:none;mix-blend-mode:screen}
[data-rollcall-step="1"] .rollcall-stamp{opacity:.7}.newcomer-entry{display:none}[data-rollcall-step="3"] .newcomer-entry{display:grid}.newcomer-entry .roll-name{font-size:1.15rem;color:#e7b099}.newcomer-entry .roll-status{font-size:.8rem}
.article .rollcall-hand{font-family:var(--serif);font-size:1rem;line-height:1.9;color:#d19480;margin:26px 0 0;padding:0 3px;min-height:58px}
.reduced-motion .horror-exhibit *{transition:none!important;animation:none!important}@media(prefers-reduced-motion:reduce){.horror-exhibit *{transition:none!important;animation:none!important}}
@media(max-width:600px){.horror-exhibit{margin:25px -8px}.exhibit-bar{padding:10px 12px;font-size:.64rem}.exhibit-bar span:last-child{display:none}.exhibit-controls{padding:12px}.exhibit-controls button{padding:8px 10px}.cctv-label,.cctv-time,.cctv-file{font-size:9px}.cctv-label{left:4px;top:4px}.cctv-time{right:4px;top:4px}.rollcall-paper{padding:24px 18px}.rollcall-entry{grid-template-columns:28px 1fr 64px;gap:8px}.roll-name{font-size:1.4rem}.rollcall-stamp{left:15%;top:156px;font-size:1.5rem}}

/* A single full-viewport interruption, never a repeated flashing sequence. */
dialog.ritual-interruption{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:100dvh;border:0;border-radius:0;padding:0;color:#270300;background:linear-gradient(#c00b05a8,#770500b8),url('./assets/red-emulsion-v1.png') center/cover;box-shadow:inset 0 0 180px #220000bb;overflow:auto;z-index:100}
.ritual-interruption::backdrop{background:#400000}.ritual-exit{position:absolute;right:22px;top:20px;background:#310000a8;color:#efb2a0;border:1px solid #da5c4499;z-index:2;font-size:.85rem}.ritual-exit:hover,.ritual-return:hover{background:#5e0802;color:white}
.ritual-center{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 22px;text-align:center}.ritual-center>span{font:13px/1.8 ui-monospace,monospace;letter-spacing:.25em;color:#ed8066}.ritual-command{font:800 clamp(3.1rem,9vw,8rem)/1.35 var(--serif);letter-spacing:.13em;text-shadow:2px 2px 0 #ea3c2099,0 0 50px #350000;margin:30px 0}.ritual-whisper{font:1.05rem/2.2 var(--serif);color:#f0a18a;letter-spacing:.12em}.ritual-return{background:#330000d6;color:#f2bda9;border:1px solid #bb4832;margin-top:25px;padding:10px 28px}.ritual-rim,.ritual-bottom{position:absolute;left:0;right:0;overflow:hidden;white-space:nowrap;font:700 1.2rem/1.5 var(--serif);letter-spacing:1em;color:#4a0300b8;pointer-events:none}.ritual-rim{top:0}.ritual-bottom{bottom:0}
.ritual-cover-button{padding:0;border:0;background:transparent;color:#c69785;font-size:.7rem}.ritual-cover-button:hover{background:transparent;color:#edc6b6}
.chant-paper{position:relative;min-height:400px;text-align:center;overflow:hidden;padding:40px 24px;background:radial-gradient(ellipse at center,#7c1a114f,transparent),url('./assets/red-emulsion-v1.png') center/cover;isolation:isolate}.chant-counter{font:12px/2 ui-monospace,monospace;letter-spacing:.3em;color:#d29882}.chant-lines{position:relative;z-index:2;margin:30px auto;max-width:420px}.article .chant-lines p{font:500 clamp(1.2rem,3vw,1.65rem)/2.2 var(--serif);letter-spacing:.15em;color:#e2ad95;margin:5px 0;text-shadow:2px 2px #430600}.chant-echo{position:absolute;inset:15% -40%;z-index:0;font:700 clamp(2rem,7vw,5rem)/1.4 var(--serif);letter-spacing:.25em;color:#8d211425;transform:rotate(-11deg);pointer-events:none}.chant-answer{position:absolute;inset:0;display:grid;place-items:center;z-index:1;font:700 20rem/1 var(--serif);color:#c5392324;opacity:0;pointer-events:none}
[data-chant-step="1"] .chant-lines p:nth-child(even){transform:translateX(10px)}[data-chant-step="2"] .chant-echo{color:#ac322d45;transform:rotate(7deg)}[data-chant-step="3"] .chant-answer{opacity:1}[data-chant-step="3"] .chant-lines p{color:#f08c6e}[data-chant-step="3"] .chant-lines p:last-child{font-size:2.5rem;letter-spacing:.4em}
body.index-corrupted{background:linear-gradient(#e40019b8,#920011b8),url('./assets/red-emulsion-v1.png') center/cover fixed;color:#4b0400}
.index-corrupted .gamebar,.index-corrupted #personal-dock{background:#4b0400;color:#e2482b;border-color:#841a0d}.index-corrupted #personal-dock a,.index-corrupted #personal-dock>span,.index-corrupted .gamebar button{color:#ec9176}
.index-corrupted .search-panel{background:#51000cec;border-color:#540900;box-shadow:0 0 80px #e3130c66}.index-corrupted .search-panel h1,.index-corrupted .search-panel h2,.index-corrupted .search-panel p,.index-corrupted .search-panel small,.index-corrupted .search-panel a{color:#e84237;text-shadow:1px 0 #f6442355,-1px 1px #33000066;letter-spacing:.08em}.index-corrupted .result{border-color:#681000}.index-corrupted .tag{background:#570800;color:#ef7552}.index-corrupted .site-footer{color:#ec997f;border-color:#761106}
.index-recovery{position:fixed;z-index:60;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:28px;width:min(720px,calc(100vw - 32px));padding:20px 24px;background:#2a0200f5;border:1px solid #cd452c;box-shadow:0 0 100px #0008;color:#e99a7b}.index-recovery small,.index-recovery strong{display:block}.index-recovery small{font-size:.65rem;letter-spacing:.2em;color:#aa5c46}.index-recovery strong{font:1rem/1.8 var(--serif)}.index-recovery button{flex-shrink:0;background:#8f2110;color:#ffdbbc;border-color:#d6764e}.index-recovery button:hover{background:#b5371b}
@media(max-width:600px){.index-recovery{gap:14px;padding:14px}.index-recovery strong{font-size:.85rem}.index-recovery button{padding:8px 12px;font-size:.8rem}.chant-paper{min-height:350px}.ritual-exit{right:14px;top:16px}.ritual-whisper{font-size:.9rem}.chant-answer{font-size:15rem}}

.index-corrupted #search-form{color:#e89a87}.index-corrupted #query{background:#270005;color:#ffd0b5;border-color:#bf3a30}.index-corrupted #search-form button{background:#a51a13;color:#ffcfb8;border-color:#db4a37}

.cctv-image>img{transition:filter .8s}.corridor-exhibit[data-corridor-frame="1"] .cctv-image>img{filter:saturate(1.3) brightness(1.03)}.corridor-exhibit[data-corridor-frame="2"] .cctv-image>img{transform:scaleX(-1);filter:saturate(.8) contrast(1.08)}

/* Repeated photocopied eyes are paper fragments, not an approaching face. */
.pasted-eyes{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;gap:20px 0;overflow:hidden;pointer-events:none}
.pasted-eye{display:block;position:relative;aspect-ratio:4.5/1;filter:grayscale(1) contrast(1.8);transform:rotate(var(--eye-tilt));clip-path:polygon(0 20%,15% 8%,40% 0,75% 6%,100% 24%,98% 85%,62% 100%,22% 90%,0 77%)}
.pasted-eye-open{display:block;position:absolute;inset:0;background:url('./assets/eye-sockets.png') center var(--eye-row)/133% 300%;transform-origin:50% 50%;animation:pasted-eye-blink var(--eye-cycle,8s) var(--eye-delay,0s) infinite;}
.pasted-eye b{position:absolute;left:33%;top:17%;width:34%;height:67%;border-radius:50%;overflow:hidden}
.pasted-eye img{position:absolute;left:50%;top:50%;width:57%;transform:translate(calc(-50% + var(--pupil-x,0px)),calc(-50% + var(--pupil-y,0px)));mix-blend-mode:multiply;filter:brightness(.45);transition:transform .16s ease-out;pointer-events:none}
@keyframes pasted-eye-blink{0%,90%,97%,100%{transform:scaleY(1);animation-timing-function:ease-in}92%{transform:scaleY(.06);animation-timing-function:ease-out}93%{transform:scaleY(.06);animation-timing-function:ease-out}}
.reduced-motion .pasted-eye-open,.no-horror .pasted-eye-open{animation:none}
.reduced-motion .pasted-eye img,.no-horror .pasted-eye img{transform:translate(-50%,-50%);transition:none}
.eyes-paused .pasted-eye-open{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.pasted-eye-open{animation:none}.pasted-eye img{transform:translate(-50%,-50%);transition:none}}
.pasted-eye:nth-child(7n+2){opacity:.55;transform:rotate(var(--eye-tilt)) scaleX(-1)}
.cult-eye-wall{position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.46;background:#690909}
.cult-eye-wall .pasted-eyes{inset:-20px -40px;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px 0}
body.cult-collage{isolation:isolate;background-color:#580808;background-image:linear-gradient(#73080899,#230404a8),url('./assets/red-emulsion-v1.png')}
.cult-collage .article{background:linear-gradient(115deg,#290708f5,#1b0808f5)}
.cult-collage .article-aside{background:#250505f2}
.effigy-collage{position:relative;isolation:isolate;overflow:hidden;min-height:440px;padding:34px 15%;background:#660909 url('./assets/red-emulsion-v1.png') center/cover}
.effigy-collage>.pasted-eyes{inset:-6px -15%;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px 0;opacity:.9;z-index:-1}
.effigy-photo{display:block;width:100%;aspect-ratio:2/3;object-fit:cover;object-position:center;border:7px solid #250806;outline:1px solid #b76644;filter:sepia(.25) contrast(1.18) saturate(.6);box-shadow:0 3px 30px #000a;transform:rotate(-1deg)}
.effigy-strip{position:absolute;top:11%;writing-mode:vertical-rl;font:700 clamp(.9rem,2vw,1.4rem)/1.8 var(--serif);letter-spacing:.3em;background:#b12c1c;color:#1c0101;border:1px solid #e86239;padding:17px 3px;box-shadow:3px 4px #16000088}
.strip-left{left:7%;transform:rotate(5deg)}.strip-right{right:7%;top:27%;transform:rotate(-4deg)}
.effigy-number{position:absolute;bottom:7px;left:15px;font-size:9px;letter-spacing:.2em;color:#e0ad91;background:#210202cf;padding:2px 6px}
.effigy-reverse{display:none;position:absolute;inset:8% 13%;text-align:center;background:#340505e8;border:2px double #b75736;padding:30px 10px;box-shadow:0 0 0 5px #450500,0 0 0 6px #a44f30;color:#e4a18c;align-content:center}
.effigy-reverse>span{font-size:10px;letter-spacing:.4em}.effigy-reverse strong{display:block;font:600 clamp(1.2rem,3vw,2rem)/1.7 var(--serif);margin:25px 0;color:#f07760}.article .effigy-reverse p{font:1rem/1.9 var(--serif);margin:0;letter-spacing:.15em}
[data-effigy-side="back"] .effigy-photo,[data-effigy-side="back"] .effigy-strip{visibility:hidden}[data-effigy-side="back"] .effigy-reverse{display:grid}
.ritual-interruption>.pasted-eyes{grid-template-columns:repeat(5,minmax(0,1fr));opacity:.42;gap:34px 0}
.ritual-interruption .ritual-center{position:relative;z-index:1;background:#410306dc;border:1px solid #a64a356e;padding:28px 35px;box-shadow:0 0 70px #290000}
.ritual-exit{z-index:3}.ritual-rim,.ritual-bottom{z-index:2}
.glyph-fringe{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:4px 0 18px;color:#d05143b8;font:12px/1.5 ui-monospace,"Songti SC",serif;letter-spacing:.38em;user-select:none;text-shadow:2px 1px #430000,-1px 0 #e69b6c77}
.glyph-fringe span{display:block;white-space:nowrap;width:130%;transform:translateX(-12px)}.glyph-fringe span:last-child{transform:translateX(-4px) skewX(-6deg)}
.damaged-fragment{margin:0;padding:18px 22px;background:linear-gradient(100deg,#2b0506,#170708 55%,#3d090c);border-block:1px solid #70392e;position:relative;overflow:hidden}
.fragment-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;color:#a76f62;font-size:.65rem;letter-spacing:.12em}.fragment-heading button{background:#370b0b;color:#d99e89;border-color:#784030;font-size:.75rem;padding:4px 10px;flex-shrink:0}.fragment-heading button:hover{background:#632018;color:#ffe0bf}
.fragment-scraps{margin:18px 0 12px;min-height:132px;user-select:none}.fragment-scraps p,.article .fragment-scraps p{margin:0;font:clamp(1rem,2.4vw,1.3rem)/1.6 ui-monospace,"Songti SC",serif;color:#ca6556;letter-spacing:.2em;text-shadow:2px 0 #501013,-1px 1px #e0826255;overflow-wrap:anywhere;min-height:33px}
.fragment-scraps p:nth-child(2){transform:translateX(7px);color:#98605b}.fragment-scraps p:nth-child(3){transform:skewX(-5deg)}.fragment-scraps p:last-child{letter-spacing:.37em;color:#db7867}
.fragment-reading,.article .fragment-reading{margin:18px 0 12px;min-height:132px;font:1rem/2 var(--serif);letter-spacing:.08em;color:#ecc9b8;white-space:pre-line}
.fragment-footnote{font:11px/1.6 var(--serif);color:#9b6b62;display:block}.ritual-interruption>.glyph-fringe{padding:65px 18px 28px;opacity:.75;font-size:clamp(.75rem,2vw,1.2rem)}
@media(max-width:600px){.damaged-fragment{padding:15px 14px}.fragment-heading{letter-spacing:.03em}.fragment-scraps p,.article .fragment-scraps p{font-size:1rem;letter-spacing:.15em}.glyph-fringe{font-size:10px;letter-spacing:.2em}.fragment-reading,.article .fragment-reading{font-size:.95rem}}
@media(max-width:600px){.cult-eye-wall .pasted-eyes{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 0}.effigy-collage{min-height:385px;padding:30px 12%}.effigy-photo{aspect-ratio:1/1.8}.effigy-strip{font-size:12px;left:4%;padding:10px 2px}.strip-right{left:auto;right:4%}.effigy-reverse{inset:9% 11%;padding:15px 8px}.effigy-reverse strong{font-size:1.2rem;margin:18px 0}.article .effigy-reverse p{font-size:.9rem}.ritual-interruption>.pasted-eyes{grid-template-columns:repeat(3,minmax(0,1fr))}.ritual-interruption .ritual-center{padding:28px 20px}}

/* v0.9.4 — shared reading in place of the final questionnaire */
.reading-start {max-width:860px;margin:30px auto;line-height:1.95}
.reading-start .primary,.gate-panel .button-link.primary {color:#fff}
.archive-extra {margin-top:30px;border-top:1px solid var(--line,#d8dcd8);padding-top:18px}
.archive-extra summary,.reading-sources summary {cursor:pointer;line-height:1.7}
.reading-room {max-width:980px;margin:32px auto}
.reading-progress {display:flex;gap:16px;justify-content:center;margin:0 12px 24px;color:#7a8587;font-size:14px;flex-wrap:wrap}
.reading-progress span {padding:7px 3px;border-bottom:2px solid transparent}
.reading-progress [aria-current] {color:#174b45;border-color:#a68a50}
.reading-scene {max-width:790px;margin:auto;background:#fff;border-top:4px solid #aa9057;padding:48px 62px;box-shadow:0 8px 35px #20383d09}
.reading-scene h1 {font:600 clamp(26px,4vw,36px)/1.5 Georgia,'Songti SC',serif;margin:16px 0 22px;color:#263f4b}
.reading-intro {font-size:15px;color:#6b7a80;line-height:1.9;border-left:3px solid #d8ccb2;padding-left:17px;margin-bottom:30px}
.reading-prose,.reading-reply {font-family:Georgia,'Songti SC','SimSun',serif;font-size:18px;line-height:2.05;color:#30424a;overflow-wrap:anywhere}
.reading-prose p {margin:0 0 25px}
.reading-reply {padding:10px 22px;margin:28px 0;background:#f4f4ed;border-left:3px solid #a58d54;font-size:17px}
.reading-sources {font-size:14px;padding:15px 0;border-top:1px solid #e5e9e5;color:#5d7075}
.reading-sources .file-list {margin:10px 0}
.reading-sources .file-list li {padding:10px 0}
.reading-actions {display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:30px}
.reading-actions .primary {margin-left:auto}
.reading-pause {text-align:center;color:#7a8587;font-size:13px;margin:22px}
.ending-choices {display:grid;gap:12px;margin-top:20px}
.ending-choices button,.ending-choices a {white-space:normal;text-align:left;line-height:1.7}
.gate-references {display:flex;gap:18px;flex-wrap:wrap;margin:22px 0}
.return-reading {margin-top:26px}
.chat-evidence .chat-attachment {margin:8px 0 14px;max-width:100%;box-sizing:border-box}
.chat-evidence p {font-size:14px;line-height:1.8;margin:0 0 8px}
@media(max-width:600px){.reading-room{margin:22px -6px}.reading-scene{padding:28px 21px}.reading-prose{font-size:17px;line-height:2}.reading-reply{padding:7px 16px;font-size:16px}.reading-progress{gap:6px;font-size:12px;justify-content:space-between}.reading-progress span{padding:5px 0}.reading-actions button{max-width:100%;white-space:normal;text-align:left}.reading-start{margin:16px 0}}
.paper-puzzle {font-family:system-ui,-apple-system,'PingFang SC',sans-serif;border:1px solid #dbd6c9;background:#f7f5ef;padding:24px;margin:30px 0;scroll-margin-top:24px}
.paper-puzzle h2 {font-family:Georgia,'Songti SC',serif;font-size:24px;line-height:1.5;margin:12px 0}
.paper-puzzle .puzzle-instruction {font-size:14px;line-height:1.8;color:#5c696a;margin-bottom:18px}
.paper-pieces {display:grid;gap:12px}
.paper-piece {font:17px/1.85 Georgia,'Songti SC',serif;white-space:normal;text-align:left;background:#fffef8;border:1px dashed #afa48c;padding:13px 16px;box-shadow:1px 3px 0 #e5dfd1;color:#3e4541}
.paper-piece:hover {border-color:#536e62;background:#fff}
.assembled-note {background:#fffef8;border-left:3px solid #af9e7c;margin-top:24px;padding:14px 18px;min-height:50px;font:17px/1.9 Georgia,'Songti SC',serif}
.assembled-note p {margin:0 0 8px}
.assembled-note span {font:14px/1.8 system-ui;color:#78817b}
#puzzle-feedback {font:15px/1.8 system-ui;color:#8b482e;margin:14px 0 0}
.notice-pair {display:grid;grid-template-columns:1fr 1fr;gap:16px}
.notice-sheet {position:relative;padding:20px 15px;background:#fffef8;border:1px solid #ddd4c0;font-size:15px;line-height:1.9}
.notice-sheet h3 {font-size:18px;line-height:1.6;margin:12px 0}
.notice-sheet p {margin:8px 0 18px}
.notice-sheet small {font-size:12px;color:#747a70}
.notice-sheet .revision-note {font-size:13px;color:#875735}
.notice-stamp {display:inline-block;border:2px solid #9b544b;color:#9b544b;padding:2px 10px;transform:rotate(-5deg);font-size:16px}
.notice-sheet.retained {border-color:#688473}
.notice-sheet.retained .notice-stamp {color:#38614b;border-color:#38614b}
.notice-sheet.obsolete {background:#eeece6;color:#74796e}
@media(max-width:520px){.paper-puzzle{padding:18px 13px;margin-left:-7px;margin-right:-7px}.notice-pair{grid-template-columns:1fr}.notice-sheet{padding:16px}.paper-piece{font-size:16px}.assembled-note{font-size:16px}}

/* A fictional phone stays above the archive; no external messaging service. */
#phone-launch {position:fixed;right:25px;bottom:25px;z-index:80;display:flex;align-items:center;gap:9px;padding:11px 19px;background:#243933;color:#fff;border:1px solid #829486;border-radius:28px;box-shadow:0 5px 24px #102c3133}
#phone-launch[hidden],#phone-notice[hidden]{display:none}
.phone-launch-icon{font-size:26px;line-height:1}
#phone-badge{position:absolute;right:-3px;top:-4px;background:#e74646;color:#fff;border:2px solid #fff;border-radius:12px;min-width:21px;padding:0 4px;font:12px/18px system-ui;font-style:normal}
#phone-notice{position:fixed;right:25px;bottom:89px;z-index:81;width:295px;max-width:calc(100vw - 32px);background:#f8faf8f5;border:1px solid #d9e2da;border-radius:15px;box-shadow:0 8px 28px #102a3430;padding:13px 17px;text-align:left;color:#263d37;display:grid;grid-template-columns:40px 1fr;gap:4px 10px;line-height:1.6;font-size:14px}
#phone-notice .notice-app{background:#07c160;color:#fff;font-size:11px;border-radius:9px;grid-row:span 2;align-content:center;text-align:center}
#phone-notice strong{font-size:14px}
#phone-notice>span:last-child{grid-column:2}
#phone-dialog{width:430px;max-width:calc(100vw - 20px);height:min(830px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);padding:0 10px 29px;background:transparent;box-shadow:none;border:none;overflow:visible;color:#191919}
#phone-dialog::backdrop{background:#13211b55;backdrop-filter:blur(2px)}
.phone-frame{height:100%;display:flex;flex-direction:column;border:7px solid #292c2b;background:#ededed;border-radius:43px;overflow:hidden;box-shadow:0 18px 70px #0007,0 0 0 1px #8d9290}
.phone-status{height:41px;flex-shrink:0;padding:9px 23px 0;display:flex;align-items:center;justify-content:space-between;background:#ededed;font:600 12px/1 system-ui}
.phone-status i{display:block;width:83px;height:23px;border-radius:16px;background:#202222;position:absolute;left:calc(50% - 41px);top:15px}
#phone-content{flex:1;min-height:0;overflow:hidden}
.phone-home{width:115px;height:5px;min-height:5px;border:0;border-radius:5px;padding:0;margin:12px auto 8px;background:#262626;flex-shrink:0}
.phone-close{display:block;margin:7px auto 0;padding:3px 12px;font-size:13px;color:#fff;border:0;background:#22392ce6;border-radius:18px}
#phone-dialog .messenger{height:100%;min-height:0;display:block;border:0;box-shadow:none;border-radius:0;margin:0;background:#ededed}
#phone-dialog .contacts{display:none}
#phone-dialog.phone-contacts .contacts{display:block;height:100%;overflow:auto;background:#fff;padding:0;border:0}
#phone-dialog.phone-contacts .conversation{display:none}
#phone-dialog .messenger-label{padding:13px 22px;background:#ededed;border-bottom:1px solid #ddd;color:#181818;font-size:22px}
#phone-dialog .messenger-label small{font-size:12px;color:#828282;margin-left:8px}
#phone-dialog .contact{display:flex;align-items:center;gap:13px;border:0;border-bottom:1px solid #eee;border-radius:0;margin:0;padding:16px 20px;background:#fff;color:#161616;width:100%;text-align:left}
#phone-dialog .contact>span:nth-child(2){flex:1;min-width:0}
#phone-dialog .contact strong{font-size:16px;font-weight:500;display:block;line-height:1.5}
#phone-dialog .contact small{font-size:12px;color:#8b8b8b;display:block;line-height:1.7;margin-top:4px}
#phone-dialog .avatar{height:42px;width:42px;flex:0 0 42px;border-radius:6px;background:#697f91;color:#fff;font-size:19px;display:grid;place-items:center}
#phone-dialog .avatar.clerk{background:#77756d}
#phone-dialog .avatar.shen{background:#a79b82}
#phone-dialog .avatar.liaison{background:#9c624f}
#phone-dialog .chat-local{font-size:11px;color:#999;text-align:center;line-height:1.8;padding:18px 10px}
#phone-dialog .conversation{height:100%;min-height:0;display:flex;flex-direction:column;background:#ededed}
#phone-dialog .conversation>header,.lost-phone-view>header{display:flex;align-items:center;gap:8px;min-height:54px;padding:7px 14px;border-bottom:1px solid #d8d8d8;background:#ededed;flex-shrink:0}
#phone-dialog .conversation>header>.avatar{display:none}
#phone-dialog .conversation>header>div{flex:1;min-width:0;text-align:center}
#phone-dialog .conversation>header h1,.lost-phone-view h1{font:600 17px/1.5 system-ui;margin:0;color:#171717}
#phone-dialog .conversation>header small{display:block;font-size:10px;color:#888;line-height:1.5}
#phone-dialog .phone-back,#phone-dialog .phone-minimize{background:transparent;border:0;color:#262626;padding:0 5px;font:28px/1 system-ui;min-width:32px}
#phone-dialog .chat-log{flex:1;height:auto;min-height:0;overflow-y:auto;padding:12px 15px 22px;scroll-behavior:auto}
#phone-dialog .chat-episode{margin-bottom:22px}
#phone-dialog .chat-time{color:#969696;font-size:10px;text-align:center;margin:15px 0;line-height:1.7;clear:both}
#phone-dialog .bubble{font:14px/1.85 system-ui,-apple-system,'PingFang SC',sans-serif;max-width:92%;padding:10px 13px;border:0;border-radius:5px;box-shadow:none;margin:9px 0;overflow-wrap:anywhere}
#phone-dialog .incoming{background:#fff;color:#222;margin-right:24px}
#phone-dialog .outgoing{background:#95ec69;color:#18231b;margin-left:auto}
#phone-dialog .chat-choices{display:grid;gap:7px;clear:both;margin:12px 0 18px 25px}
#phone-dialog .chat-choices button{font-size:12px;line-height:1.75;padding:8px 10px;border:1px solid #a5c49a;border-radius:6px;background:#edf7e8;color:#325335;text-align:left;white-space:normal}
#phone-dialog .chat-attachment{padding:12px;background:#fff;border:1px solid #e0e1df;border-radius:5px;margin:10px 22px 10px 0;font-size:13px;line-height:1.7;color:#273a30;max-width:100%}
#phone-dialog .chat-attachment span{font-size:10px;color:#90968f}
#phone-dialog .chat-evidence{margin:12px 0;background:#e4e9e0;border:0;border-radius:6px;padding:12px}
#phone-dialog .chat-evidence p{font-size:11px;color:#647060}
#phone-dialog .chat-evidence .primary{background:#07b75a;color:white;border:0;font-size:12px;padding:8px 14px}
#phone-dialog .chat-footer{display:flex;align-items:center;flex-wrap:wrap;gap:9px;border-top:1px solid #ddd;padding:9px 14px;background:#f6f6f6;flex-shrink:0}
#phone-dialog .chat-footer a,#phone-dialog .chat-footer button{background:#fff;border:1px solid #ddd;color:#4e6354;border-radius:5px;font-size:11px;padding:6px 8px;margin:0}
#phone-dialog .chat-footer span{width:100%;font-size:10px;color:#999}
#phone-dialog .chat-wait{font-size:11px;color:#8f938c;text-align:center;line-height:1.9}
.lost-phone-view{height:100%;display:flex;flex-direction:column}
.lost-phone-view h1{flex:1;text-align:center}
.lost-phone-log{flex:1;overflow:auto;padding:15px}
.lost-message{display:flex;align-items:flex-start;gap:10px}
#phone-dialog .lost-message .bubble{margin:0;max-width:calc(100% - 58px)}
#phone-dialog .deleted-avatar{background:#c6c8c6;color:#eef0ee;font-size:27px}
#phone-dialog .account-deleted{color:#9c4b49;background:#dfd7d3;padding:8px;margin-top:30px;border-radius:4px}
.lost-phone-note{text-align:center;font:14px/2.1 'Songti SC',serif;color:#866c68;margin-top:36px}
.disabled-compose{text-align:center;background:#e1e1e1;color:#9d9d9d;padding:18px 10px;font-size:13px}
@media(max-width:520px){#phone-launch{right:14px;bottom:15px;padding:8px 14px;font-size:13px}#phone-notice{right:14px;bottom:72px}#phone-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;padding:0 5px 28px}.phone-frame{border-width:4px;border-radius:28px}.phone-status{padding-left:23px;padding-right:23px}.phone-status i{top:12px}#phone-dialog .chat-log{padding:10px 12px}.phone-close{font-size:12px}#phone-dialog .contact{padding:14px 18px}}
#phone-dialog .messenger-label,#phone-dialog .chat-local{display:block}
#phone-dialog .expired-attachment{background:#f7f7f7;border:1px solid #ddd;border-radius:5px;margin:14px 23px 14px 0;padding:14px;color:#999}
.expired-attachment strong,.expired-attachment span,.expired-attachment small{display:block;line-height:1.8}
.expired-attachment strong{font-size:13px;font-weight:500}.expired-attachment span{font-size:12px}.expired-attachment small{font-size:10px;border-top:1px solid #e8e8e8;margin-top:8px;padding-top:8px}

/* The erased-name search returns one unsettling receipt per page session. */
dialog.name-interruption{background:linear-gradient(#a10808b8,#3b0005cb),url('./assets/red-emulsion-v1.png') center/cover;padding:65px 20px 28px}
.name-interruption>.pasted-eyes{grid-template-columns:repeat(5,minmax(0,1fr));opacity:.9;gap:32px 3px;inset:0}
.name-interruption .pasted-eye:nth-child(3n){transform:rotate(-11deg) scale(1.12);filter:grayscale(1) contrast(2.2)}
.name-panel{position:relative;z-index:2;max-width:660px;min-height:calc(100dvh - 100px);margin:auto;padding:36px 28px;text-align:center;background:linear-gradient(110deg,#250207f2,#300104e0);border:1px solid #ac302e;box-shadow:0 0 80px #110001,7px 8px 0 #63090966;display:flex;flex-direction:column;align-items:center;justify-content:center}
.name-receipt{font:11px/1.8 ui-monospace,monospace;letter-spacing:.24em;color:#b7746b}
.name-missing{font:700 clamp(2.1rem,6vw,4rem)/1.4 var(--serif);letter-spacing:.13em;color:#d8aaa0;margin:22px 0 12px}
.name-command{font:800 clamp(2.5rem,7vw,5.4rem)/1.25 var(--serif);letter-spacing:.1em;color:#ed302d;margin:18px 0;text-shadow:3px 2px #660909,-2px -1px #a52127;transform:rotate(-2deg)}
.name-noise{font:clamp(.8rem,2.5vw,1.05rem)/1.8 ui-monospace,monospace;color:#ad343e;letter-spacing:.2em;overflow-wrap:anywhere;margin:15px 0}
.name-echo{font:1rem/1.9 var(--serif);color:#d9998c;letter-spacing:.1em;margin:12px 0}
.name-status{color:#a46e65;font:12px/1.9 ui-monospace,monospace;margin:24px 0 0}
.name-search-reveal{animation:name-ink .8s ease-out both}.name-interruption .ritual-return{margin-top:20px}.name-interruption .ritual-exit{position:fixed;color:#ffe1d5;background:#280206;border-color:#d16b5a;min-height:44px}
@keyframes name-ink{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){dialog.name-interruption{padding:72px 18px 22px}.name-panel{padding:24px 15px;min-height:calc(100dvh - 94px)}.name-interruption>.pasted-eyes{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 0}.name-command{font-size:clamp(2.2rem,10vw,3.8rem)}}
.reduced-motion .name-search-reveal{animation:none}@media(prefers-reduced-motion:reduce){.name-search-reveal{animation:none}}

/* Search interruption keeps school layout while text, portrait slots and pale surfaces change. */
.son-echo-exit{position:fixed;right:20px;top:62px;z-index:90;background:#fff;color:#234b6b;border:1px solid #aab8c4;padding:8px 12px;font-size:13px;box-shadow:0 2px 8px #0002}
.son-echo-active .service-links> a>span{font-size:12px;line-height:1.4}
.clue-underline{text-decoration:underline;text-decoration-color:currentColor;text-decoration-thickness:1px;text-underline-offset:3px}

.son-echo-active .school-header{background:#650008}
.son-echo-active :is(.gamebar,.school-header,.school-nav,#personal-dock,#main,.site-footer,#phone-launch),.son-echo-active :is(.gamebar,.school-header,.school-nav,#personal-dock,#main,.site-footer,#phone-launch) *{color:#df1020}
.son-echo-active :is(.gamebar,.school-header,.school-nav,.photo-caption,#phone-launch) *,.son-echo-active #phone-launch{color:#ff3442}
.son-echo-active #header-query,.son-echo-active #header-query::placeholder{color:#df1020;opacity:1}
.son-echo-active #phone-notice{visibility:hidden}

.son-echo-char{opacity:0}
.son-echo-char.echo-ready{opacity:1}

/* Character spans inherit typography without picking up the website's label/badge styles. */
body.son-echo-active .son-echo-copy,body.son-echo-active .son-echo-char{display:inline;font:inherit;letter-spacing:inherit;line-height:inherit;padding:0;margin:0;border:0;background:transparent;border-radius:0;box-shadow:none;text-transform:none}

/* The school layout stays intact while its pale surfaces slowly darken. */
body.son-echo-active,.son-echo-active #main,.son-echo-active .home-content,.son-echo-active .site-footer{background:var(--son-page-color,#f5f7f8)}
.son-echo-active #personal-dock,.son-echo-active .alumni-strip,.son-echo-active .date-square,.son-echo-active .service-links>a,.son-echo-active .home-bottom{background:var(--son-panel-color,#edf1f4)}
.son-echo-active #header-query{background:var(--son-field-color,#fff)}
.son-echo-active :is(#personal-dock,#main,.site-footer) *,.son-echo-active #header-query{color:var(--son-text-color,#df1020)}

/* The selected B portrait fills the existing photo slots; the full hall stays out of view. */
.son-idol-photo{display:block;position:relative;width:100%;height:var(--son-photo-height,205px);overflow:hidden;background:#0e0805}
.photo-slide>.son-idol-photo{position:absolute;inset:0;height:100%}
.school-features>section>a>.son-idol-photo{margin-bottom:20px}
.son-idol-portrait{display:block;position:absolute;height:100%;width:auto;aspect-ratio:170/236;left:50%;top:0;transform:translateX(-50%);overflow:hidden;opacity:1;transition:opacity .65s ease-out}
.son-photo-pending>.son-idol-portrait{opacity:0}
.son-idol-portrait>.idol-scene{position:absolute;width:903.53%;max-width:none;left:-405.88%;top:-78.81%}
.son-idol-photo .idol-scene>img{display:block;width:100%;height:auto;max-width:none;margin:0}
