:root{--magenta:#d6185f;--magenta-dark:#a30f46;--teal:#00a99d;--teal-dark:#007f76;--orange:#f7931e;--ink:#3b2a3f;--muted:#6e6073;--paper:#fff;--pastel-teal:#d9f4f1;--pastel-blue:#e3ebff;--pastel-purple:#efe3fb;--pastel-coral:#ffe3e3;--kv-teal:#7fd6cf;--kv-blue:#a9c4f5;--kv-lav:#c9b6f0;--kv-coral:#f6a7a0;--radius:20px;--center-w:500px;--font:"Hiragino Maru Gothic ProN", "Hiragino Kaku Gothic ProN", "Yu Gothic", "游ゴシック体", "Meiryo", "Noto Sans JP", system-ui, sans-serif;--frame:linear-gradient(135deg, var(--kv-teal), var(--kv-blue) 35%, var(--kv-lav) 65%, var(--kv-coral))}*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{font-family:var(--font);color:var(--ink);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);background-color:#fbf9ff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Ccircle cx='15' cy='15' r='4' fill='%23a9c4f5' fill-opacity='0.6'/%3E%3Ccircle cx='75' cy='75' r='4' fill='%23a9c4f5' fill-opacity='0.6'/%3E%3Ccircle cx='75' cy='15' r='2.6' fill='%237fd6cf' fill-opacity='0.6'/%3E%3Ccircle cx='15' cy='75' r='2.6' fill='%237fd6cf' fill-opacity='0.6'/%3E%3Ccircle cx='45' cy='45' r='2' fill='%23c9b6f0' fill-opacity='0.5'/%3E%3Ccircle cx='105' cy='105' r='2' fill='%23f6a7a0' fill-opacity='0.5'/%3E%3Ccircle cx='100.0' cy='32.5' r='4.2' fill='%23f6a7a0' fill-opacity='0.55'/%3E%3Ccircle cx='105.2' cy='36.3' r='4.2' fill='%23f6a7a0' fill-opacity='0.55'/%3E%3Ccircle cx='103.2' cy='42.4' r='4.2' fill='%23f6a7a0' fill-opacity='0.55'/%3E%3Ccircle cx='96.8' cy='42.4' r='4.2' fill='%23f6a7a0' fill-opacity='0.55'/%3E%3Ccircle cx='94.8' cy='36.3' r='4.2' fill='%23f6a7a0' fill-opacity='0.55'/%3E%3Ccircle cx='100' cy='38' r='1.8' fill='%23ffffff' fill-opacity='1'/%3E%3Ccircle cx='38.0' cy='94.5' r='4.2' fill='%23c9b6f0' fill-opacity='0.55'/%3E%3Ccircle cx='43.2' cy='98.3' r='4.2' fill='%23c9b6f0' fill-opacity='0.55'/%3E%3Ccircle cx='41.2' cy='104.4' r='4.2' fill='%23c9b6f0' fill-opacity='0.55'/%3E%3Ccircle cx='34.8' cy='104.4' r='4.2' fill='%23c9b6f0' fill-opacity='0.55'/%3E%3Ccircle cx='32.8' cy='98.3' r='4.2' fill='%23c9b6f0' fill-opacity='0.55'/%3E%3Ccircle cx='38' cy='100' r='1.8' fill='%23ffffff' fill-opacity='1'/%3E%3C/svg%3E");background-size:120px 120px;margin:0;font-size:16px;line-height:1.7;overflow-x:hidden}img{max-width:100%;height:auto}a{color:var(--magenta)}a:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.only-mobile{display:block}.shell{min-height:100vh}.side-left,.side-right{display:none}.center{background:#fff linear-gradient(#eefaf9 0,#fff 520px);width:100%;max-width:720px;min-height:100vh;margin:0 auto;position:relative;box-shadow:0 0 0 1px #a9c4f573,0 0 32px #7864aa2e}.page{padding:0 16px calc(104px + env(safe-area-inset-bottom))}@media (min-width:1024px){.only-mobile{display:none}.center{max-width:var(--center-w)}.side-right{width:calc((100% - var(--center-w)) / 2);flex-direction:column;justify-content:center;align-items:center;gap:22px;padding:24px 20px;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.side-logo{width:100%;max-width:320px;display:block}.side-logo img{filter:drop-shadow(0 3px 6px #ffffffe6);width:100%;display:block}}@media (min-width:1200px){.side-left{width:calc((100% - var(--center-w)) / 2);background:#fff;display:block;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.side-left img{object-fit:cover;object-position:46% 38%;width:100%;max-width:none;height:100%;display:block}.side-left:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 80%,#ffffff80);position:absolute;inset:0}}.nav-group{text-align:center;color:#fff;background:linear-gradient(90deg, var(--magenta), var(--orange));clip-path:polygon(0 0,100% 0,calc(100% - 10px) 50%,100% 100%,0 100%,10px 50%);margin:0 0 8px;padding:8px 10px;font-size:15px;font-weight:900;line-height:1.3}.nav-side,.nav-chips ul,.nav-side ul{margin:0;padding:0;list-style:none}.nav-side{width:100%;max-width:260px}.nav-side ul{gap:8px;display:grid}.nav-side a{color:var(--ink);border:2px solid var(--teal);box-shadow:3px 3px 0 var(--kv-teal);background:#fffffff2;border-radius:6px;padding:9px 12px;font-size:15px;font-weight:800;line-height:1.4;text-decoration:none;transition:background .15s,color .15s,transform .15s;display:block}.nav-side a:hover,.nav-side a:focus-visible{color:#fff;background:var(--teal);transform:translate(-1px,-1px)}.nav-chips{margin:0 0 14px}.nav-chips .nav-group{display:none}.nav-chips ul{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.nav-chips a{color:var(--teal-dark);border:2px solid var(--teal);background:#fff;border-radius:6px;padding:5px 12px;font-size:14px;font-weight:800;text-decoration:none;display:block}.nav-chips a:hover,.nav-chips a:focus-visible{color:#fff;background:var(--teal)}@media (min-width:1024px){.nav-chips{display:none}}.cta-wrap{z-index:20;width:100%;max-width:720px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));pointer-events:none;filter:drop-shadow(0 3px 5px #3b2a3f59);position:fixed;bottom:0;left:50%;transform:translate(-50%)}@media (min-width:1024px){.cta-wrap{max-width:var(--center-w)}}.cta{pointer-events:auto;text-align:center;letter-spacing:.03em;color:#fff;text-shadow:0 1px 2px #780a328c;background:linear-gradient(90deg, var(--magenta), #f0457e 45%, var(--orange));clip-path:polygon(0 0,100% 0,calc(100% - 18px) 50%,100% 100%,0 100%,18px 50%);justify-content:center;align-items:center;min-height:52px;padding:8px 30px;font-size:clamp(15px,4.4vw,19px);font-weight:900;line-height:1.3;text-decoration:none;display:flex;position:relative;overflow:hidden}.cta span{position:relative}.cta-before{background:linear-gradient(90deg, var(--teal-dark), #3a8fe0)}.cta-after{background:linear-gradient(90deg,#6a5d70,#8c8092)}a.cta:focus-visible{outline-offset:-6px;outline:3px solid #fff}@media (prefers-reduced-motion:no-preference){a.cta:after{content:"";background:linear-gradient(100deg,#0000,#ffffff73,#0000);width:60px;animation:3.6s ease-in-out infinite cta-shine;position:absolute;top:0;bottom:0;left:-80px}}@keyframes cta-shine{0%,55%{transform:translate(0)}to{transform:translate(760px)}}.hero{text-align:center;padding:calc(18px + env(safe-area-inset-top)) 0 14px;isolation:isolate;position:relative}.hero-bg{z-index:-1;background:radial-gradient(circle at 12% 18%,#fffffff2 0 3px,#0000 4px),radial-gradient(circle at 86% 12%,#fffffff2 0 4px,#0000 5px),radial-gradient(circle at 74% 46%,#ffffffe6 0 2.5px,#0000 3.5px),radial-gradient(circle at 22% 58%,#ffffffe6 0 3px,#0000 4px),radial-gradient(circle at 8% 34%,#f6a7a08c 0 22px,#0000 23px),radial-gradient(circle at 92% 30%,#7fd6cf99 0 30px,#0000 31px),radial-gradient(circle at 80% 78%,#c9b6f08c 0 26px,#0000 27px),radial-gradient(circle at 14% 86%,#a9c4f58c 0 28px,#0000 29px),linear-gradient(#e3f7f5 0%,#f1ebff 55%,#fff0ee 100%);position:absolute;inset:0 -16px}@media (prefers-reduced-motion:no-preference){.hero-bg{animation:5s ease-in-out infinite alternate twinkle}}@keyframes twinkle{0%{filter:brightness()}to{filter:brightness(1.06)saturate(1.1)}}.hero-logo{width:min(70vw,300px);margin:0 auto 8px}.hero-logo img{width:100%;display:block}.emblem{font-variant-numeric:lining-nums;letter-spacing:.24em;color:var(--teal-dark);justify-content:center;align-items:center;gap:10px;margin:4px auto 6px;font-family:Times New Roman,Times,Hiragino Mincho ProN,serif;font-size:clamp(13px,3.6vw,16px);font-style:italic;font-weight:700;display:flex}.emblem:before,.emblem:after{content:"";background:linear-gradient(90deg, transparent, var(--teal));flex:0 56px;height:2px}.emblem:after{background:linear-gradient(270deg, transparent, var(--teal))}.emblem-orn{color:var(--magenta);letter-spacing:0;font-size:.95em;font-style:normal}.emblem-text{white-space:nowrap}.hero-title{flex-direction:column;align-items:center;gap:2px;margin:4px 0 14px;line-height:1.25;display:flex}.hero-main,.hero-sub{white-space:nowrap;paint-order:stroke fill;-webkit-text-stroke:7px #fff;font-weight:900;display:block}.hero-main{color:var(--magenta);letter-spacing:.02em;text-shadow:0 3px #d6185f40,0 6px 14px #d6185f40;font-size:clamp(22px,7.6vw,40px)}.hero-sub{color:#e07a00;-webkit-text-stroke-width:6px;font-size:clamp(15px,4.6vw,23px)}.hero-kv{background:#fff;border:4px solid #fff;border-radius:24px;margin:0 auto;overflow:hidden;box-shadow:0 8px 26px #7864aa40}.hero-kv img{width:100%;height:auto;display:block}.period{border:2px solid var(--magenta);background:#fff;border-radius:6px;align-items:center;gap:10px;margin:10px 0 14px;padding:8px 12px 8px 0;display:flex}.period-label{color:#fff;background:var(--magenta);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%);flex:none;margin-left:-2px;padding:6px 22px 6px 16px;font-size:15px;font-weight:900;line-height:1.3}.period-text{text-align:center;flex:1;min-width:0;font-size:15px;font-weight:800;line-height:1.5}.period-text span{white-space:nowrap}.panel{background:linear-gradient(#fff, #fff) padding-box, var(--frame) border-box;border:5px solid #0000;border-radius:28px;margin:30px 0 34px;padding:18px 14px 26px;scroll-margin-top:14px;position:relative;box-shadow:0 5px 18px #7864aa24}.panel:after{content:"✦ ✦ ✦";letter-spacing:.3em;white-space:nowrap;color:var(--kv-coral);background:#fff;border-radius:999px;padding:0 10px;font-size:14px;line-height:1.2;position:absolute;bottom:-15px;left:50%;transform:translate(-50%)}.panel-title{text-align:center;color:var(--magenta);flex-direction:column;align-items:center;gap:2px;margin:0 0 14px;font-size:clamp(20px,5.6vw,26px);font-weight:900;line-height:1.35;display:flex}.panel-mark{width:26px;height:26px}.panel-title span{padding:0 26px;position:relative}.panel-title span:before,.panel-title span:after{content:"✦";color:var(--teal);font-size:.6em;position:absolute;top:50%;transform:translateY(-50%)}.panel-title span:before{left:4px}.panel-title span:after{right:4px}.lead{text-align:center;margin:0 0 14px}.intro{overflow-wrap:anywhere;margin:0 0 14px;font-weight:700;line-height:1.8}.about{gap:8px;margin:0 0 16px;display:grid}.about>div{border-left:6px solid var(--teal);background:#f6fbfb;border-radius:12px;padding:8px 14px}.about dt{color:var(--teal-dark);font-size:13px;font-weight:800}.about dd{overflow-wrap:anywhere;margin:0;font-weight:700}.reward{text-align:center;border:3px solid var(--magenta);background:#fff9e0;border-radius:16px;overflow:hidden}.reward-bar{letter-spacing:.12em;color:#fff;background:linear-gradient(90deg, var(--magenta), #ef4a82);margin:0;padding:6px 10px;font-size:18px;font-weight:900}.reward-bar span{color:#ffe26a}.reward-main{color:var(--magenta);flex-direction:column;align-items:center;margin:0;padding:14px 8px 4px;font-size:clamp(22px,7vw,30px);font-weight:900;line-height:1.35;display:flex}.reward-main span{white-space:nowrap;background:linear-gradient(#0000 62%,#ffe26a 62%)}.reward-note{text-wrap:balance;color:var(--muted);margin:0;padding:4px 12px 12px;font-size:13px;font-weight:700}.steps{counter-reset:step;gap:10px;margin:0 0 14px;padding:0;list-style:none;display:grid}.steps li{counter-increment:step;background:#f6fbfb;border-radius:14px;align-items:center;gap:12px;padding:10px 12px;font-weight:800;display:flex}.steps li:before{content:counter(step);color:#fff;background:linear-gradient(135deg, var(--magenta), var(--orange));border-radius:50%;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:18px;font-weight:900;display:flex}.rule{text-wrap:balance;text-align:center;background:var(--pastel-coral);border-radius:12px;margin:0 0 12px;padding:8px 10px;font-size:14.5px;font-weight:700}.rule strong{color:var(--magenta);font-size:1.15em}.tags{flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tags li{color:var(--teal-dark);background:var(--pastel-teal);border-radius:999px;padding:3px 12px;font-size:14px;font-weight:800}.banner{text-align:center;color:#fff;border:3px solid #fff;border-radius:16px;flex-direction:column;align-items:center;gap:2px;margin:0 0 6px;padding:12px 14px;display:flex;box-shadow:0 4px 14px #7864aa38}.banner strong{font-size:20px;font-weight:900}.banner span{font-size:14px}.banner-open{background:linear-gradient(90deg,#c4104f,#d96a00)}.banner-before{background:linear-gradient(90deg, var(--teal-dark), #2f7fd0)}.banner-after{background:linear-gradient(90deg,#6a5d70,#8c8092)}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;margin:0;padding:0;list-style:none;display:grid}@media (min-width:600px) and (max-width:1023px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.grid li{--accent:var(--magenta);--accent-soft:#f6b5cf}.grid li:nth-child(3n+2){--accent:var(--teal);--accent-soft:#a6e3de}.grid li:nth-child(3n){--accent:var(--orange);--accent-soft:#fbd3a2}.card{appearance:none;width:100%;height:100%;font:inherit;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff;border:0;border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:10px 8px 12px;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 3px 10px #7864aa33}.card:hover,.card:focus-visible{outline:3px solid var(--accent);outline-offset:2px;transform:translateY(-3px);box-shadow:0 8px 18px #7864aa4d}.card:active{transform:scale(.97)}.card-icon{aspect-ratio:1;border:3px solid var(--accent);width:calc(100% - 10px);height:auto;box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--accent-soft);background:#fff;border-radius:6px;margin:5px}.card-name{text-align:center;overflow-wrap:anywhere;word-break:keep-all;font-size:15px;font-weight:900;line-height:1.35}.btn{appearance:none;min-height:48px;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;border:3px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:10px 22px;font-size:16px;font-weight:800;text-decoration:none;display:inline-flex}.btn-primary{color:#fff;background:linear-gradient(90deg, var(--magenta), #ef4a82);box-shadow:0 4px #a30f46}.btn-primary:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px #a30f46}.btn-x{color:#fff;background:#111;box-shadow:0 4px #000}.btn-ghost{color:var(--ink);background:#fff;border-color:#e3d8e6}.btn:disabled{cursor:not-allowed;color:#fff;box-shadow:none;background:#bdb2c1;border-color:#0000}.btn:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.btn-wide{width:100%}.btn-row{gap:10px;display:flex}.btn-row .btn{flex:1;padding-left:10px;padding-right:10px}.share-site{max-width:420px;margin:0 auto;display:flex}.modal{background:linear-gradient(#fff, #fff) padding-box, var(--frame) border-box;width:min(440px,100% - 32px);max-height:calc(100dvh - 32px);color:var(--ink);overscroll-behavior:contain;border:5px solid #0000;border-radius:28px;margin:auto;padding:0;overflow:auto;box-shadow:0 12px 48px #00000059}.modal::backdrop{background:#3b2a3f99}.modal-body{padding:20px 18px calc(18px + env(safe-area-inset-bottom));text-align:center;flex-direction:column;gap:12px;display:flex}.modal-icon{aspect-ratio:1;border:4px solid var(--magenta);border-radius:8px;width:min(70%,280px);height:auto;margin:0 auto;box-shadow:0 0 0 4px #fff,0 0 0 7px #f6b5cf}.modal-icon-sm{width:min(50%,200px)}.modal-name{color:var(--magenta);overflow-wrap:anywhere;margin:0;font-size:22px;font-weight:900;line-height:1.4}.modal-profile{text-align:left;white-space:pre-wrap;margin:0;font-size:15px}.confirm-text,.done-title{overflow-wrap:anywhere;margin:0 0 4px;font-size:19px;font-weight:900;line-height:1.5}.done-title{color:var(--magenta);font-size:22px}.msg{background:var(--pastel-teal);border-radius:12px;margin:0;padding:10px 12px;font-size:15px;font-weight:700}.msg-error{background:var(--pastel-coral);color:#a30f2e}.msg-notice{background:#fff4d9;font-size:14px}.footer{text-align:center;padding:10px 0 8px;font-size:14px}.footer p{margin:4px 0}.copyright{color:var(--muted);overflow-wrap:anywhere;font-size:12px}.notice{padding-top:calc(16px + env(safe-area-inset-top))}.notice .hero-logo{margin-bottom:4px}.notice-campaign{color:var(--magenta);text-align:center;flex-direction:column;align-items:center;margin:0 0 6px;font-size:16px;font-weight:900;line-height:1.4;display:flex}.notice-campaign span:last-child{color:#c76a00;font-size:13px}.notice section{border:3px solid var(--kv-blue);background:#fff;border-radius:18px;margin:14px 0;padding:4px 16px 10px}.notice h2{color:var(--magenta);margin:12px 0 6px;font-size:18px}.notice-title{text-align:center;color:var(--magenta);margin:10px 0;font-size:clamp(22px,6vw,28px)}.notice ul{margin:6px 0;padding-left:1.3em}.notice p{margin:6px 0}.notice .lead{text-align:left}.back{text-align:center}.draft-banner{text-align:center;color:#5a3d00;background:#ffe26a;border:3px dashed #c98a00;border-radius:12px;margin-top:8px;padding:12px 14px;font-weight:900}.admin{background:#fff;max-width:720px;min-height:100vh;margin:0 auto;padding:20px 16px 40px}.admin-login{gap:12px;max-width:360px;display:grid}.admin-login input{border:2px solid #cbbfd0;border-radius:10px;width:100%;margin-top:4px;padding:10px;font-size:16px;display:block}.admin-actions{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.admin-table{border-collapse:collapse;width:100%}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid #e3d8e6;padding:8px 10px}.admin-table .num{text-align:right;font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){.card,.nav-side a{transition:none}}.human-check{min-height:0;margin:12px 0 4px}.human-check>div:empty{display:none}
