:root{font-family:Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif;color:#203f36;background:#d9edfa;font-synthesis:none;--green:#203f36;--orange:#d95823;--paper:#fffefb}*{box-sizing:border-box}body{margin:0;overscroll-behavior:none}button,input,a{-webkit-tap-highlight-color:transparent}button,a,input{touch-action:manipulation}button{font:inherit;cursor:pointer;color:inherit}button:disabled{opacity:.38;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #ee8835;outline-offset:4px}a{color:inherit}button{border:0}button:not(:disabled):active{transform:translateY(1px)}[hidden]{display:none!important}.masthead{height:100px;position:absolute;top:0;left:0;right:0;padding:24px 40px;display:flex;align-items:center;gap:22px;z-index:5}.wordmark{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:18px;font-weight:800;line-height:1.15}.wordmark svg{width:42px;height:42px;fill:#ee6c32;stroke:#ee6c32;stroke-width:2}.brand-bottom{display:block;font-size:25px;letter-spacing:.02em}.record{margin-left:auto;text-align:right}.record>span{font-size:10px;display:block;color:#47695e}.record strong{font-size:26px;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.record small{font-size:13px;font-weight:500}.sound-button{border:1px solid #77988a;border-radius:18px;background:transparent;padding:6px 9px;font-size:10px;white-space:nowrap}.icon-button{width:34px;height:34px;border:1px solid #77988a;border-radius:50%;background:transparent;font-weight:700}#game{height:100dvh;min-height:650px;overflow:hidden;position:relative}#world{position:absolute;inset:0 0 0 300px;transition:left .4s}#world canvas{display:block;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none}.sidebar{position:absolute;left:40px;top:128px;bottom:55px;width:320px;z-index:3;display:flex;flex-direction:column;pointer-events:none}.sidebar>*{pointer-events:auto}.roundline{display:flex;justify-content:space-between;align-items:center;font-size:11px;gap:12px;min-height:20px}.roundline>span{font-weight:600}#throw-dots{display:flex;gap:5px}#throw-dots i{display:block;width:8px;height:8px;border:1px solid #58766a;border-radius:50%}#throw-dots i.current{background:#ed7737;border-color:#ed7737}#throw-dots i.done{background:#355b47}.steps{display:flex;align-items:center;gap:8px;font-size:10px;color:#6e8a7c;margin-top:18px;margin-bottom:25px}.steps span.active{color:var(--green);font-weight:800;border-bottom:2px solid #e7783d;padding-bottom:4px}.steps b{font-weight:400;color:#94a89b}h1{font-size:54px;letter-spacing:-.055em;line-height:1.2;font-weight:850;margin:0 0 14px}h2{font-size:25px;line-height:1.5;letter-spacing:-.05em;margin:0}.intro{font-size:13px;line-height:1.8;color:#526d60;margin:0 0 24px}.prefectures{display:flex;gap:4px;align-items:stretch;margin:24px -6px 18px}.prefecture{display:flex;flex:1;flex-direction:column;align-items:center;padding:10px 4px 7px;background:transparent;border:1px solid transparent;border-radius:9px;min-width:0;gap:6px;font-size:11px}.prefecture.selected{border-color:#d68c5f;background:#ffffff5c}.prefecture svg{width:44px;height:41px;fill:#6f8f7a}.prefecture.selected svg{fill:#dc672d}.selected-info{display:flex;align-items:center;justify-content:space-between;margin-top:5px;font-size:11px}.selected-info strong{font-size:22px}.material{display:flex;gap:10px;font-size:10px;color:#637968;margin:12px 0 22px}.primary{width:100%;background:#244d3d;color:#fffefb;min-height:52px;padding:14px 20px;border-radius:8px;font-size:14px;font-weight:700;display:flex;justify-content:space-between;align-items:center}.primary span{font-size:20px;font-weight:400}.primary:hover{background:#183c2d}.field-label{position:absolute;right:40px;top:122px;font-size:11px;display:flex;align-items:center;gap:8px;color:#627e71;pointer-events:none}.wind-symbol{font-size:20px;color:#557462}.scene-hint{position:absolute;left:65%;top:70%;transform:translate(-50%);font-size:12px;display:flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap;color:#294f3c;pointer-events:none}.hint-disk{width:25px;height:9px;border:1.5px solid #e96a31;border-radius:50%;transform:rotate(-25deg)}.touch-ring{width:20px;height:20px;border:2px solid white;border-radius:50%;box-shadow:0 0 0 5px #ee6c3250}.arrow-up{font-size:23px}.footer{position:absolute;bottom:23px;left:40px;right:40px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#4d6758;gap:15px;z-index:2}.footer button{background:transparent;font-size:10px;text-decoration:underline;text-underline-offset:3px}.phase-title{display:flex;gap:12px;align-items:center;margin:18px 0 13px}.phase-number{width:26px;height:26px;display:grid;place-items:center;font-size:12px;border:1px solid #9aa990;border-radius:50%}.grip-status{margin:35px 0 25px;font-size:12px;line-height:1.6;min-height:20px}.text-button{background:transparent;display:block;margin:14px auto;font-size:11px;text-decoration:underline;text-underline-offset:4px;padding:6px}.angle-control{margin:20px 0}.angle-control label{font-size:13px;display:flex;justify-content:space-between;align-items:center;font-weight:600}.angle-control output{font-size:20px;letter-spacing:-.06em;font-variant-numeric:tabular-nums}.angle-control input{width:100%;margin:13px 0 4px;accent-color:#cf652d;height:22px;cursor:pointer}.range-ends{display:flex;justify-content:space-between;font-size:9px;color:#637968}.swipe-instruction{display:flex;align-items:center;gap:15px;font-size:13px;margin:28px 0 0}.swipe-instruction svg{width:25px;height:35px;fill:none;stroke:#ce642c;stroke-width:2;flex-shrink:0}.swipe-instruction strong{display:block;font-size:10px;font-weight:500;color:#647867;margin-top:6px}#game[data-stage=FLIGHT] #world,#game[data-stage=RESULT] #world{left:0}#game[data-stage=FLIGHT] .sidebar{pointer-events:none}#game[data-stage=FLIGHT] .steps,#game[data-stage=FLIGHT] .roundline,#game[data-stage=RESULT] .steps{display:none}.live{position:absolute;left:40px;top:128px;z-index:3;padding:0;pointer-events:none}.live>div>span{font-size:12px}.live strong{display:block;font-size:62px;font-weight:850;letter-spacing:-.07em;line-height:1.2;font-variant-numeric:tabular-nums}.live strong small{font-size:21px;margin-left:8px;font-weight:500}.live-small{display:flex;gap:14px;margin:13px 0 17px}.live-small span{font-size:12px!important}.flight-tag{font-size:11px;background:#ffffff9c;border:1px solid #ffffff;padding:5px 12px;border-radius:30px}.result-kicker{font-size:12px;margin:20px 0 4px;color:#658069}.result-heading{font-size:18px}.result-distance{font-size:80px;font-weight:850;line-height:1.15;letter-spacing:-.07em;font-variant-numeric:tabular-nums;margin:0 0 23px}.result-distance>span{font-size:23px;margin-left:10px;font-weight:500}.result-stats{display:flex;gap:20px;margin-bottom:19px}.result-stats div{display:flex;flex-direction:column;gap:7px}.result-stats span{font-size:10px;color:#638068}.result-stats strong{font-size:13px}.throw-results{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 23px}.throw-results span{font-size:9px;padding:5px 8px;background:#ffffff7a;border-radius:4px}.throw-results b{font-size:11px;margin-left:5px}.result-actions{display:flex;justify-content:space-between;gap:5px;margin-top:12px}.result-actions button,.data-tools button,.file-button,#defaults{font-size:10px;padding:8px 5px;background:transparent;text-decoration:underline;text-underline-offset:3px}.small{font-size:11px;color:#5f7569;line-height:1.7}.result-note{font-size:9px;margin-top:22px}.current-throw{font-size:10px;line-height:1.5}.data-tools{font-size:10px;margin-top:18px;color:#5e7667}.data-tools summary{cursor:pointer}.data-tools button{display:block}.file-button{display:inline-block;cursor:pointer}.file-button input{display:none}.dev-open{position:fixed;bottom:2px;right:5px;background:#ffffffc7;padding:4px 8px;border-radius:3px;font-size:9px;z-index:6}#toast{position:absolute;left:50%;top:105px;transform:translate(-50%,-10px);background:#254d3de8;color:#fff;padding:11px 20px;border-radius:7px;z-index:12;font-size:12px;pointer-events:none;opacity:0;transition:opacity .15s,transform .15s;max-width:90%;text-align:center}#toast.visible{opacity:1;transform:translate(-50%)}#gesture{position:fixed;inset:0;pointer-events:none;z-index:7}#gesture svg{width:100%;height:100%}#gesture path{stroke:#fffaf0;stroke-width:5;fill:none;stroke-linecap:round}#swipe-speed{position:absolute;left:50%;top:30%;background:#244d3d;color:#fff;padding:8px 13px;border-radius:30px;font-size:13px}dialog{border:0;background:#fffefb;padding:36px;width:min(520px,calc(100% - 32px));max-height:85dvh;border-radius:14px;box-shadow:0 25px 80px #1d382640;color:#254a3b}dialog::backdrop{background:#203f3660;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}dialog p,dialog li{font-size:12px;line-height:1.9}dialog h3{font-size:15px;margin-top:26px}.close{float:right;background:transparent;font-size:24px;padding:0 3px;line-height:1.2}#dev-controls label{font-size:12px;display:block;margin:15px 0}#dev-controls output{float:right}#dev-controls input{width:100%;accent-color:#d56830}#diagnostic{font-size:9px;white-space:pre-wrap}.render-error{position:absolute;top:35%;left:20%;font-size:13px;line-height:2}#game[data-stage=RESULT] .sidebar{background:#f5f8efeb;border-radius:15px;padding:22px;left:28px;width:350px;bottom:auto;top:130px}#game[data-stage=RESULT] .roundline{font-size:10px}@media(min-width:1100px){.sidebar{width:340px;left:65px}.masthead{padding-left:65px;padding-right:65px}#world{left:350px}.footer{left:65px;right:65px}.prefecture svg{height:43px;width:47px}h1{font-size:60px}.field-label{right:65px}.scene-hint{left:66%}#game[data-stage=RESULT] .sidebar{left:50px;width:370px}}@media(max-width:700px){.masthead{height:83px;padding:17px 22px;gap:16px}.wordmark{font-size:12px;gap:7px}.brand-bottom{font-size:20px}.wordmark svg{width:32px;height:32px}.record>span{font-size:8px}.record strong{font-size:23px}.icon-button{width:29px;height:29px}.record small{font-size:11px}#game{min-height:640px}#world{left:0;top:50px;bottom:270px;transition:bottom .3s}.sidebar{inset:auto 0 36px;width:auto!important;padding:16px 23px;background:#f7f9f0f7;border-radius:20px 20px 0 0;max-height:47dvh;overflow-y:auto}.roundline{font-size:9px;min-height:12px}.steps{font-size:8px;gap:5px;margin:8px 0 12px}.steps span.active{padding-bottom:2px}h1{font-size:26px;line-height:1.3;letter-spacing:-.05em;display:inline}h1 br{display:none}.intro{font-size:10px;line-height:1.6;margin:5px 0 12px}.prefectures{gap:6px;margin:9px 0}.prefecture{padding:5px 4px 4px;font-size:10px;border-radius:8px;gap:3px}.prefecture svg{width:38px;height:33px}.selected-info{font-size:10px;margin-top:5px}.selected-info strong{font-size:16px}.material{font-size:9px;gap:10px;margin:8px 0 11px}.primary{min-height:45px;border-radius:7px;padding:10px 16px;font-size:12px}.primary span{font-size:19px}.field-label{top:90px;right:23px;font-size:9px;gap:6px}.wind-symbol{font-size:16px}.scene-hint{left:50%;top:auto;bottom:290px;font-size:10px;color:#254a3c;gap:8px}.footer{left:18px;right:18px;bottom:12px;font-size:7px;gap:6px}.footer button{font-size:8px;padding:0}.phase-title{margin:4px 0 8px;gap:9px}h2{font-size:21px}.phase-number{width:22px;height:22px;font-size:10px}.grip-status{font-size:11px;margin:17px 0 16px}.text-button{font-size:10px;margin:8px auto 0;padding:5px}.angle-control{margin:8px 0}.angle-control label{font-size:11px}.angle-control output{font-size:16px}.angle-control input{margin:4px 0 0;height:22px}.range-ends{font-size:8px}.swipe-instruction{margin:10px 0 0;gap:10px;font-size:11px}.swipe-instruction svg{width:20px;height:29px}.swipe-instruction strong{font-size:9px;margin-top:3px}#game[data-stage=GRIP] #world{bottom:245px}#game[data-stage=GRIP] .scene-hint{bottom:260px}#game[data-stage=AIM] #world{bottom:300px}#game[data-stage=AIM] .scene-hint{bottom:310px}#game[data-stage=FLIGHT] #world{top:0;bottom:0}#game[data-stage=FLIGHT] .sidebar{display:none}.live{left:23px;top:126px}.live>div>span{font-size:10px}.live strong{font-size:49px}.live strong small{font-size:18px}.live-small{gap:11px;margin:7px 0 15px}.live-small span{font-size:10px!important}.flight-tag{font-size:9px;padding:4px 10px}#game[data-stage=RESULT] #world{top:0;bottom:290px}#game[data-stage=RESULT] .sidebar{top:auto;left:0;bottom:36px;border-radius:20px 20px 0 0;padding:17px 23px;background:#f7f9f0f7;max-height:52dvh}.result-kicker{margin:9px 0 0;font-size:10px}.result-heading{font-size:13px}.result-distance{font-size:58px;margin-bottom:10px;line-height:1.1}.result-distance>span{font-size:20px;margin-left:8px}.result-stats{gap:28px;margin-bottom:11px}.result-stats div{gap:4px}.result-stats span{font-size:9px}.result-stats strong{font-size:12px}.throw-results{margin:6px 0 13px;gap:7px}.throw-results span{font-size:8px;padding:4px 6px}.throw-results b{font-size:10px}.result-actions{margin-top:5px}.result-actions button{font-size:9px;padding:6px 2px}.result-note{font-size:8px;margin:10px 0 0}.current-throw{font-size:8px;margin:5px 0}.data-tools{font-size:9px;margin:9px 0 0}.data-tools[open]{padding-bottom:10px}#toast{top:88px;font-size:11px;padding:9px 15px;white-space:normal;width:max-content}.dev-open{font-size:8px;bottom:0}dialog{padding:25px}.render-error{left:15%;right:15%;top:30%}}@media(max-height:730px)and (max-width:700px){#game{min-height:580px}.sidebar{padding-top:12px;padding-bottom:12px}.steps{margin:6px 0 9px}.prefectures{margin:7px 0}.prefecture svg{height:27px}.prefecture{font-size:9px}.data-tools{margin-top:7px}.material{margin:6px 0 9px}.intro{margin-bottom:8px}.grip-status{margin:13px 0}.swipe-instruction{margin-top:8px}.angle-control{margin:6px 0}.result-distance{font-size:48px}.result-note{margin-top:7px}#world{bottom:260px}.scene-hint{bottom:280px}}@media(orientation:landscape)and (max-height:600px){#game{min-height:420px}.masthead{height:70px;padding:10px 24px}.sidebar{left:24px;top:88px;bottom:30px;width:280px;overflow:auto}#world{left:280px;top:0;bottom:0}.field-label{top:90px;right:24px}h1{font-size:34px}.intro{font-size:11px;margin-bottom:12px}.steps{margin:6px 0 12px}.prefectures{margin:9px 0}.prefecture svg{height:25px}.material{margin:9px 0}.primary{min-height:44px}.data-tools{margin-top:7px}.footer{bottom:8px;left:24px;right:24px}.scene-hint{left:70%;top:80%;bottom:auto}.phase-title{margin:8px 0}.grip-status{margin:15px 0}.angle-control{margin:8px 0}.swipe-instruction{margin-top:12px}.live{top:95px;left:24px}.live strong{font-size:42px}#game[data-stage=RESULT] .sidebar{top:84px;bottom:34px;width:300px;padding:15px;overflow:auto}.result-distance{font-size:45px}.result-kicker{margin:8px 0 0}.result-stats{margin:8px 0 12px}.result-note{margin-top:10px}.throw-results{margin:8px 0}.field-label{font-size:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}@media(max-width:700px){.masthead{padding-left:12px;padding-right:12px;gap:8px}.wordmark{flex-shrink:0;gap:5px;font-size:10px}.wordmark svg{width:26px;height:26px}.brand-bottom{font-size:17px;white-space:nowrap}.record{min-width:0}.record>span{font-size:7px;white-space:nowrap}.record strong{font-size:20px;white-space:nowrap}.record small{font-size:10px}.sound-button{padding:6px 7px;flex-shrink:0}.icon-button{width:28px;height:28px;flex-shrink:0}}
