@charset "UTF-8";
:root{font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:#07205d;background:#d8f3ff;font-synthesis:none;-webkit-text-size-adjust:100%;text-size-adjust:100%;--purple:#8537eb;--blue:#007ac9}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.7}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f8ba29;outline-offset:3px}button{touch-action:manipulation}img{max-width:100%;display:block}a{color:inherit}button{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.environment{max-width:540px;margin:auto;text-align:center;background:#fff5d8;color:#745416;font-size:11px;line-height:1.5;padding:5px 10px}.environment a{margin-left:8px}#app{max-width:540px;margin:auto;box-shadow:0 0 50px #287bb629;overflow:clip}.initial-loading{min-height:100svh;display:grid;place-items:center;background:#54bdea}
.screen{container-type:inline-size;position:relative;width:100%;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;background-color:#42b2e8;background-repeat:no-repeat;background-position:center bottom;background-size:100% auto;isolation:isolate;padding-bottom:env(safe-area-inset-bottom,0px)}
.screen.home,.screen.success{min-height:max(100svh,calc(var(--cqw, 1vw) * 177.7778));background-size:100% auto}.home{background-image:url('/assets/home.webp?v=20261020-design')}.home-art-space{flex:1;min-height:calc(var(--cqw, 1vw) * 156)}.home-actions{position:absolute;left:0;bottom:calc(var(--cqw, 1vw) * 10.05);width:100%;height:calc(var(--cqw, 1vw) * 12)}.art-button{position:absolute;background:transparent;border:0;border-radius:50px;color:transparent;height:calc(var(--cqw, 1vw) * 12)}.home-actions .learn{left:13.1%;width:40.6%}.home-actions .register{left:61%;width:22.8%}.art-button:hover{box-shadow:0 0 0 3px #fff6}.art-button:active{background:#fff2}
.brand-logo{position:absolute;left:6.6%;top:max(calc(var(--cqw, 1vw) * 4.4),env(safe-area-inset-top,0px));width:13.4%;z-index:1}.land-brand{width:56.5%;height:auto;margin:calc(var(--cqw, 1vw) * 13.8) auto 0}.form-screen,.about-screen{background-image:url('/assets/register-background.webp?v=20261020-design');min-height:max(100svh,calc(var(--cqw, 1vw) * 177.78))}
.card{width:80.2%;margin:calc(var(--cqw, 1vw) * 5.6) auto 0;background:#fff;border:2px solid #43b8f6;border-radius:25px;padding:16px 22px 20px;box-shadow:0 3px 9px #006bb00b}.card-title{display:table;margin:0 auto 22px;padding:5px 24px;border-radius:40px;background:linear-gradient(#8fb9ff,#447bd5);font-size:20px;font-style:italic;font-weight:800;color:white;text-shadow:0 1px 2px #244ba0;box-shadow:0 3px 3px #0002}.field{display:flex;align-items:center;gap:12px;min-height:47px;border:1px solid #b8b8b8;border-radius:15px;margin-top:12px;padding:0 12px}.field-icon{width:23px;height:26px;object-fit:contain;flex-shrink:0}.field input,.field select{min-width:0;width:100%;border:0;background:transparent;color:#19346c;font-size:16px;padding:13px 0;outline:none;border-radius:0}.field select{appearance:auto}.field input::placeholder{color:#aaa}.field:focus-within{border-color:#087fd0;box-shadow:0 0 0 2px #0e95e01a}.field.invalid{border-color:#c54545}.consents{display:grid;grid-template-columns:1fr 1.9fr;align-items:start;gap:12px;margin:20px 0 0;color:#222;font-size:clamp(10px,calc(var(--cqw, 1vw) * 2.45),13px);font-weight:650;line-height:1.6}.consent-row{display:flex;align-items:flex-start;gap:6px;margin-bottom:5px}.consent-row input{margin:3px 0 0;min-width:16px;width:16px;height:16px;accent-color:#7839d5}.consent-row label{cursor:pointer}.policy-link{padding:0;border:0;background:none;text-align:left;font:inherit;line-height:inherit;text-decoration:none}.policy-link:hover{text-decoration:underline}.form-error{color:#a63131;font-size:12px;line-height:1.6;margin:12px 0 0}.form-error:empty{display:none}
.actions{position:relative;margin-top:auto;padding:56px 0 32px;text-align:center}.primary{border:3px solid #f7f1ff;border-radius:40px;background:linear-gradient(#b377ff 0%,#7b2be2 54%,#8132df 100%);box-shadow:inset 0 0 0 3px #b887fa,inset 0 -5px 8px #5922cb,0 2px 0 #e5c057;color:#fff;text-shadow:0 1px 1px #4f199c;font-style:italic;font-size:clamp(18px,calc(var(--cqw, 1vw) * 4.45),24px);font-weight:800;line-height:1.25;min-height:46px;padding:10px 30px;min-width:calc(var(--cqw, 1vw) * 31)}.primary:active{filter:brightness(.94)}.subtle-link{display:block;margin:14px auto 0;background:transparent;border:0;font-size:12px;color:#0a2e6c;text-decoration:underline;text-underline-offset:3px}.about-card{padding:24px 22px;font-size:clamp(13px,calc(var(--cqw, 1vw) * 3.2),17px);line-height:1.8;font-weight:650}.intro{text-align:center;margin:0 0 22px}.about-card .card-title{font-size:20px;margin-bottom:20px}.rules{padding-left:1.25em;margin:0}.rules li{padding-left:0;margin-bottom:16px}.rules li::marker{color:#4c80de;font-weight:800}.rules em{color:#007bc1;font-style:normal;font-weight:800}.rules small{font-size:.84em;font-weight:500;line-height:1.8;display:block}.limited{text-align:center;color:#007bc1;font-style:italic;margin:16px 0 0}.about-screen .actions{padding-top:32px}
.park-screen{background-image:url('/assets/park-background.webp?v=20261020-design');min-height:max(100svh,calc(var(--cqw, 1vw) * 177.78))}.park-screen .brand-logo{width:16.3%;left:5.6%;top:max(calc(var(--cqw, 1vw) * 4.86),env(safe-area-inset-top,0px))}.ribbon{position:relative;margin:calc(var(--cqw, 1vw) * 18.8) auto 0;width:83.6%;height:calc(var(--cqw, 1vw) * 18.4);background:url('/assets/ribbon.webp?v=20261020-design') center/contain no-repeat;display:flex;justify-content:center;align-items:flex-start;padding-top:calc(var(--cqw, 1vw) * 3);text-align:center}.ribbon h1{margin:0;font-size:clamp(19px,calc(var(--cqw, 1vw) * 4.8),26px);font-weight:800;color:#fff;text-shadow:1px 2px 0 #376bab,-1px -1px 0 #376bab;line-height:1.5}.scan-prompt{background:transparent;border:0;margin:0 auto calc(var(--cqw, 1vw) * 2.5);padding:8px 14px;font-size:clamp(12px,calc(var(--cqw, 1vw) * 2.7),15px);line-height:1.7;font-weight:700;text-align:center;text-decoration:underline;text-underline-offset:3px;text-shadow:0 1px 0 white;color:#082c74;min-height:44px}.map-wrap{position:relative;width:55%;margin:0 auto;aspect-ratio:633/804}.map-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.map-gray{filter:grayscale(1) brightness(1.17)}.map-color.ice{clip-path:polygon(0 0,53% 0,53% 49%,0 51%)}.map-color.fuji{clip-path:polygon(53% 0,100% 0,100% 52%,53% 52%)}.map-color.zero{clip-path:polygon(0 53%,55% 53%,55% 100%,0 100%)}.map-color.ichiban{clip-path:polygon(55% 52%,100% 52%,100% 100%,55% 100%)}.map-sign{clip-path:polygon(34% 18%,66% 18%,66% 44%,34% 44%)}.map-hotspot{position:absolute;width:48%;height:47%;background:transparent;border:0;border-radius:20%;font-size:0}.map-hotspot.ice{left:0;top:0}.map-hotspot.fuji{right:0;top:0}.map-hotspot.zero{left:0;bottom:0}.map-hotspot.ichiban{right:0;bottom:0}.map-hotspot:hover{background:#fff1}.map-hotspot:focus-visible{outline-offset:0}.park-note{width:71%;margin:calc(var(--cqw, 1vw) * 7) auto 0;border:2px solid #4ab7f1;border-radius:18px;padding:12px 10px;text-align:center;background:#fff;color:#11366e;font-size:clamp(12px,calc(var(--cqw, 1vw) * 2.65),15px);font-weight:700;line-height:1.6}.park-note em,.result-card em{font-style:normal;color:#d49509}.park-screen .actions{padding-top:calc(var(--cqw, 1vw) * 12);padding-bottom:calc(var(--cqw, 1vw) * 9)}.map-cta{font-size:clamp(12px,calc(var(--cqw, 1vw) * 2.7),15px);padding:12px 18px;min-width:70%;max-width:90%;font-style:normal}.map-cta.locked{background:linear-gradient(#d4d4d4,#999);box-shadow:inset 0 0 0 3px #c5c5c5,0 2px 0 #e5c057;opacity:1;cursor:pointer}.success-next{position:absolute;left:34.8%;bottom:calc(var(--cqw, 1vw) * 10.1);width:30.3%;height:calc(var(--cqw, 1vw) * 11.4);border:0;background:transparent;border-radius:50px}.success-next:disabled{opacity:1}.result-card{width:71%;margin:calc(var(--cqw, 1vw) * 5) auto 0;border:2px solid #42b7ef;border-radius:20px;background:#fff;padding:20px 12px;text-align:center;font-size:clamp(12px,calc(var(--cqw, 1vw) * 2.75),15px);font-weight:700;line-height:1.7}.result-card h2{font-size:clamp(28px,calc(var(--cqw, 1vw) * 7),38px);margin:0 0 8px;line-height:1.4;color:#002576}.result-card p{margin:0}.result-message{text-align:center;margin:calc(var(--cqw, 1vw) * 12) 12% 0;color:#fff;font-size:clamp(16px,calc(var(--cqw, 1vw) * 3.9),22px);font-weight:800;line-height:1.55;text-shadow:-1px -1px 0 #0756b9,1px -1px 0 #0756b9,-1px 1px 0 #0756b9,1px 1px 0 #0756b9,0 2px 0 #0756b9}.result-message em{font-style:normal;color:#ffd95e}.follow-message{text-align:center;margin:calc(var(--cqw, 1vw) * 6) 0 0;color:#fff;font-size:clamp(16px,calc(var(--cqw, 1vw) * 4),22px);font-weight:800;line-height:1.5;text-shadow:1px 2px 0 #0756b9,-1px -1px 0 #0756b9}.stamp{width:47.5%;margin:calc(var(--cqw, 1vw) * 9) auto 0}.result-screen .actions{padding-top:calc(var(--cqw, 1vw) * 10)}.result-status{font-size:12px;color:#173b77;text-align:center;margin:16px 0 0}.win-note{color:#e9b034}
.modal{width:min(88vw,460px);max-height:calc(100dvh - 44px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding:0;border:2px solid #52b8ef;border-radius:22px;background:#fff;color:#092b6a;box-shadow:0 20px 70px #002c6360;overflow:hidden}.modal::backdrop{background:#002a5a99}.modal-head{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:18px 18px 14px;border-bottom:1px solid #e3eff7}.modal-head h2{font-size:18px;margin:0;line-height:1.5}.close-modal{flex-shrink:0;border:0;background:#eef7fc;border-radius:50%;width:36px;height:36px;font-size:23px;color:#285b88;display:grid;place-items:center}.modal-body{padding:20px;max-height:calc(76dvh - 95px);overflow:auto;overscroll-behavior:contain;font-size:14px;line-height:1.9}.policy-text{white-space:pre-wrap;overflow-wrap:anywhere}.modal-warning{background:#fff3d9;color:#7d5c13;padding:8px 10px;border-radius:8px;font-size:12px;margin:0 0 12px}.scan-list{display:grid;gap:10px}.scan-choice{padding:14px;border:1px solid #c0dded;background:#f1faff;border-radius:12px;text-align:left;color:#113d77;font-size:14px}.scan-choice small{display:block;font-size:12px;color:#57809a;margin-top:4px}.modal-actions{margin-top:18px;display:flex;justify-content:center;gap:12px}.modal .primary{font-size:16px;min-width:110px;min-height:42px}.manual-input{width:100%;border:1px solid #b9cedc;border-radius:10px;padding:12px;font-size:14px;margin-top:12px}.toast{position:fixed;z-index:100;bottom:calc(28px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 40px);padding:12px 18px;background:#102e5bed;color:white;border-radius:12px;font-size:14px;line-height:1.6;text-align:center;box-shadow:0 6px 22px #0002}.pending{opacity:.7;pointer-events:none}
@media(min-width:700px){body{padding:24px 0;background:linear-gradient(135deg,#eaf9ff,#cfe9f9)}#app{border-radius:22px}.screen{min-height:max(860px,calc(var(--cqw, 1vw) * 177.78))}.environment{border-radius:12px 12px 0 0}}
@media(max-width:350px){.card{width:88%;padding:14px 16px 18px}.land-brand{margin-top:calc(var(--cqw, 1vw) * 15)}.consents{grid-template-columns:1fr;font-size:12px;gap:0}.consent-row{margin-bottom:8px}.consents .agreements{margin-top:0}.field{min-height:48px}.form-screen .actions{padding-top:30px}.ribbon h1{font-size:18px}.park-note{width:80%;font-size:12px}.result-card{width:80%}}
@media(orientation:landscape) and (max-height:600px){#app{max-width:430px}.screen{min-height:764px}.modal{max-height:90dvh}.modal-body{max-height:calc(90dvh - 80px)}}
@media(prefers-reduced-motion:no-preference){.toast{animation:toast-in .18s ease-out}@keyframes toast-in{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}}

/* Branded resource loading screen. Progress is updated only as startup tasks finish. */
.initial-loading.startup-screen{width:100%;height:100%;min-height:0;display:flex;align-items:center;justify-content:center;padding:32px 24px;background:radial-gradient(ellipse at 92% 18%,#ffffffb8,transparent 42%),radial-gradient(ellipse at 0 86%,#e3f9ff99,transparent 48%),linear-gradient(165deg,#53b9ed,#bdefff);color:#123a70;text-align:center}
.startup-content{width:min(78vw,320px);margin-top:-4vh}.startup-logo{display:block;width:82%;height:auto;object-fit:contain;margin:0 auto 42px}.startup-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;font-weight:700;line-height:1.7;margin:0 3px 10px;text-shadow:0 1px 0 #fff8}#startup-percent{font-variant-numeric:tabular-nums;font-size:15px;color:#6941a0;min-width:42px;text-align:right}.startup-track{height:18px;border:3px solid #fff8;border-radius:20px;padding:2px;background:#eaf9ffb3;box-shadow:0 2px 0 #6aa9ce33,inset 0 1px 3px #287bb622;overflow:hidden}.startup-fill{display:block;height:100%;width:var(--loading-progress,0%);border-radius:12px;background:linear-gradient(90deg,#a371ee,#7737d8);box-shadow:0 1px 2px #7332b844;transition:width .16s linear}.startup-note{font-size:11px;line-height:1.8;margin:14px 0 0;color:#3b7397}.startup-error-title{font-size:19px;margin:0 0 12px}#startup-error{font-size:13px;line-height:1.8;margin:0 0 24px}.startup-content .primary{font-size:16px;min-height:44px}
@media(orientation:landscape) and (max-height:500px){.startup-content{width:300px;margin-top:0}.startup-logo{width:48%;margin-bottom:22px}}
@media(prefers-reduced-motion:reduce){.startup-fill{transition:none}}

/* A portrait-only player experience; the management dashboard is unaffected. */
.portrait-guard{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;height:var(--view-height,100dvh);max-height:none;padding:24px;margin:0;border:0;border-radius:0;background:linear-gradient(155deg,#83d5f4,#d6f4ff);color:#164a7d;overflow:hidden;z-index:300;display:none;align-items:center;justify-content:center;text-align:center}.portrait-guard[open]{display:flex}.portrait-guard::backdrop{background:#83d5f4}.portrait-content{max-width:440px}.portrait-phone{display:block;margin:0 auto 22px;color:#7650b0;width:64px;height:94px}.portrait-content h2{font-size:22px;margin:0 0 14px;line-height:1.5}.portrait-content p{font-size:14px;line-height:1.9;margin:0;color:#507c9c}.portrait-required #app,.portrait-required #modal{pointer-events:none}.portrait-required #toast{visibility:hidden}
@media(orientation:landscape){body:not(.orientation-ready) .portrait-guard{display:flex}}
@media(max-height:400px){.portrait-phone{width:48px;height:70px;margin-bottom:14px}.portrait-content h2{font-size:20px;margin-bottom:10px}.portrait-content p{font-size:13px}}
