:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100vh;overflow:hidden;// 隐藏全局滚动条}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.home-container{position:relative;width:100%;height:100vh;overflow:hidden}.page-background{position:fixed;top:0;left:0;width:100%;height:100vh;z-index:0;background-size:cover;background-position:center;background-repeat:no-repeat}.page-background .background-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.page-wrapper{position:fixed;width:100%;height:100vh;display:flex;align-items:center;justify-content:center;padding-top:70px;box-sizing:border-box;z-index:2}.scroll-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:#ffffff1a;z-index:1000}.scroll-progress .progress-bar{height:100%;background:#fff9}.section-welcome{position:relative;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:100vh;width:100%;box-sizing:border-box;padding-left:100px}.section-welcome .text-columns{position:absolute;left:8vw;display:flex;flex-direction:row;gap:3rem}.section-welcome .column{writing-mode:vertical-rl;text-orientation:mixed;font-size:2rem;font-weight:500;letter-spacing:.1em;color:#333;-webkit-user-select:none;user-select:none}.section-welcome .portal-section{position:absolute;right:30px;bottom:30px;display:flex;flex-direction:column;gap:20px;align-items:center}.section-welcome .portal-section iframe{display:block;border:none}.section-welcome .portal-section .jump-button{position:relative;padding:15px 40px;font-size:18px;font-weight:600;color:#fff;background:linear-gradient(135deg,#ff6b9d,#ffa6c9,#ff9ec3);border:none;border-radius:50px;cursor:pointer;overflow:hidden;outline:none;transition:all .4s cubic-bezier(.68,-.55,.265,1.55);box-shadow:0 8px 20px #ff6b9d80,0 4px 10px #ffa6c966,inset 0 1px 2px #fff9;display:flex;align-items:center;gap:10px}.section-welcome .portal-section .jump-button .button-text{color:#fff;text-shadow:0 2px 8px rgba(139,69,101,.4),0 1px 3px rgba(0,0,0,.3);font-weight:700;letter-spacing:1px}.section-welcome .portal-section .jump-button .button-icon{font-size:20px;filter:drop-shadow(0 2px 4px rgba(255,255,255,.5));transition:transform .3s ease;display:flex;align-items:center}.section-welcome .portal-section .jump-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);transition:left .6s}.section-welcome .portal-section .jump-button:hover{transform:translateY(-5px) scale(1.05);box-shadow:0 12px 30px #ff6b9d99,0 6px 15px #ffa6c980,inset 0 1px 2px #fffc}.section-welcome .portal-section .jump-button:hover:before{left:100%}.section-welcome .portal-section .jump-button:hover:after{opacity:1;transform:scale(1) rotate(360deg);top:-15px;right:-15px}.section-welcome .portal-section .jump-button:hover .button-icon{animation:bounce-up .4s ease-out}.section-welcome .portal-section .jump-button:active{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 15px #ff6b9d80,0 3px 8px #ffa6c966}@keyframes bounce-up{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.snow-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:1}.snowflake{position:absolute;top:-20px;background:radial-gradient(circle at 30% 30%,#fff,#fffcfefa 15%,#fff5faeb 35%,#ffebf5bf 60%,#ffe1f080 80%,#ffd7eb40 95%,#ffd2e61a);border-radius:50%;pointer-events:none;box-shadow:0 0 4px 2px #fff5faf2,0 0 8px 3px #fff0f8d9,0 0 12px 5px #ffebf5b3,0 0 18px 7px #ffe6f28c,0 0 25px 10px #ffe1f066,0 0 35px 14px #ffdcee4d,0 0 45px 18px #ffd7eb33,0 0 60px 22px #ffd2e81f,inset 0 0 8px 2px #fffffff2,inset 0 0 15px 4px #fffafcb3,inset -3px -3px 12px #ffdcf099;filter:blur(2px)}.snowflake:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:70%;height:70%;background:radial-gradient(circle,rgba(255,255,255,.95) 0%,rgba(255,252,254,.8) 30%,rgba(255,245,250,.5) 60%,transparent 100%);border-radius:50%;filter:blur(3px)}.snowflake:after{content:"";position:absolute;top:15%;left:20%;width:40%;height:40%;background:radial-gradient(circle,#ffffff 0%,rgba(255,255,255,.9) 20%,rgba(255,250,252,.6) 50%,rgba(255,245,250,.3) 70%,transparent 100%);border-radius:50%;filter:blur(2px)}.playlist-panel{flex:0 0 calc(66.667% - 1rem);background:linear-gradient(145deg,#ffffffd9,#f8fafce6,#f1f5f9d9);border-radius:30px;box-shadow:0 20px 60px #00000026,0 8px 32px #fb923c1a,0 0 0 1px #fb923c26,inset 0 1px #fffc;border:1px solid rgba(251,146,60,.2);overflow:hidden;height:90vh;max-height:800px;display:flex;flex-direction:column;position:relative}.playlist-panel:before{content:"";position:absolute;top:0;left:0;right:0;height:120px;background:radial-gradient(ellipse at top,rgba(251,146,60,.08) 0%,transparent 70%);pointer-events:none;z-index:0}.playlist-panel .playlist-header{padding:2rem 2.5rem;border-bottom:1px solid rgba(251,146,60,.15);display:flex;justify-content:space-between;align-items:center;flex-shrink:0;position:relative;z-index:1;background:linear-gradient(180deg,rgba(255,255,255,.4) 0%,transparent 100%)}.playlist-panel .playlist-header h3{margin:0;font-size:24px;font-weight:600;color:#1e293b;letter-spacing:.5px;text-shadow:0 1px 2px rgba(0,0,0,.1)}.playlist-panel .playlist-header .playlist-count{font-size:14px;color:#1e293b;background:#fb923c1f;padding:.5rem 1rem;border-radius:20px;border:1px solid rgba(251,146,60,.2);box-shadow:0 2px 8px #fb923c1a;font-weight:500}.playlist-panel .playlist-items{flex:1;overflow-y:auto;padding:1rem 0;position:relative;z-index:1}.playlist-panel .playlist-items::-webkit-scrollbar{width:8px}.playlist-panel .playlist-items::-webkit-scrollbar-track{background:#fb923c0d;margin:.5rem 0}.playlist-panel .playlist-items::-webkit-scrollbar-thumb{background:#fb923c4d;border-radius:4px}.playlist-panel .playlist-items::-webkit-scrollbar-thumb:hover{background:#fb923c80}.playlist-panel .playlist-items .playlist-item{padding:1.2rem 2.5rem;display:flex;align-items:center;gap:1.5rem;cursor:pointer;transition:all .3s ease;border-left:3px solid transparent;position:relative}.playlist-panel .playlist-items .playlist-item:hover{background:#fb923c14!important;border-left-color:#fb923c66}.playlist-panel .playlist-items .playlist-item.active{background:#fb923c26;border-left-color:#f97316;box-shadow:inset 0 0 20px #fb923c14}.playlist-panel .playlist-items .playlist-item.active .track-title,.playlist-panel .playlist-items .playlist-item.active .track-number{color:#ea580c;font-weight:600}.playlist-panel .playlist-items .playlist-item .track-number{font-size:16px;color:#94a3b8;min-width:35px;text-align:center;font-weight:500}.playlist-panel .playlist-items .playlist-item .track-info{flex:1;min-width:0}.playlist-panel .playlist-items .playlist-item .track-info .track-title{font-size:16px;font-weight:500;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s ease}.playlist-panel .playlist-items .playlist-item .track-artist{font-size:14px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:1rem;max-width:200px;flex-shrink:0}.playlist-panel .playlist-items .playlist-item .playing-indicator{display:flex;align-items:center;gap:3px;height:20px}.playlist-panel .playlist-items .playlist-item .playing-indicator span{width:3px;height:100%;background:#f97316;border-radius:2px;transform-origin:center;box-shadow:0 0 8px #f9731680}@media (max-width: 1400px){.playlist-panel .playlist-header{padding:1.8rem 2rem}.playlist-panel .playlist-header h3{font-size:22px}.playlist-panel .playlist-items .playlist-item{padding:1rem 2rem}}@media (max-width: 1200px){.playlist-panel{flex:1 1 auto;width:100%;max-height:400px}}@media (max-width: 768px){.playlist-panel{max-height:350px}.playlist-panel .playlist-header{padding:1.5rem}.playlist-panel .playlist-header h3{font-size:20px}.playlist-panel .playlist-items .playlist-item{padding:1rem 1.5rem;gap:1rem}.playlist-panel .playlist-items .playlist-item .track-number{min-width:30px;font-size:14px}.playlist-panel .playlist-items .playlist-item .track-info .track-title{font-size:15px}}.section-music{width:100%;height:100%;display:flex;align-items:center;justify-content:center;gap:2rem;padding:2rem;position:relative}.section-music .loading-message{font-size:18px;color:#64748b;text-align:center;padding:3rem;background:#fffc;border-radius:20px;box-shadow:0 8px 24px #0000001a}@media (max-width: 1200px){.section-music{flex-direction:column;gap:1.5rem}}@media (max-width: 768px){.section-music{padding:1rem;gap:1rem}}.music-player-container{flex:0 0 calc(33.333% - 1rem);background:linear-gradient(145deg,#ffffffd9,#f8fafce6,#f1f5f9d9);border-radius:30px;padding:2.5rem 2rem;box-shadow:0 20px 60px #00000026,0 8px 32px #fb923c1a,0 0 0 1px #fb923c26,inset 0 1px #fffc;border:1px solid rgba(251,146,60,.2);display:flex;flex-direction:column;align-items:center;gap:2rem;height:90vh;max-height:800px;overflow:hidden;position:relative}.music-player-container:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:60%;height:100px;background:radial-gradient(ellipse at center,rgba(251,146,60,.08) 0%,transparent 70%);pointer-events:none}.music-player-container .player-settings{width:100%;display:flex;gap:1rem;justify-content:center;z-index:10}.music-player-container .player-settings .setting-group{flex:1;display:flex;flex-direction:column;gap:.5rem}.music-player-container .player-settings .setting-group label{font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;transition:all .3s ease;display:flex;align-items:center;gap:.3rem}.music-player-container .player-settings .setting-group label:before{content:"♪";font-size:14px;color:#f97316;opacity:0;transform:translate(-5px);transition:all .3s ease}.music-player-container .player-settings .setting-group:hover label:before{opacity:1;transform:translate(0)}.music-player-container .player-settings .setting-group .album-selector-wrapper{position:relative;width:100%}.music-player-container .player-settings .setting-group .album-selector-wrapper .album-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);font-size:18px;color:#f97316;pointer-events:none;z-index:2;transition:all .3s ease;filter:drop-shadow(0 2px 4px rgba(249,115,22,.3))}.music-player-container .player-settings .setting-group .album-selector-wrapper .custom-select{width:100%;padding:.75rem 2.5rem .75rem 3rem;background:linear-gradient(135deg,#fffffff2,#fffcf9fa);border:2px solid rgba(251,146,60,.25);border-radius:16px;font-size:15px;font-weight:600;color:#1e293b;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #fb923c1f,0 2px 6px #00000014,inset 0 1px #ffffffe6;position:relative;display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;user-select:none}.music-player-container .player-settings .setting-group .album-selector-wrapper .custom-select .selected-value{flex:1;text-align:left}.music-player-container .player-settings .setting-group .album-selector-wrapper .custom-select .dropdown-arrow{font-size:12px;color:#f97316;font-weight:700;transition:all .3s ease}.music-player-container .player-settings .setting-group .album-selector-wrapper .custom-select:hover{border-color:#fb923c80;background:linear-gradient(135deg,#fff,#fffaf5);box-shadow:0 6px 20px #fb923c33,0 3px 10px #0000001a,inset 0 1px #fff;transform:translateY(-2px)}.music-player-container .player-settings .setting-group .album-selector-wrapper .custom-select:hover~.album-icon{transform:translateY(-50%) rotate(15deg) scale(1.1);filter:drop-shadow(0 3px 8px rgba(249,115,22,.5))}.music-player-container .player-settings .setting-group .album-selector-wrapper .custom-select:active{transform:translateY(0)}.music-player-container .player-settings .setting-group .album-selector-wrapper .dropdown-menu{position:absolute;top:calc(100% + .5rem);left:0;right:0;background:#fffffffa;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:2px solid rgba(251,146,60,.3);border-radius:16px;box-shadow:0 12px 40px #00000026,0 6px 20px #fb923c33,inset 0 1px #ffffffe6;overflow:hidden;z-index:100}.music-player-container .player-settings .setting-group .album-selector-wrapper .dropdown-menu .dropdown-item{padding:.875rem 1rem .875rem 3rem;display:flex;align-items:center;gap:.75rem;cursor:pointer;transition:all .3s ease;position:relative;font-size:14px;font-weight:500;color:#475569;border-bottom:1px solid rgba(251,146,60,.1)}.music-player-container .player-settings .setting-group .album-selector-wrapper .dropdown-menu .dropdown-item:last-child{border-bottom:none}.music-player-container .player-settings .setting-group .album-selector-wrapper .dropdown-menu .dropdown-item .item-icon{position:absolute;left:1rem;font-size:14px;color:#f97316;opacity:.5;transition:all .3s ease}.music-player-container .player-settings .setting-group .album-selector-wrapper .dropdown-menu .dropdown-item .item-text{flex:1}.music-player-container .player-settings .setting-group .album-selector-wrapper .dropdown-menu .dropdown-item .check-icon{font-size:16px;color:#f97316;font-weight:700}.music-player-container .player-settings .setting-group .album-selector-wrapper .dropdown-menu .dropdown-item:hover{background:linear-gradient(90deg,#fb923c14,#fb923c1f);color:#f97316}.music-player-container .player-settings .setting-group .album-selector-wrapper .dropdown-menu .dropdown-item:hover .item-icon{opacity:1;transform:scale(1.2)}.music-player-container .player-settings .setting-group .album-selector-wrapper .dropdown-menu .dropdown-item.active{background:linear-gradient(90deg,#fb923c1f,#fb923c26);color:#f97316;font-weight:600}.music-player-container .player-settings .setting-group .album-selector-wrapper .dropdown-menu .dropdown-item.active .item-icon{opacity:1}.music-player-container .album-cover-wrapper{width:100%;max-width:260px;aspect-ratio:1;position:relative;margin-bottom:.5rem}.music-player-container .album-cover-wrapper .album-cover{width:100%;height:100%;position:relative;border-radius:50%;overflow:hidden;box-shadow:0 15px 50px #0006,0 0 0 8px #ffffff0d,0 0 0 16px #ffffff08}.music-player-container .album-cover-wrapper .album-cover .album-vinyl{position:absolute;width:100%;height:100%;background:linear-gradient(135deg,#2c2c2c,#1a1a1a);border-radius:50%;z-index:1}.music-player-container .album-cover-wrapper .album-cover .album-vinyl:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:45%;height:45%;background:radial-gradient(circle,#1a1a1a 30%,#2c2c2c);border-radius:50%;box-shadow:0 0 20px #00000080}.music-player-container .album-cover-wrapper .album-cover .album-vinyl:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:15%;height:15%;background:#f0f0f0;border-radius:50%}.music-player-container .album-cover-wrapper .album-cover .album-image{position:absolute;top:10%;left:10%;width:80%;height:80%;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;z-index:2;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 30px #0000004d;overflow:hidden}.music-player-container .album-cover-wrapper .album-cover .album-image img{width:100%;height:100%;object-fit:cover}.music-player-container .album-cover-wrapper .album-cover .album-image .placeholder-cover{font-size:80px;color:#ffffffe6;text-shadow:0 2px 10px rgba(0,0,0,.3)}.music-player-container .song-info{text-align:center;width:100%;margin:0}.music-player-container .song-info .song-title{font-size:22px;font-weight:600;color:#1e293b;margin:0 0 .4rem;text-shadow:0 1px 2px rgba(0,0,0,.1);letter-spacing:.5px}.music-player-container .song-info .song-artist{font-size:14px;color:#475569;margin:0 0 .25rem}.music-player-container .song-info .song-album{font-size:12px;color:#94a3b8;margin:0}.music-player-container .progress-section{width:100%;display:flex;align-items:center;gap:.8rem}.music-player-container .progress-section .time-display{font-size:12px;color:#64748b;min-width:40px;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.music-player-container .progress-section .progress-bar{flex:1;height:6px;background:#fb923c26;border-radius:10px;position:relative;cursor:pointer;overflow:hidden;transition:all .3s ease;-webkit-user-select:none;user-select:none}.music-player-container .progress-section .progress-bar:hover,.music-player-container .progress-section .progress-bar:active{height:8px}.music-player-container .progress-section .progress-bar .progress-fill{position:absolute;height:100%;background:linear-gradient(90deg,#fb923c,#f97316);border-radius:10px;transition:width .1s linear;pointer-events:none}.music-player-container .controls{display:flex;align-items:center;gap:1.2rem;margin:.25rem 0}.music-player-container .controls .control-btn{background:none;border:none;color:#475569;font-size:26px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .3s ease;outline:none}.music-player-container .controls .control-btn:hover{color:#f97316;filter:drop-shadow(0 2px 6px rgba(249,115,22,.3))}.music-player-container .controls .control-btn.play-btn{font-size:52px;color:#f97316;filter:drop-shadow(0 4px 12px rgba(249,115,22,.3))}.music-player-container .controls .control-btn.play-btn:hover{filter:drop-shadow(0 4px 16px rgba(249,115,22,.5))}.music-player-container .controls .control-btn.play-btn.loading{cursor:not-allowed;opacity:.8}.music-player-container .controls .control-btn.play-btn.loading:hover{filter:drop-shadow(0 4px 12px rgba(249,115,22,.3))}.music-player-container .controls .control-btn:disabled{cursor:not-allowed}.music-player-container .volume-format-section{display:flex;align-items:center;gap:1rem;width:100%}.music-player-container .volume-format-section .format-btn{background:none;border:none;font-size:14px;font-weight:700;padding:.5rem 1rem;background:linear-gradient(135deg,#fb923c1a,#f9731626);border:1px solid rgba(251,146,60,.3);border-radius:8px;color:#f97316;min-width:60px;cursor:pointer;transition:all .3s ease;outline:none;flex-shrink:0}.music-player-container .volume-format-section .format-btn:hover{background:linear-gradient(135deg,#fb923c33,#f9731640);border-color:#fb923c80}.music-player-container .volume-format-section .format-btn .format-text{display:block;letter-spacing:.5px}.music-player-container .volume-format-section .play-mode-btn{background:none;border:none;font-size:20px;padding:.5rem .75rem;background:linear-gradient(135deg,#fb923c1a,#f9731626);border:1px solid rgba(251,146,60,.3);border-radius:8px;min-width:50px;cursor:pointer;transition:all .3s ease;outline:none;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#f97316}.music-player-container .volume-format-section .play-mode-btn:hover{background:linear-gradient(135deg,#fb923c33,#f9731640);border-color:#fb923c80;transform:translateY(-2px);box-shadow:0 4px 12px #fb923c33}.music-player-container .volume-format-section .play-mode-btn:active{transform:translateY(0)}.music-player-container .volume-format-section .play-mode-btn .play-mode-icon{display:flex;align-items:center;justify-content:center;line-height:1}.music-player-container .volume-format-section .play-mode-btn .play-mode-icon svg{width:20px;height:20px;stroke-width:2}.music-player-container .volume-format-section .volume-section{display:flex;align-items:center;gap:.8rem;flex:1}.music-player-container .volume-format-section .volume-section .volume-icon{font-size:18px;color:#64748b;-webkit-user-select:none;user-select:none;flex-shrink:0}.music-player-container .volume-format-section .volume-section .volume-bar{flex:1;height:5px;background:#fb923c26;border-radius:10px;position:relative;cursor:pointer;overflow:hidden;-webkit-user-select:none;user-select:none}.music-player-container .volume-format-section .volume-section .volume-bar:hover,.music-player-container .volume-format-section .volume-section .volume-bar:active{height:6px}.music-player-container .volume-format-section .volume-section .volume-bar .volume-fill{position:absolute;height:100%;background:linear-gradient(90deg,#fb923c,#f97316);border-radius:10px;pointer-events:none}.music-player-container .volume-format-section .volume-section .volume-display{font-size:12px;color:#64748b;min-width:35px;text-align:right;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;flex-shrink:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 1400px){.music-player-container{padding:2.5rem 2rem;gap:1.5rem}.music-player-container .album-cover-wrapper{max-width:240px}.music-player-container .song-info .song-title{font-size:22px}}@media (max-width: 1200px){.music-player-container{flex:0 0 auto;width:100%;max-width:500px;height:auto;padding:2rem}.music-player-container .album-cover-wrapper{max-width:200px}}@media (max-width: 768px){.music-player-container{max-width:100%;padding:1.5rem;gap:1.5rem}.music-player-container .album-cover-wrapper{max-width:180px}.music-player-container .song-info .song-title{font-size:20px}.music-player-container .controls{gap:1rem}.music-player-container .controls .control-btn{font-size:24px}.music-player-container .controls .control-btn.play-btn{font-size:48px}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.section-character{width:100%;height:100%;display:flex;flex-direction:column;box-sizing:border-box;position:relative}.section-character .content-wrapper{flex:1;display:flex;justify-content:center;align-items:center;min-height:0;padding:40px 60px 20px;box-sizing:border-box}.section-character .student-id-card{display:flex;flex-direction:row;width:95%;max-width:1200px;height:auto;min-height:550px;max-height:650px;background:linear-gradient(135deg,#fff8f8,#fff0f0,#ffe8e8);border-radius:12px;box-shadow:0 4px 8px #8b000014,0 8px 20px #8b00000f,0 16px 40px #8b00000a,inset 0 0 0 1px #8b00001a;border:3px solid #8b0000;position:relative;overflow:hidden;transition:border-color .6s ease-in-out,background .6s ease-in-out,box-shadow .6s ease-in-out}.section-character .student-id-card[data-card-type=teacher]{border-color:#4169e1!important;background:linear-gradient(135deg,#f0f4ff,#e8efff,#e0e9ff)!important;box-shadow:0 4px 8px #4169e114,0 8px 20px #4169e10f,0 16px 40px #4169e10a,inset 0 0 0 1px #4169e11a!important}.section-character .student-id-card[data-card-type=teacher] .card-institution,.section-character .student-id-card[data-card-type=teacher] .card-title,.section-character .student-id-card[data-card-type=teacher] .photo-label{color:#1e3a8a!important}.section-character .student-id-card[data-card-type=teacher] .photo-divider{background:linear-gradient(90deg,transparent 0%,rgba(65,105,225,.15) 10%,rgba(65,105,225,.25) 50%,rgba(65,105,225,.15) 90%,transparent 100%)!important}.section-character .student-id-card[data-card-type=teacher] .illustration-area:after{background:linear-gradient(180deg,transparent 0%,rgba(65,105,225,.2) 10%,rgba(65,105,225,.3) 50%,rgba(65,105,225,.2) 90%,transparent 100%)!important}.section-character .student-id-card[data-card-type=teacher] .info-area:before{border-color:#4169e180!important;background:radial-gradient(circle,rgba(65,105,225,.08) 0%,transparent 70%)!important;color:#1e3a8acc!important;box-shadow:inset 0 0 10px #4169e11a,0 2px 6px #4169e133!important}.section-character .student-id-card[data-card-type=teacher] .character-details .character-name{border-bottom-color:#4169e126!important}.section-character .student-id-card[data-card-type=teacher] .character-details .character-name:before{color:#1e3a8a99!important}.section-character .student-id-card[data-card-type=teacher] .character-details .character-name:after{background:#1e3a8a!important}.section-character .student-id-card[data-card-type=teacher] .character-details .character-description:before{color:#1e3a8a80!important;border-color:#4169e126!important;background:#f0f4ffcc!important}.section-character .student-id-card[data-card-type=resident]{border-color:#2e7d32!important;background:linear-gradient(135deg,#f1f8f4,#e8f5ed,#e0f2e6)!important;box-shadow:0 4px 8px #2e7d3214,0 8px 20px #2e7d320f,0 16px 40px #2e7d320a,inset 0 0 0 1px #2e7d321a!important}.section-character .student-id-card[data-card-type=resident] .card-institution,.section-character .student-id-card[data-card-type=resident] .card-title,.section-character .student-id-card[data-card-type=resident] .photo-label{color:#1b5e20!important}.section-character .student-id-card[data-card-type=resident] .photo-divider{background:linear-gradient(90deg,transparent 0%,rgba(46,125,50,.15) 10%,rgba(46,125,50,.25) 50%,rgba(46,125,50,.15) 90%,transparent 100%)!important}.section-character .student-id-card[data-card-type=resident] .illustration-area:after{background:linear-gradient(180deg,transparent 0%,rgba(46,125,50,.2) 10%,rgba(46,125,50,.3) 50%,rgba(46,125,50,.2) 90%,transparent 100%)!important}.section-character .student-id-card[data-card-type=resident] .info-area:before{content:"町章";border-color:#2e7d3280!important;background:radial-gradient(circle,rgba(46,125,50,.08) 0%,transparent 70%)!important;color:#1b5e20cc!important;box-shadow:inset 0 0 10px #2e7d321a,0 2px 6px #2e7d3233!important}.section-character .student-id-card[data-card-type=resident] .character-details .character-name{border-bottom-color:#2e7d3226!important}.section-character .student-id-card[data-card-type=resident] .character-details .character-name:before{color:#1b5e2099!important}.section-character .student-id-card[data-card-type=resident] .character-details .character-name:after{background:#1b5e20!important}.section-character .student-id-card[data-card-type=resident] .character-details .character-description:before{color:#1b5e2080!important;border-color:#2e7d3226!important;background:#f1f8f4cc!important}.section-character .student-id-card[data-card-type=visitor]{border-color:#f57c00!important;background:linear-gradient(135deg,#fff8f0,#fff3e8,#ffeee0)!important;box-shadow:0 4px 8px #f57c0014,0 8px 20px #f57c000f,0 16px 40px #f57c000a,inset 0 0 0 1px #f57c001a!important}.section-character .student-id-card[data-card-type=visitor] .card-institution,.section-character .student-id-card[data-card-type=visitor] .card-title,.section-character .student-id-card[data-card-type=visitor] .photo-label{color:#e65100!important}.section-character .student-id-card[data-card-type=visitor] .photo-divider{background:linear-gradient(90deg,transparent 0%,rgba(245,124,0,.15) 10%,rgba(245,124,0,.25) 50%,rgba(245,124,0,.15) 90%,transparent 100%)!important}.section-character .student-id-card[data-card-type=visitor] .illustration-area:after{background:linear-gradient(180deg,transparent 0%,rgba(245,124,0,.2) 10%,rgba(245,124,0,.3) 50%,rgba(245,124,0,.2) 90%,transparent 100%)!important}.section-character .student-id-card[data-card-type=visitor] .info-area:before{content:"町章";border-color:#f57c0080!important;background:radial-gradient(circle,rgba(245,124,0,.08) 0%,transparent 70%)!important;color:#e65100cc!important;box-shadow:inset 0 0 10px #f57c001a,0 2px 6px #f57c0033!important}.section-character .student-id-card[data-card-type=visitor] .character-details .character-name{border-bottom-color:#f57c0026!important}.section-character .student-id-card[data-card-type=visitor] .character-details .character-name:before{color:#e6510099!important}.section-character .student-id-card[data-card-type=visitor] .character-details .character-name:after{background:#e65100!important}.section-character .student-id-card[data-card-type=visitor] .character-details .character-description:before{color:#e6510080!important;border-color:#f57c0026!important;background:#fff8f0cc!important}.section-character .student-id-card[data-card-type=kindergarten]{border-color:#ec407a!important;background:linear-gradient(135deg,#fff0f5,#ffe8f0,#ffe0eb)!important;box-shadow:0 4px 8px #ec407a14,0 8px 20px #ec407a0f,0 16px 40px #ec407a0a,inset 0 0 0 1px #ec407a1a!important}.section-character .student-id-card[data-card-type=kindergarten] .card-institution,.section-character .student-id-card[data-card-type=kindergarten] .card-title,.section-character .student-id-card[data-card-type=kindergarten] .photo-label{color:#c2185b!important}.section-character .student-id-card[data-card-type=kindergarten] .photo-divider{background:linear-gradient(90deg,transparent 0%,rgba(236,64,122,.15) 10%,rgba(236,64,122,.25) 50%,rgba(236,64,122,.15) 90%,transparent 100%)!important}.section-character .student-id-card[data-card-type=kindergarten] .illustration-area:after{background:linear-gradient(180deg,transparent 0%,rgba(236,64,122,.2) 10%,rgba(236,64,122,.3) 50%,rgba(236,64,122,.2) 90%,transparent 100%)!important}.section-character .student-id-card[data-card-type=kindergarten] .info-area:before{content:"園章";border-color:#ec407a80!important;background:radial-gradient(circle,rgba(236,64,122,.08) 0%,transparent 70%)!important;color:#c2185bcc!important;box-shadow:inset 0 0 10px #ec407a1a,0 2px 6px #ec407a33!important}.section-character .student-id-card[data-card-type=kindergarten] .character-details .character-name{border-bottom-color:#ec407a26!important}.section-character .student-id-card[data-card-type=kindergarten] .character-details .character-name:before{color:#c2185b99!important}.section-character .student-id-card[data-card-type=kindergarten] .character-details .character-name:after{background:#c2185b!important}.section-character .student-id-card[data-card-type=kindergarten] .character-details .character-description:before{color:#c2185b80!important;border-color:#ec407a26!important;background:#fff0f5cc!important}.section-character .card-institution{position:absolute;top:20px;left:35px;font-size:28px;font-weight:900;color:#8b0000;letter-spacing:8px;z-index:12;padding-left:8px;transition:color .6s ease-in-out}.section-character .card-title{position:absolute;top:33px;right:95px;font-size:24px;font-weight:700;color:#8b0000;letter-spacing:8px;z-index:11;padding-left:8px;line-height:1;transition:color .6s ease-in-out}.section-character .illustration-area{flex:0 0 420px;width:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:95px 35px 60px;box-sizing:border-box;background:transparent;position:relative;overflow:hidden}.section-character .illustration-area:after{content:"";position:absolute;right:0;top:75px;bottom:35px;width:1px;background:linear-gradient(180deg,transparent 0%,rgba(139,0,0,.2) 10%,rgba(139,0,0,.3) 50%,rgba(139,0,0,.2) 90%,transparent 100%);transition:background .6s ease-in-out}.section-character .photo-label{position:absolute;bottom:20px;left:50%;transform:translate(-50%);font-size:14px;font-weight:700;color:#8b0000;letter-spacing:4px;z-index:6;opacity:.7;padding-left:4px;transition:color .6s ease-in-out}.section-character .photo-divider{position:absolute;left:40px;right:40px;bottom:50px;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(139,0,0,.15) 10%,rgba(139,0,0,.25) 50%,rgba(139,0,0,.15) 90%,transparent 100%);z-index:10;pointer-events:none;transition:background .6s ease-in-out}.section-character .info-area{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:80px 60px 40px 50px;box-sizing:border-box;background:transparent;position:relative}.section-character .info-area:before{content:"校章";position:absolute;top:20px;right:35px;width:50px;height:50px;background:radial-gradient(circle,rgba(220,20,60,.08) 0%,transparent 70%);border:2.5px solid rgba(178,34,34,.5);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#8b0000b3;letter-spacing:0;writing-mode:vertical-rl;z-index:11;box-shadow:inset 0 0 10px #dc143c1a,0 2px 6px #b2222233;transition:all .6s ease-in-out}.section-character .info-area .character-details{flex:1;overflow:auto;display:flex;flex-direction:column;gap:24px}.section-character .info-area .character-details::-webkit-scrollbar{width:6px}.section-character .info-area .character-details::-webkit-scrollbar-track{background:#d2b48c14;border-radius:3px}.section-character .info-area .character-details::-webkit-scrollbar-thumb{background:#8b451333;border-radius:3px}.section-character .info-area .character-details::-webkit-scrollbar-thumb:hover{background:#8b451359}.section-character .info-area .character-details .character-name{font-size:42px;font-weight:900;color:#2c1810;margin-bottom:10px;letter-spacing:2px;line-height:1.3;position:relative;padding-bottom:18px;border-bottom:2px solid rgba(139,0,0,.15);transition:border-bottom-color .6s ease-in-out}.section-character .info-area .character-details .character-name:before{content:attr(data-label);position:absolute;top:-24px;left:0;font-size:12px;font-weight:700;color:#8b000099;letter-spacing:2px;transition:color .6s ease-in-out}.section-character .info-area .character-details .character-name:after{content:"";position:absolute;bottom:-2px;left:0;width:140px;height:2px;background:#8b0000;transition:background .6s ease-in-out}.section-character .info-area .character-details .character-name .typewriter-cursor{display:inline-block;margin-left:3px;color:#2c1810}.section-character .info-area .character-details .character-description{font-size:17px;line-height:2.1;color:#3d2817;font-weight:400;white-space:pre-line;letter-spacing:1px;position:relative;padding:32px 0 24px}.section-character .info-area .character-details .character-description:before{content:attr(data-label);position:absolute;top:0;right:0;font-size:15px;font-weight:700;color:#8b000080;letter-spacing:3px;padding:4px 12px;background:#fff8f8cc;border:1px solid rgba(139,0,0,.15);border-radius:4px;transition:color .6s ease-in-out,border-color .6s ease-in-out}.section-character .carousel-wrapper{flex:0 0 120px;height:120px;position:relative;z-index:10}.avatar-carousel-container{position:relative;width:100%;height:100%;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:10px 20px;box-sizing:border-box;border-top:1px solid rgba(255,255,255,.5);box-shadow:0 -4px 20px #0000001a}.avatar-carousel-container .avatar-carousel{display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;height:100%;align-items:center;padding:0 10px}.avatar-carousel-container .avatar-carousel::-webkit-scrollbar{height:6px}.avatar-carousel-container .avatar-carousel::-webkit-scrollbar-track{background:#0000000d;border-radius:3px}.avatar-carousel-container .avatar-carousel::-webkit-scrollbar-thumb{background:#0003;border-radius:3px;transition:background .3s}.avatar-carousel-container .avatar-carousel::-webkit-scrollbar-thumb:hover{background:#0000004d}.avatar-carousel-container .avatar-carousel .avatar-item{flex-shrink:0;width:164px;height:60px;cursor:pointer;border:3px solid transparent;border-radius:8px;overflow:hidden;transition:all .3s ease;position:relative;box-shadow:0 2px 8px #00000026;background:#ffffff80}.avatar-carousel-container .avatar-carousel .avatar-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.avatar-carousel-container .avatar-carousel .avatar-item:hover{transform:translateY(-5px);box-shadow:0 6px 16px #00000040}.avatar-carousel-container .avatar-carousel .avatar-item:hover img{transform:scale(1.05)}.avatar-carousel-container .avatar-carousel .avatar-item.active{border-color:gold;box-shadow:0 0 20px #ffd700cc,0 6px 16px #ffd7004d;transform:translateY(-8px);background:#ffffffe6}.avatar-carousel-container .avatar-carousel .avatar-item.active:after{content:"";position:absolute;inset:0;border:2px solid rgba(255,255,255,.5);border-radius:5px;pointer-events:none}.character-card-container{position:relative;width:100%;height:100%;display:flex;justify-content:center;align-items:center;overflow:visible;padding:10px;perspective:1200px}.character-card-container .character-card{position:relative;width:90%;max-width:340px;height:92%;max-height:450px;background:linear-gradient(135deg,#fffffffa,#fafafafa);border-radius:4px;box-shadow:0 0 0 2px #b4b4b44d,0 0 0 4px #f0f0f080,0 2px 4px #00000014,0 4px 8px #0000000f,inset 0 1px #fffc;transform-origin:center center;overflow:hidden;cursor:pointer;transition:box-shadow .3s ease}.character-card-container .character-card:hover{box-shadow:0 0 0 2px #a0a0a066,0 0 0 4px #dcdcdc99,0 3px 6px #0000001a,0 6px 12px #00000014,inset 0 1px #ffffffe6}.character-card-container .character-card:before{content:"";position:absolute;inset:8px;border:1px solid rgba(180,180,180,.2);border-radius:2px;pointer-events:none;z-index:5}.character-card-container .character-card:after{content:"";position:absolute;top:0;left:0;right:0;height:60px;background:radial-gradient(ellipse at top,rgba(255,255,255,.5) 0%,rgba(255,255,255,.2) 40%,transparent 70%);pointer-events:none}.character-card-container .card-content{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:15px;box-sizing:border-box}.character-card-container .card-content:before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(0,0,0,.008) 2px,rgba(0,0,0,.008) 3px),repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.008) 2px,rgba(0,0,0,.008) 3px);pointer-events:none;opacity:.5}.character-card-container .character-tachie{width:100%;height:100%;object-fit:cover;object-position:center top;filter:drop-shadow(0 1px 3px rgba(0,0,0,.1)) contrast(1.03) brightness(1.01) saturate(.98);position:relative;z-index:1}.top-navigation{position:fixed;top:0;left:0;width:100vw;z-index:100;display:flex;align-items:center;justify-content:center;padding:10px 30px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-bottom:1px solid rgba(255,255,255,.15);box-shadow:0 2px 10px #0000001a;pointer-events:none}.logo-container{position:absolute;left:30px;top:10px;height:35px;display:flex;align-items:center;flex-shrink:0;pointer-events:auto}.logo-container img{max-height:25px;width:auto;object-fit:contain}.nav-menu{display:flex;flex-direction:row;gap:15px;flex-wrap:nowrap;pointer-events:auto}.nav-menu-item{height:35px;min-width:80px;padding:0 20px;background:transparent;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:visible}.nav-menu-item .menu-text{color:#fff;font-size:16px;font-weight:700;letter-spacing:1px;transition:all .15s ease}.nav-menu-item:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:0;height:2px;background-color:#fffffff2;box-shadow:0 0 3px #ffffff80;transition:width .15s ease}.nav-menu-item:hover:not(.active):after{width:60%}.nav-menu-item:hover .menu-text{color:#fff;transform:translateY(-1px)}.nav-menu-item.active:after{width:100%}.nav-menu-item.active .menu-text{color:#fff;font-weight:700}@media (max-width: 768px){.top-navigation{padding:10px 15px;flex-direction:column;justify-content:flex-start;gap:10px}.logo-container{position:static;height:40px;margin:0 auto}.logo-container img{max-height:40px}.nav-menu{gap:20px;flex-wrap:wrap;justify-content:center}.nav-menu-item{height:35px;min-width:60px;padding:0 15px}.nav-menu-item .menu-text{font-size:12px}}.intro-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999;display:flex;align-items:center;justify-content:center}.intro-logo{max-width:80%;display:flex;align-items:center;justify-content:center}.intro-logo img{max-width:100%;height:auto}#root{width:100%;height:100vh;overflow:hidden}
