body{margin:0;overflow:hidden;font-family:"M PLUS 2",Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-weight:500;letter-spacing:.02em}canvas{display:block}.gamepad-focus{outline:3px solid #00ff88!important;outline-offset:4px;box-shadow:0 0 12px 2px #00ff8880!important}#cameraPositionDisplay{position:absolute;top:40px;left:10px;color:#000;font-size:clamp(11px,1.8vw,18px);z-index:100;display:none}@media(min-width:769px){#cameraPositionDisplay{display:block}}#scoreDisplay{position:fixed;top:calc(max(10px,env(safe-area-inset-top,10px)) + clamp(80px,12vw,140px) + 6px);right:max(10px,env(safe-area-inset-right,10px));color:#fff;font-size:clamp(21px,3.8vw,47px);font-weight:700;z-index:100;text-shadow:0 2px 6px rgba(0,0,0,.6);white-space:nowrap}#centerMessageDisplay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:clamp(28px,7vw,64px);font-weight:700;font-family:Asimovian,Dela Gothic One,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif;z-index:100;text-shadow:0 0 10px rgba(255,255,255,.8),0 0 20px rgba(255,255,255,.6),0 4px 8px rgba(0,0,0,.5);text-align:center;pointer-events:none}#centerMessageDisplay.norma-clear-effect{top:calc(max(10px,env(safe-area-inset-top,10px)) + clamp(80px,12vw,140px) + clamp(44px,5vw,72px));right:max(10px,env(safe-area-inset-right,10px));left:auto;transform:none;transform-origin:right top;text-align:right;background:linear-gradient(135deg,gold,#fa0,#fff176,gold);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 0 12px rgba(255,215,0,.8)) drop-shadow(0 4px 8px rgba(0,0,0,.5));animation:norma-clear-bounce-side .6s cubic-bezier(.22,1,.36,1) forwards}@keyframes norma-clear-bounce-side{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.2);opacity:1}70%{transform:scale(.95)}to{transform:scale(1);opacity:1}}@keyframes norma-clear-bounce{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}50%{transform:translate(-50%,-50%) scale(1.2);opacity:1}70%{transform:translate(-50%,-50%) scale(.95)}to{transform:translate(-50%,-50%) scale(1);opacity:1}}#subTitleDisplay{position:absolute;top:calc(50% + clamp(52px,10vw,96px));left:50%;transform:translate(-50%);color:#fff;font-size:clamp(16px,3.4vw,28px);font-weight:500;font-family:"M PLUS 2",Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,system-ui,sans-serif;letter-spacing:.02em;z-index:100;padding:clamp(5px,1vw,10px) clamp(12px,2.2vw,20px);background:#0009;border:1.5px solid rgba(255,215,0,.8);border-radius:10px;text-shadow:0 1px 3px rgba(0,0,0,.8);box-shadow:0 4px 14px #00000073;text-align:center;pointer-events:none;white-space:pre-line;line-height:1.35;max-width:min(92vw,680px);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;animation:subTitleFadeIn .4s ease-out}@keyframes subTitleFadeIn{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}@media(max-width:480px)and (orientation:portrait){#scoreDisplay{top:auto;bottom:max(10px,env(safe-area-inset-bottom,10px));right:max(10px,env(safe-area-inset-right,10px));left:auto;transform:none;font-size:clamp(15px,4.2vw,21px)}#centerMessageDisplay.norma-clear-effect{top:50%;left:50%;right:auto;transform:translate(-50%,-50%);transform-origin:center center;text-align:center;animation-name:norma-clear-bounce}}.start-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:none;flex-direction:column;align-items:center;justify-content:center;background:#0006;z-index:110;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.title-screen{cursor:pointer;-webkit-tap-highlight-color:transparent}.title-screen .game-title{margin-bottom:clamp(24px,5vh,60px)}.push-to-start{color:#fff;font-family:Asimovian,system-ui,sans-serif;font-size:clamp(1.2rem,3.5vw,2rem);font-weight:700;letter-spacing:.25em;text-shadow:0 0 12px rgba(255,255,255,.8),0 0 24px rgba(76,175,80,.5);animation:pushToStartBlink 1.6s ease-in-out infinite;margin:0;padding:0;user-select:none;-webkit-user-select:none}@keyframes pushToStartBlink{0%,to{opacity:1}50%{opacity:.2}}.game-title{display:block;max-width:min(520px,80vw);width:100%;height:auto;margin:0 auto 40px;filter:drop-shadow(0 0 12px rgba(255,255,255,.7)) drop-shadow(0 0 24px rgba(76,175,80,.5));animation:titleGlow 3s ease-in-out infinite alternate}.game-title:after{content:none}.start-button{font-family:Asimovian,Dela Gothic One,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,sans-serif;font-size:clamp(1.2rem,3.5vw,2.2rem);font-weight:700;padding:clamp(12px,2vh,18px) 0;width:clamp(240px,50vw,380px);text-align:center;box-sizing:border-box;border:none;border-radius:40px;background:linear-gradient(90deg,#ff3cac,#784ba0,#2b86c5,#42e695,#f9d423,#ff3cac);background-size:400% 400%;color:#fff;box-shadow:0 4px 16px #00000040,0 2px 8px #0000002e,0 0 20px 4px #ffffff2e;cursor:pointer;letter-spacing:.1em;text-shadow:0 2px 4px rgba(0,0,0,.35),0 0 8px #fff,0 0 16px #fff;position:relative;overflow:hidden;transition:transform .2s;animation:rainbowMove 2.5s linear infinite}@keyframes rainbowMove{0%{background-position:0% 50%}to{background-position:100% 50%}}.start-button:after{content:"";position:absolute;top:-40%;left:-40%;width:180%;height:180%;pointer-events:none;background:repeating-linear-gradient(120deg,rgba(255,255,255,.25) 0 2px,transparent 2px 8px);mix-blend-mode:lighten;animation:glitter 1.2s linear infinite}@keyframes titleGlow{0%{filter:drop-shadow(0 0 8px rgba(255,255,255,.5)) drop-shadow(0 0 18px rgba(76,175,80,.3))}to{filter:drop-shadow(0 0 18px rgba(255,255,255,.9)) drop-shadow(0 0 36px rgba(76,175,80,.7))}}@keyframes glitter{0%{transform:translate(0) translateY(0)}to{transform:translate(30px) translateY(20px)}}.start-button:active{transform:scale(.97)}.sub-button{display:inline-block;margin-top:12px;padding:clamp(12px,2vh,18px) 0;width:clamp(240px,50vw,380px);text-align:center;box-sizing:border-box;background:#ffffff1f;border:1px solid rgba(255,255,255,.35);border-radius:40px;color:#ffffffe0;font-family:Asimovian,Dela Gothic One,system-ui,sans-serif;font-size:clamp(1.2rem,3.5vw,2.2rem);font-weight:700;letter-spacing:.1em;text-decoration:none;cursor:pointer;transition:background .2s,box-shadow .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sub-button:hover{background:#ffffff38;box-shadow:0 2px 12px #ffffff26}.sub-button:active{transform:scale(.97)}.collection-button{margin-top:14px;background:linear-gradient(90deg,#f9d423,#ff9800,#f9d423,#ffeb3b,#f9d423);background-size:400% 400%;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.35),0 0 8px rgba(255,215,0,.8);border:none;animation:rainbowMove 2.5s linear infinite}.setting-button{border-color:#64c8ff66;color:#64c8ffe6;background:#64c8ff14}.setting-button:hover{background:#64c8ff33;box-shadow:0 2px 12px #64c8ff33}.tutorial-button{border-color:#64dca073;color:#64e6aaf2;background:#64dca01a}.tutorial-button:hover{background:#64dca038;box-shadow:0 2px 12px #64dca033}.collection-menu-button{border-color:#ffd25073;color:#ffd764f2;background:#ffd2501a}.collection-menu-button:hover{background:#ffd25038;box-shadow:0 2px 12px #ffd25033}.howtoplay-button{border-color:#be8cff73;color:#c396fff2;background:#be8cff1a}.howtoplay-button:hover{background:#be8cff38;box-shadow:0 2px 12px #be8cff33}@media(orientation:landscape){.start-overlay{justify-content:safe center;overflow-y:auto}.game-title{width:auto;max-height:min(312px,34vh);margin-bottom:clamp(12px,3vh,40px)}.start-button,.sub-button{padding:clamp(8px,1.4vh,18px) 0}}.global-setting-button{position:fixed;top:max(10px,env(safe-area-inset-top,10px));left:max(10px,env(safe-area-inset-left,10px));z-index:150;margin:0;padding:9px 28px;width:auto;font-size:clamp(13px,2.5vw,17px);font-weight:600;letter-spacing:.06em;border-radius:24px}#gameOverDisplay{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;z-index:11}#gameOverScore{margin-bottom:20px;font-size:2em;color:#0f0;text-shadow:0 0 20px #00ff00,0 0 40px #00ff00;font-family:Orbitron,monospace;font-weight:700}.setting-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:200;background:#000000bf;display:flex;justify-content:center;align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.setting-panel{background:#141928f2;border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:clamp(20px,4vw,36px);width:min(420px,88vw);max-height:80vh;overflow-y:auto;box-shadow:0 8px 40px #00000080}.setting-title{text-align:center;color:#fff;font-family:Asimovian,Dela Gothic One,system-ui,sans-serif;font-size:clamp(1.1rem,3vw,1.6rem);font-weight:700;letter-spacing:.12em;margin:0 0 clamp(16px,3vw,28px) 0}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08)}.setting-row.setting-row-stack{flex-direction:column;align-items:stretch;gap:6px}.setting-row:last-of-type{border-bottom:none}.setting-help{color:#ffffff8c;font-size:clamp(.7rem,1.9vw,.78rem);font-family:"M PLUS 2",Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,system-ui,sans-serif;line-height:1.4}.setting-label{color:#ffffffd9;font-size:clamp(.8rem,2.2vw,1rem);font-family:"M PLUS 2",Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,system-ui,sans-serif;white-space:nowrap;flex-shrink:0}.setting-slider{flex:1;min-width:80px;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff26;border-radius:3px;outline:none;cursor:pointer}.setting-slider::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#00c8ff;box-shadow:0 0 6px #00c8ff80;cursor:pointer}.setting-slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#00c8ff;border:none;box-shadow:0 0 6px #00c8ff80;cursor:pointer}.setting-value{color:#ffffffb3;font-size:clamp(.75rem,2vw,.9rem);font-family:Orbitron,monospace;min-width:28px;text-align:right}.lang-toggle{display:flex;gap:0;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.2)}.lang-btn{padding:6px 16px;background:transparent;color:#ffffff80;border:none;font-size:clamp(.75rem,2vw,.9rem);font-family:Asimovian,Dela Gothic One,system-ui,sans-serif;font-weight:600;cursor:pointer;transition:background .2s,color .2s}.lang-btn.active{background:#00c8ff40;color:#fff}.lang-btn:hover:not(.active){background:#ffffff14}.quality-toggle .lang-btn{padding:6px 10px;flex:1 1 auto;min-width:0}.haptic-switch{position:relative;display:inline-block;width:clamp(40px,6vw,52px);height:clamp(22px,3.5vw,28px);flex-shrink:0}.haptic-switch input{opacity:0;width:0;height:0}.haptic-switch-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#fff3;border-radius:14px;transition:background .25s}.haptic-switch-slider:before{content:"";position:absolute;height:clamp(16px,2.5vw,22px);width:clamp(16px,2.5vw,22px);left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .25s}.haptic-switch input:checked+.haptic-switch-slider{background:#00c8ff}.haptic-switch input:checked+.haptic-switch-slider:before{transform:translate(clamp(16px,2.5vw,22px))}.setting-danger{justify-content:center;padding-top:18px}.clear-collection-btn{padding:8px 24px;background:#ff3c3c1f;border:1px solid rgba(255,60,60,.4);border-radius:20px;color:#ff6464e6;font-size:clamp(.75rem,2vw,.9rem);font-family:"M PLUS 2",Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,system-ui,sans-serif;cursor:pointer;transition:background .2s}.clear-collection-btn:hover{background:#ff3c3c40}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:210;background:#000000b3;display:flex;justify-content:center;align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.confirm-panel{background:#19121ef7;border:2px solid rgba(255,90,90,.55);border-radius:18px;padding:clamp(20px,3.5vw,30px) clamp(22px,4vw,36px);width:min(380px,86vw);color:#fff;text-align:center;box-shadow:0 8px 40px #ff3c3c40,0 4px 20px #0009}.confirm-title{margin:0 0 12px;font-family:Asimovian,Dela Gothic One,system-ui,sans-serif;font-size:clamp(1.1rem,2.6vw,1.4rem);font-weight:700;color:#ff8a8a;letter-spacing:.04em}.confirm-message{margin:0 0 20px;font-size:clamp(.85rem,2vw,1rem);color:#f0f0f0d9;line-height:1.5}.confirm-buttons{display:flex;justify-content:center;gap:14px}.confirm-btn{flex:1;max-width:130px;padding:10px 18px;border-radius:22px;font-family:Asimovian,Dela Gothic One,system-ui,sans-serif;font-size:clamp(.9rem,2.2vw,1.05rem);font-weight:700;letter-spacing:.06em;cursor:pointer;transition:background .15s,transform .1s}.confirm-btn:active{transform:scale(.97)}.confirm-btn-no{background:#ffffff1a;border:1px solid rgba(255,255,255,.3);color:#ffffffe6}.confirm-btn-no:hover{background:#fff3}.confirm-btn-yes{background:#dc3232d9;border:1px solid rgba(255,100,100,.6);color:#fff}.confirm-btn-yes:hover{background:#f03c3cf2}.setting-close-btn{display:block;width:100%;margin-top:20px;padding:12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.25);border-radius:24px;color:#ffffffd9;font-size:clamp(.85rem,2.5vw,1.05rem);font-family:Asimovian,Dela Gothic One,system-ui,sans-serif;font-weight:600;letter-spacing:.06em;cursor:pointer;transition:background .2s}.setting-close-btn:hover{background:#fff3}.effect-message-banner{position:fixed;top:calc(max(10px,env(safe-area-inset-top,10px)) + clamp(80px,12vw,140px) + clamp(44px,5vw,72px));right:max(10px,env(safe-area-inset-right,10px));transform-origin:right top;z-index:200;color:#fff;font-family:Asimovian,Dela Gothic One,system-ui;font-size:clamp(2rem,8vw,4rem);font-weight:700;text-shadow:0 0 20px rgba(255,255,255,.8),0 0 40px rgba(255,255,255,.4),0 4px 8px rgba(0,0,0,.6);pointer-events:none;white-space:nowrap;opacity:0;animation:effectFlashSide 2s ease-out forwards;text-align:right}@keyframes effectFlashSide{0%{opacity:0;transform:scale(.5)}15%{opacity:1;transform:scale(1.15)}30%{opacity:.95;transform:scale(1)}to{opacity:0;transform:scale(1)}}@keyframes effectFlash{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}15%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}30%{opacity:.95;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}@media(max-width:480px)and (orientation:portrait){.effect-message-banner{top:50%;left:50%;right:auto;transform-origin:center center;text-align:center;animation-name:effectFlash}}
