body{font-family:'Inter', sans-serif;transition:background-color 0.5s ease-in-out, color 0.3s;overscroll-behavior:none;user-select:none;}html{overflow-x:hidden;}.font-jp{font-family:'Noto Sans JP', sans-serif;}.card-scene{perspective:1000px;}.card-object{width:100%;height:100%;position:relative;transition:transform 0.6s;transform-style:preserve-3d;}.card-face{position:absolute;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:1rem;overflow:hidden;transform:translateZ(0);}.card-face-front{transform:rotateY(0deg);z-index:2;}.card-face-back{transform:rotateY(180deg);z-index:1;}.card-object.is-flipped{transform:rotateY(180deg);}.custom-scrollbar::-webkit-scrollbar{width:6px;height:6px;}.custom-scrollbar::-webkit-scrollbar-track{background:rgba(0, 0, 0, 0.05);}.custom-scrollbar::-webkit-scrollbar-thumb{background:rgba(100, 116, 139, 0.5);border-radius:3px;}.no-scrollbar::-webkit-scrollbar{display:none;}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none;}@keyframes spin{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}.loader{border:3px solid rgba(100, 100, 100, 0.2);border-top:3px solid #3b82f6;border-radius:50%;width:24px;height:24px;animation:spin 1s linear infinite;}@keyframes popIn{0%{transform:scale(0.9);opacity:0;}100%{transform:scale(1);opacity:1;}}.animate-pop{animation:popIn 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;}@keyframes slideInLeft{0%{transform:translateX(-100%);opacity:0;}100%{transform:translateX(0);opacity:1;}}.animate-slide-in-left{animation:slideInLeft 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;}@keyframes shake{0%, 100%{transform:translateX(0);}25%{transform:translateX(-5px);}75%{transform:translateX(5px);}}.animate-shake{animation:shake 0.3s ease-in-out;}@keyframes float-slow{0%, 100%{transform:translate(0, 0);}25%{transform:translate(10px, -15px);}50%{transform:translate(-10px, -25px);}75%{transform:translate(15px, -10px);}}@keyframes float-medium{0%, 100%{transform:translate(0, 0);}33%{transform:translate(-15px, 20px);}66%{transform:translate(20px, -15px);}}@keyframes float-fast{0%, 100%{transform:translate(0, 0);}20%{transform:translate(15px, -20px);}40%{transform:translate(-20px, 15px);}60%{transform:translate(10px, 25px);}80%{transform:translate(-15px, -10px);}}@keyframes drift{0%{transform:translateY(-2) translateX(-2);}100%{transform:translateY(100vh) translateX(50px);}}@keyframes drift-loop{from{transform:translateY(-100%);}to{transform:translateY(100%);}}@keyframes wave{0%, 100%{transform:translateX(0);}50%{transform:translateX(-55px);}}.animate-float-slow{animation:float-slow 20s ease-in-out infinite;}.animate-float-medium{animation:float-medium 15s ease-in-out infinite;}.animate-float-fast{animation:float-fast 12s ease-in-out infinite;}.animate-drift{animation:drift 30s linear infinite;}.animate-wave{animation:wave 8s ease-in-out infinite;}.animation-delay-2000{animation-delay:2s;}.animation-delay-4000{animation-delay:4s;}@keyframes growUp{from{height:0;opacity:0;}to{height:var(--target-height);opacity:1;}}.bar-animate{animation:growUp 1s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;}@keyframes warpIn{0%{transform:translate(calc(-50% + var(--tx)), calc(-50% + var(--ty))) scale(3.5);opacity:0;}20%{opacity:var(--target-opacity);}100%{transform:translate(-50%, -50%) scale(0);opacity:0;}}.memory-card{transition:all 0.3s ease-out;box-shadow:0 0 0 rgba(0, 0, 0, 0);}.neon-selected{border-color:#3b82f6 !important;box-shadow:0 0 15px #3b82f6, 0 0 20px #2563eb inset !important;}.neon-correct{border-color:#4ade80 !important;box-shadow:0 0 15px #4ade80, 0 0 30px #22c55e inset !important;color:#fff;}.neon-incorrect{border-color:#f87171 !important;box-shadow:0 0 15px #f87171, 0 0 30px #ef4444 inset !important;}.mole-up{transform:translateY(0);}.note-loader{position:absolute;top:50%;left:50%;z-index:10;width:160px;height:100px;margin-left:-80px;margin-top:-50px;border-radius:5px;background:#1e3f57;animation:dot1_ 3s cubic-bezier(0.55, 0.3, 0.24, 0.99) infinite;}.note-loader:nth-child(2){z-index:11;width:150px;height:90px;margin-top:-45px;margin-left:-75px;border-radius:3px;background:#3c517d;animation-name:dot2_;}.note-loader:nth-child(3){z-index:12;width:40px;height:20px;margin-top:50px;margin-left:-20px;border-radius:0 0 5px 5px;background:#6bb2cd;animation-name:dot3_;}@keyframes dot1_{3%, 97%{width:160px;height:100px;margin-top:-50px;margin-left:-80px;}30%, 36%{width:80px;height:120px;margin-top:-60px;margin-left:-40px;}63%, 69%{width:40px;height:80px;margin-top:-40px;margin-left:-20px;}}@keyframes dot2_{3%, 97%{height:90px;width:150px;margin-left:-75px;margin-top:-45px;}30%, 36%{width:70px;height:96px;margin-left:-35px;margin-top:-48px;}63%, 69%{width:32px;height:60px;margin-left:-16px;margin-top:-30px;}}@keyframes dot3_{3%, 97%{height:20px;width:40px;margin-left:-20px;margin-top:50px;}30%, 36%{width:8px;height:8px;margin-left:-5px;margin-top:49px;border-radius:8px;}63%, 69%{width:16px;height:4px;margin-left:-8px;margin-top:-37px;border-radius:10px;}}.ai-matrix-loader{width:120px;height:160px;margin:30px auto;position:relative;perspective:800px;display:grid;grid-template-columns:repeat(3, 1fr);gap:5px;}.digit{color:#00ff88;font-family:monospace;font-size:18px;text-align:center;text-shadow:0 0 5px #00ff88;animation:matrix-fall 2s infinite, matrix-flicker 0.5s infinite;opacity:0;}.digit:nth-child(1){animation-delay:0.1s;}.digit:nth-child(2){animation-delay:0.3s;}.digit:nth-child(3){animation-delay:0.5s;}.digit:nth-child(4){animation-delay:0.7s;}.digit:nth-child(5){animation-delay:0.9s;}.digit:nth-child(6){animation-delay:1.1s;}.digit:nth-child(7){animation-delay:1.3s;}.digit:nth-child(8){animation-delay:1.5s;}.glow{position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle, rgba(0, 255, 136, 0.1) 0%, transparent 70%);animation:matrix-pulse 2s infinite;}@keyframes matrix-fall{0%{transform:translateY(-50px) rotateX(90deg);opacity:0;}20%, 80%{transform:translateY(0) rotateX(0deg);opacity:0.8;}100%{transform:translateY(50px) rotateX(-90deg);opacity:0;}}@keyframes matrix-flicker{0%, 19%, 21%, 100%{opacity:0.8;}20%{opacity:0.2;}}@keyframes matrix-pulse{0%, 100%{opacity:0.3;}50%{opacity:0.7;}}@keyframes moveHorizontal{0%{transform:translateX(-50%) translateY(-10%);}50%{transform:translateX(50%) translateY(10%);}100%{transform:translateX(-50%) translateY(-10%);}}@keyframes moveInCircle{0%{transform:rotate(0deg);}50%{transform:rotate(180deg);}100%{transform:rotate(360deg);}}@keyframes moveVertical{0%{transform:translateY(-50%);}50%{transform:translateY(50%);}100%{transform:translateY(-50%);}}@keyframes movePurple{0%{transform:translateY(-20%) translateX(-20%) rotate(0deg);}50%{transform:translateY(20%) translateX(20%) rotate(180deg);}100%{transform:translateY(-20%) translateX(-20%) rotate(360deg);}}.animate-first{animation:moveVertical 30s ease infinite;}.animate-second{animation:movePurple 15s ease infinite;}.animate-third{animation:moveInCircle 40s linear infinite;}.animate-fourth{animation:moveHorizontal 40s ease infinite;}.animate-fifth{animation:moveInCircle 20s ease infinite;}.blob-blur{filter:blur(40px);position:absolute;mix-blend-mode:hard-light;}@media (max-width:768px){.blob-blur{filter:blur(25px);}}:root{--hotaru-color:#ccff00;}.hotaru{position:absolute;border-radius:50%;background-color:var(--hotaru-color);box-shadow:0 0 4px 1px var(--hotaru-color), 0 0 8px 2px rgba(204, 255, 0, 0.4), 0 0 16px 4px rgba(204, 255, 0, 0.1);opacity:0;animation-timing-function:ease-in-out, linear;animation-iteration-count:infinite, infinite;animation-direction:normal, alternate;}@keyframes flight-circle{0%{transform:translate(0, 0) scale(1);}25%{transform:translate(25px, 25px) scale(1.1);}50%{transform:translate(0, 50px) scale(0.9);}75%{transform:translate(-25px, 25px) scale(1.05);}100%{transform:translate(0, 0) scale(1);}}@keyframes flight-horizontal{0%{transform:translate(0, 0);}30%{transform:translate(60px, -10px);}60%{transform:translate(-40px, 20px);}80%{transform:translate(20px, -5px);}100%{transform:translate(0, 0);}}@keyframes flight-vertical{0%{transform:translateY(0) scale(1);}40%{transform:translateY(-40px) scale(1.2);}100%{transform:translateY(10px) scale(1);}}@keyframes flight-chaos{0%{transform:translate(0, 0);}20%{transform:translate(-30px, 40px);}50%{transform:translate(40px, -30px);}80%{transform:translate(-20px, -20px);}100%{transform:translate(0, 0);}}@keyframes flicker{0%, 100%{opacity:0;}20%, 80%{opacity:0.8;}50%{opacity:1;}}.hotaru:nth-child(4n+1){width:3px;height:3px;animation-name:flight-horizontal, flicker;animation-duration:12s, 3s;box-shadow:0 0 6px 1px var(--hotaru-color);}.hotaru:nth-child(4n+2){width:4px;height:4px;animation-name:flight-circle, flicker;animation-duration:18s, 4.5s;}.hotaru:nth-child(4n+3){width:6px;height:6px;filter:blur(1.5px);animation-name:flight-vertical, flicker;animation-duration:10s, 5s;}@media (color-gamut:srgb){html{filter:saturate(1.15) contrast(1.08);}}@media (color-gamut:p3), (color-gamut:rec2020){html{filter:none;}}.hotaru:nth-child(4n+4){width:2px;height:2px;animation-name:flight-chaos, flicker;animation-duration:25s, 2.5s;opacity:0.7;}.hotaru:nth-child(7n){animation-duration:6s, 1.5s;animation-timing-function:cubic-bezier(0.25, 0.1, 0.25, 1), ease-in-out;}.hotaru:nth-child(1){left:5%;top:10%;animation-delay:0s;}.hotaru:nth-child(2){left:15%;top:85%;animation-delay:2s;}.hotaru:nth-child(3){left:25%;top:40%;animation-delay:4s;}.hotaru:nth-child(4){left:35%;top:15%;animation-delay:1s;}.hotaru:nth-child(5){left:45%;top:70%;animation-delay:3s;}.hotaru:nth-child(6){left:55%;top:25%;animation-delay:5s;}.hotaru:nth-child(7){left:65%;top:80%;animation-delay:0.5s;}.hotaru:nth-child(8){left:75%;top:35%;animation-delay:2.5s;}.hotaru:nth-child(9){left:85%;top:90%;animation-delay:1.5s;}.hotaru:nth-child(10){left:95%;top:20%;animation-delay:3.5s;}.hotaru:nth-child(11){left:8%;top:60%;animation-delay:1s;}.hotaru:nth-child(12){left:18%;top:30%;animation-delay:4.5s;}.hotaru:nth-child(13){left:28%;top:95%;animation-delay:2s;}.hotaru:nth-child(14){left:38%;top:50%;animation-delay:5.5s;}.hotaru:nth-child(15){left:48%;top:5%;animation-delay:0.2s;}.hotaru:nth-child(16){left:58%;top:65%;animation-delay:3.2s;}.hotaru:nth-child(17){left:68%;top:18%;animation-delay:1.8s;}.hotaru:nth-child(18){left:78%;top:75%;animation-delay:4.8s;}.hotaru:nth-child(19){left:88%;top:45%;animation-delay:2.8s;}.hotaru:nth-child(20){left:12%;top:55%;animation-delay:5s;}.hotaru:nth-child(21){left:22%;top:8%;animation-delay:0.8s;}.hotaru:nth-child(22){left:32%;top:68%;animation-delay:3.8s;}.hotaru:nth-child(23){left:42%;top:22%;animation-delay:1.2s;}.hotaru:nth-child(24){left:52%;top:88%;animation-delay:4.2s;}.hotaru:nth-child(25){left:62%;top:38%;animation-delay:2.2s;}.hotaru:nth-child(26){left:72%;top:12%;animation-delay:5.2s;}.hotaru:nth-child(27){left:82%;top:58%;animation-delay:0.6s;}.hotaru:nth-child(28){left:92%;top:92%;animation-delay:3.6s;}.hotaru:nth-child(29){left:2%;top:42%;animation-delay:1.6s;}.hotaru:nth-child(30){left:98%;top:28%;animation-delay:4.6s;}.hotaru:nth-child(31){left:14%;top:33%;animation-delay:2.1s;}.hotaru:nth-child(32){left:86%;top:72%;animation-delay:0.4s;}.hotaru:nth-child(33){left:41%;top:11%;animation-delay:4.9s;}.hotaru:nth-child(34){left:63%;top:93%;animation-delay:1.7s;}.hotaru:nth-child(35){left:29%;top:58%;animation-delay:3.3s;}.hotaru:nth-child(36){left:77%;top:26%;animation-delay:5.1s;}.hotaru:nth-child(37){left:3%;top:82%;animation-delay:0.9s;}.hotaru:nth-child(38){left:96%;top:48%;animation-delay:2.7s;}.hotaru:nth-child(39){left:53%;top:5%;animation-delay:4.2s;}.hotaru:nth-child(40){left:21%;top:66%;animation-delay:1.1s;}.hotaru:nth-child(41){left:71%;top:39%;animation-delay:3.8s;}.hotaru:nth-child(42){left:36%;top:88%;animation-delay:5.4s;}.hotaru:nth-child(43){left:81%;top:14%;animation-delay:2.3s;}.hotaru:nth-child(44){left:9%;top:53%;animation-delay:0.3s;}.hotaru:nth-child(45){left:59%;top:78%;animation-delay:4.6s;}.hotaru:nth-child(46){left:93%;top:31%;animation-delay:1.9s;}.hotaru:nth-child(47){left:46%;top:96%;animation-delay:3.1s;}.hotaru:nth-child(48){left:17%;top:23%;animation-delay:5.7s;}.hotaru:nth-child(49){left:67%;top:62%;animation-delay:0.7s;}.hotaru:nth-child(50){left:88%;top:7%;animation-delay:2.6s;}.hotaru:nth-child(51){left:33%;top:44%;animation-delay:4.1s;}.hotaru:nth-child(52){left:74%;top:85%;animation-delay:1.4s;}.hotaru:nth-child(53){left:24%;top:19%;animation-delay:3.5s;}@keyframes fade-in{from{opacity:0;}to{opacity:1;}}.animate-fade-in{animation:fade-in 0.3s ease-out forwards;}.season-container{background-color:rgba(0, 0, 0, 0.4);backdrop-filter:blur(8px);font-family:'Montserrat', sans-serif;color:#1e293b;}@keyframes snow-fall{0%{transform:translateY(0) translateX(0);opacity:0;}10%{opacity:0.8;}100%{transform:translateY(100px) translateX(-15px);opacity:0;}}@keyframes sakura-float{0%{transform:translate(0, 0) rotate(0deg);opacity:0;}10%{opacity:0.9;}100%{transform:translate(40px, 60px) rotate(220deg);opacity:0;}}@keyframes slide-up-fade{0%{transform:translateY(20px);opacity:0;}100%{transform:translateY(0);opacity:1;}}@keyframes firefly-move{0%{transform:translate(0, 0) scale(1);opacity:0;}20%{opacity:1;}50%{transform:translate(15px, -20px) scale(1.2);}100%{transform:translate(-15px, -50px) scale(0.5);opacity:0;}}@keyframes firefly-move-mobile{0%{transform:translate(0, 0) scale(1);opacity:0;}20%{opacity:1;}50%{transform:translate(10px, -14px) scale(1.2);}100%{transform:translate(-10px, -35px) scale(0.5);opacity:0;}}@keyframes leaf-sway{0%{transform:translate(0, 0) rotate(0deg);opacity:0;}10%{opacity:1;}25%{transform:translate(8px, 20px) rotate(45deg);}50%{transform:translate(-8px, 40px) rotate(-20deg);}75%{transform:translate(8px, 60px) rotate(25deg);}100%{transform:translate(0, 80px) rotate(90deg);opacity:0;}}@keyframes reactor-spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}@keyframes reactor-pulse{0%, 100%{box-shadow:0 0 10px rgba(16, 185, 129, 0.2), inset 0 0 10px rgba(16, 185, 129, 0.1);border-color:rgba(16, 185, 129, 0.3);}50%{box-shadow:0 0 25px rgba(16, 185, 129, 0.6), inset 0 0 20px rgba(16, 185, 129, 0.3);border-color:rgba(16, 185, 129, 0.8);}}.particle{position:absolute;pointer-events:none;will-change:transform, opacity;}.sakura-petal{position:absolute;background-color:#ffc0cb;background-image:linear-gradient(120deg, #ffd1dc 0%, #ff9cbb 100%);border-radius:100% 0 100% 0;opacity:0.8;pointer-events:none;box-shadow:1px 1px 2px rgba(0, 0, 0, 0.1);}.flower-sprite{position:absolute;pointer-events:none;opacity:0.95;will-change:transform, top, left;}@keyframes fall-3d-wind{0%{top:-10%;transform:translateX(0) rotateX(0deg) rotateY(0deg) rotateZ(0deg);opacity:0;}10%{opacity:1;}50%{transform:translateX(calc(var(--end-x) * 0.4)) rotateX(180deg) rotateY(90deg) rotateZ(45deg);}100%{top:110%;transform:translateX(var(--end-x)) rotateX(360deg) rotateY(180deg) rotateZ(90deg);opacity:0;}}@keyframes fall-2d-wind{0%{top:-10%;transform:translateX(0) rotateX(0deg) rotateY(0deg) rotateZ(0deg);opacity:0;}10%{opacity:1;}60%{transform:translateX(calc(var(--end-x) * 0.6)) rotateX(0deg) rotateY(0deg) rotateZ(var(--rotation-end));}100%{top:110%;transform:translateX(var(--end-x)) rotateX(0deg) rotateY(0deg) rotateZ(calc(var(--rotation-end) * 1.5));opacity:0;}}.hotaru-wrapper{position:absolute;transition:opacity 1s ease-in-out;width:10px;height:10px;}.hotaru{position:absolute;opacity:0;animation:firefly-move 4s ease-in-out infinite;}.autumn-leaf{pointer-events:none;will-change:transform, top;opacity:0.9;}@keyframes fall-wind{0%{top:-150px;transform:translateX(0) rotate(0deg);}100%{top:110%;transform:translateX(40vw) rotate(360deg);}}@keyframes sway-wind{0%{margin-left:0;}25%{margin-left:30px;}50%{margin-left:80px;}75%{margin-left:40px;}100%{margin-left:100px;}}.perspective-container{perspective:1000px;overflow-x:hidden;}.no-scrollbar::-webkit-scrollbar{display:none;}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none;}@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}.animate-fade-in{animation:fadeIn 0.5s ease-out forwards;}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}.animate-fade-in-up{animation:fadeInUp 0.5s ease-out forwards;}