@charset "UTF-8";
/* 连续画纸与自由铺开的风景，人物区域不再单独着色成块 */
.profiles{background:var(--paper);overflow:clip;position:relative;isolation:isolate}
.profile.anime-profile{width:min(1100px,86%);padding:55px 38px 165px;margin:135px auto 200px;min-height:670px;--side-space:clamp(0px,calc((100vw - 1180px)/4),105px)}
.profile.anime-profile::before,.profile.anime-profile:nth-child(2n)::before,.profile.anime-profile:nth-child(3n)::before{display:none}
.anime-profile .profile-grid{z-index:2}.anime-profile .profile-copy{isolation:isolate;background:transparent;text-shadow:0 1px 3px #fffdf399}.anime-profile .profile-copy::before{content:none}
.anime-profile .profile-art{opacity:.035}.profile.anime-profile.formal{padding:75px 35px 170px}.profile.anime-profile.cinema{--ink:#263f3c;color:#263f3c;padding:55px 38px 170px}.profile.anime-profile.cinema .profile-home,.profile.anime-profile.cinema .profile-quote{color:#79645e}.profile.anime-profile.cinema .profile-tags span{color:#79645e;border-color:#a892793f;background:#fffdf366}.profile.anime-profile.cinema .profile-number{color:#917a69;opacity:.11}
/* 场景独立于文字排版，边缘通过不规则水彩蒙版融入画纸 */
.hometown-stage{position:absolute;z-index:0;isolation:isolate;margin:0;padding:0;border:0;border-radius:0;outline:0;box-shadow:none;overflow:visible;width:1120px;height:650px;pointer-events:auto;opacity:var(--scene-opacity,.84);transform:rotate(var(--scene-turn,0deg));--entry-x:50px;--entry-y:65px}
.hometown-stage:focus-visible{outline:2px dashed #b28f6573;outline-offset:-80px}
.scene-arrival{position:absolute;inset:0;transition:opacity 1.7s .15s var(--ease),translate 2s .12s var(--ease),scale 2.2s .12s var(--ease),filter 1.5s .12s ease;will-change:auto}
.scene-surface{position:absolute;inset:0;isolation:isolate;overflow:hidden;mask-image:url('scene-wash-a.svg');-webkit-mask-image:url('scene-wash-a.svg');mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat}
.scene-parallax{inset:-18px;z-index:-3}.scene-scenery{object-fit:cover;object-position:center 54%;animation-duration:31s}.scene-weather{z-index:1}.scene-title,.scene-rim{display:none}
.wash-left{left:-250px;top:27%;--scene-turn:3deg;--entry-x:-70px;--entry-y:55px}
.wash-right{right:-265px;top:34%;width:1190px;height:660px;--scene-turn:-4deg;--entry-x:80px;--entry-y:55px}.wash-right .scene-surface{mask-image:url('scene-wash-b.svg');-webkit-mask-image:url('scene-wash-b.svg')}
.wash-high{right:-210px;top:-135px;width:1160px;height:640px;--scene-turn:4deg;--scene-opacity:.68;--entry-x:55px;--entry-y:-55px}.wash-high .scene-surface{mask-image:url('scene-wash-c.svg');-webkit-mask-image:url('scene-wash-c.svg')}
.wash-low{left:1%;top:45%;width:1240px;height:650px;--scene-turn:-2deg;--entry-x:-45px;--entry-y:75px}
.wash-cross{left:-220px;top:11%;width:1370px;height:760px;--scene-turn:-4deg;--scene-opacity:.73;--entry-x:-65px;--entry-y:-25px}.wash-cross .scene-surface{mask-image:url('scene-wash-c.svg');-webkit-mask-image:url('scene-wash-c.svg')}
.wash-corner{right:-320px;bottom:-135px;width:1170px;height:720px;--scene-turn:5deg;--entry-x:75px;--entry-y:65px}.wash-corner .scene-surface{mask-image:url('scene-wash-b.svg');-webkit-mask-image:url('scene-wash-b.svg')}
.scenery-motion-ready .anime-profile:not(.scenery-seen) .scene-arrival,.scenery-motion-ready .teacher-panel:not(.scenery-seen) .scene-arrival{opacity:0;translate:var(--entry-x) var(--entry-y);scale:.94;filter:blur(5px)}
.scenery-motion-ready .scenery-seen .scene-arrival{opacity:1;translate:0 0;scale:1;filter:blur(0)}
/* 爱好小物件分散在两侧，保留纸张留白，点击动画独立于风景 */
.hobby-orbit{position:absolute;inset:0;z-index:5;pointer-events:none}.hobby-orbit:empty{display:none}
.hobby-orbit .hobby-piece,.teacher-panel .hobby-orbit .hobby-piece{position:absolute;top:var(--dock-top);bottom:auto;left:auto;right:auto;width:var(--piece-size,104px);height:var(--piece-size,104px);translate:-50% -50%;rotate:var(--piece-angle,0deg);pointer-events:auto;filter:drop-shadow(0 8px 7px #254d3517)}
.hobby-orbit .hobby-piece[data-dock=left],.teacher-panel .hobby-orbit .hobby-piece[data-dock=left]{left:calc(0px - var(--side-space,30px))}.hobby-orbit .hobby-piece[data-dock=right],.teacher-panel .hobby-orbit .hobby-piece[data-dock=right]{left:calc(100% + var(--side-space,30px))}
.hobby-arrival{display:block;width:100%;height:100%;transition:opacity 1s calc(.25s + var(--slot)*.17s) var(--ease),translate 1.4s calc(.25s + var(--slot)*.17s) var(--ease),rotate 1.5s calc(.25s + var(--slot)*.17s) var(--ease),scale 1.3s var(--ease)}
.scenery-motion-ready .anime-profile:not(.scenery-seen) .hobby-arrival,.scenery-motion-ready .teacher-panel:not(.scenery-seen) .hobby-arrival{opacity:0;translate:-20px 30px;rotate:-12deg;scale:.86}.scenery-motion-ready .scenery-seen .hobby-arrival{opacity:1;translate:0 0;rotate:0deg;scale:1}.hobby-shadow{opacity:.35;background:#5c735d13}
.ambient-active .hobby-float,.ambient-active .hobby-shadow,.ambient-active .hobby-piece::after{animation-play-state:running!important}.scenes-paused .hobby-float,.scenes-paused .hobby-shadow,.scenes-paused .hobby-piece::after{animation-play-state:paused!important}
.hobby-pop{position:absolute;left:50%;top:40%;width:1px;height:1px;pointer-events:none;z-index:9}.hobby-pop i{position:absolute;left:0;top:0;font-style:normal;color:#b28b40;font-size:17px;opacity:0;animation:side-spark 1.25s ease-out both;rotate:var(--spark-angle)}
@keyframes side-spark{0%{opacity:0;translate:0 0;scale:.5}20%{opacity:.9}100%{opacity:0;translate:var(--spark-x) var(--spark-y);scale:1.15;rotate:18deg}}
.teacher-panel{isolation:isolate;--side-space:20px}.teacher-panel>.hometown-stage{left:-170px;right:auto;top:80px;bottom:auto;width:1200px;height:690px;margin:0;border:0;--scene-opacity:.46;--scene-turn:-3deg}.teacher-copy{position:relative;z-index:2;isolation:isolate;background:transparent;text-shadow:0 1px 3px #fffdf399}.teacher-copy::before{content:none}
.teacher-panel .hobby-orbit .hobby-piece{--piece-size:85px}.teacher-visual{z-index:2}.teacher-section{padding-bottom:145px}
.interlude{height:340px;margin:20px 0 100px;overflow:visible;background:none}.interlude::before{inset:-80px -8%;background:url('../assets/mountains.webp') center 62%/cover;opacity:.53;mask-image:url('scene-wash-b.svg');-webkit-mask-image:url('scene-wash-b.svg');mask-size:100% 100%;-webkit-mask-size:100% 100%}.interlude p{color:#254b3e;text-shadow:0 2px 20px #fffceecc;font-size:clamp(27px,3.5vw,43px)}
@media(min-width:1700px){.profile.anime-profile{margin-top:170px;margin-bottom:240px}.hobby-orbit .hobby-piece{width:calc(var(--piece-size)*1.1);height:calc(var(--piece-size)*1.1)}}
@media(max-width:1300px) and (min-width:761px){.hobby-orbit .hobby-piece,.teacher-panel .hobby-orbit .hobby-piece{width:82px;height:82px}.profile.anime-profile{width:85%;padding-left:32px;padding-right:32px;--side-space:0px}.wash-right{right:-235px;width:1070px}.wash-left{left:-230px;width:1070px}}
@media(max-width:1300px) and (min-width:1051px){.profile.anime-profile{--side-space:20px}}
@media(max-width:1050px) and (min-width:761px){.profile.anime-profile,.teacher-panel{--side-space:12px}.hobby-orbit .hobby-piece,.teacher-panel .hobby-orbit .hobby-piece{width:64px;height:64px}}
@media(max-width:760px){
 .profile.anime-profile,.profile.anime-profile.formal,.profile.anime-profile.cinema{width:86%;padding:35px 10px 180px;margin:80px auto 105px;min-height:0;--side-space:0px}.profile.anime-profile.longform{padding-bottom:210px}.profile.anime-profile:first-child{margin-top:55px}
 .anime-profile .profile-grid{gap:33px}.profile.anime-profile .photo-area{z-index:2}
 .hometown-stage,.wash-left,.wash-right,.wash-high,.wash-low,.wash-cross,.wash-corner{width:720px;height:500px;margin:0;border:0;border-radius:0;box-shadow:none;--scene-opacity:.78;--scene-turn:-3deg}
 .wash-left{left:-210px;right:auto;top:38%;bottom:auto}.wash-right{right:-220px;left:auto;top:42%;bottom:auto}.wash-high{right:-210px;left:auto;top:-65px;bottom:auto;--scene-opacity:.57;--scene-turn:5deg}.wash-low{left:-190px;right:auto;top:auto;bottom:-65px}.wash-cross{left:-215px;right:auto;top:22%;bottom:auto;height:640px;--scene-opacity:.66}.wash-corner{right:-230px;left:auto;top:auto;bottom:-85px;--scene-turn:6deg}
 .hobby-orbit .hobby-piece,.teacher-panel .hobby-orbit .hobby-piece{top:var(--mobile-y,40px);width:69px;height:69px;translate:-50% -50%}.hobby-orbit .hobby-piece[data-dock=left],.teacher-panel .hobby-orbit .hobby-piece[data-dock=left]{left:20px}.hobby-orbit .hobby-piece[data-dock=right],.teacher-panel .hobby-orbit .hobby-piece[data-dock=right]{left:calc(100% - 20px)}
 .hobby-orbit .hobby-piece[style*="--slot:2"]{left:24px}.hobby-orbit .hobby-piece[style*="--slot:3"]{left:calc(100% - 20px)}
 .teacher-panel>.hometown-stage{width:710px;height:600px;left:-220px;top:80px;--scene-opacity:.41}.teacher-panel .hobby-orbit .hobby-piece{width:66px;height:66px}.teacher-section{padding-bottom:110px}
 .interlude{height:240px;margin:10px 0 70px}.interlude::before{inset:-45px -35%}.interlude p{font-size:26px;letter-spacing:4px}
}
@media(max-width:360px){.hobby-orbit .hobby-piece,.teacher-panel .hobby-orbit .hobby-piece{width:59px;height:59px}.profile.anime-profile{width:85%}}
/* 正文、家乡和兴趣标签一起放大，行距与留白随字号调整 */
body{font-size:18px}.brand{font-size:16px}.site-nav nav{font-size:16px}.hero-description{font-size:20px}.hero-meta{font-size:16px}.chapter-heading h2{font-size:clamp(33px,3.7vw,50px)}
.teacher-copy h3{font-size:50px}.teacher-role{font-size:17px}.teacher-intro,.teacher-extra{font-size:18px;line-height:2}.teacher-invitation{font-size:23px}.research-topics span{font-size:16px;padding:8px 15px}
.atlas-description{font-size:17px}.atlas-region{font-size:15px}.atlas-city{font-size:39px}.atlas-city-note{font-size:18px}.atlas-person span{font-size:17px}.city-list button{font-size:15px;padding:7px 14px}.atlas-footline{font-size:18px}.students-opening p{font-size:20px}.scene-toggle{font-size:15px}
.profile h3{font-size:clamp(38px,4.3vw,59px)}.profile-home{font-size:16px}.profile-quote{font-size:clamp(23px,2.2vw,28px)}.profile-intro,.profile.longform .profile-intro{font-size:18px;line-height:2}.profile-tags{gap:10px;margin-top:27px}.profile-tags span{font-size:15px;padding:7px 13px;gap:8px;background:#f6f5ee30}.profile-tags svg{width:20px;height:20px}
.profile-home,.profile-quote,.profile-tags span{color:color-mix(in srgb,var(--accent) 65%,#173c36)}
/* 浅色描边仅沿字形出现，保留透明的文字区域与完整风景 */
.anime-profile .profile-copy,.teacher-copy{-webkit-text-stroke:2px #f6f5eed9;paint-order:stroke fill;text-shadow:0 1px 4px #fffdf3b3}.profile-intro{font-weight:500}.profile-tags span{-webkit-text-stroke:1px #f6f5eee6;background:#f6f5ee80;border-color:color-mix(in srgb,var(--accent) 42%,transparent)}.teacher-extra{color:#33564b}
@media(max-width:760px){
 .brand{font-size:14px}.site-nav nav{font-size:14px;gap:16px}.hero-description{font-size:18px}.hero-meta{font-size:14px}.chapter-heading h2{font-size:32px}.teacher-copy h3{font-size:40px}.teacher-role{font-size:16px}.teacher-intro,.teacher-extra{font-size:18px}.teacher-invitation{font-size:21px}.research-topics span{font-size:15px;padding:7px 12px}
 .atlas-description{font-size:16px}.atlas-region{font-size:14px}.atlas-city{font-size:33px}.atlas-city-note{font-size:17px}.atlas-person span{font-size:16px}.city-list button{font-size:14px;padding:7px 12px}.atlas-footline{font-size:16px}.students-opening p{font-size:18px}.scene-toggle{font-size:14px}
 .profile h3{font-size:40px;letter-spacing:4px}.profile-home{font-size:15px}.profile-quote{font-size:24px;line-height:1.8}.profile-intro,.profile.longform .profile-intro{font-size:18px;line-height:1.95}.profile-tags span{font-size:15px;padding:7px 12px}.profile-tags svg{width:19px;height:19px}
}
@media(max-width:360px){.site-nav nav{font-size:13px;gap:12px}.brand{font-size:13px}.chapter-heading h2{font-size:30px}.profile h3{font-size:38px}}
@media(prefers-reduced-motion:reduce){.scene-arrival,.hobby-arrival{transition:none!important;opacity:1!important;translate:0 0!important;rotate:0deg!important;scale:1!important;filter:none!important}.hobby-pop{display:none}}
@media print{.profile.anime-profile{margin:30px auto;padding-bottom:60px;min-height:0}.hobby-orbit{display:none}.hometown-stage{opacity:.25;break-inside:avoid}.scene-arrival{opacity:1!important;translate:0 0!important;scale:1!important;filter:none!important}.interlude{height:200px}}
