:root{--green: #06C167;--green-deep: #048C4A;--green-dark: #03351F;--mint: #F2FBF6;--mint-2: #E4F6EC;--line: #06C755;--paypay: #FF0033;--text: #16241D;--muted: #5B6B62;--white: #FFFFFF;--border: #DCEDE2;--shadow: 0 10px 30px rgba(4, 140, 74, .12);--shadow-sm: 0 4px 14px rgba(4, 140, 74, .1);--radius: 22px;--radius-sm: 16px;--max: 480px;--font: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);color:var(--text);background:var(--mint);line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}a{color:inherit}.wrap{max-width:var(--max);margin-inline:auto;padding-inline:20px;width:100%}section{padding-block:56px;position:relative}h2.title{font-size:24px;font-weight:800;line-height:1.4;text-align:center;letter-spacing:.01em}.title .accent{color:var(--green-deep)}.eyebrow{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.14em;color:var(--green-deep);background:var(--mint-2);padding:6px 14px;border-radius:999px;margin-bottom:14px}.center{text-align:center}.lead{color:var(--muted);font-size:15px;margin-top:12px}header{position:sticky;top:0;z-index:50;background:#ffffffdb;-webkit-backdrop-filter:saturate(160%) blur(12px);backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--border)}.header-inner{display:flex;align-items:center;justify-content:space-between;height:60px}.logo{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--text)}.logo-name{font-weight:800;font-size:14px;letter-spacing:.01em;line-height:1.15;white-space:nowrap}.logo-name small{display:block;font-weight:600;font-size:9.5px;color:var(--muted);letter-spacing:.08em;margin-top:-1px}.header-actions{display:flex;align-items:center;gap:10px}.link-mini{display:none;font-size:13px;font-weight:700;color:var(--green-deep);text-decoration:none;white-space:nowrap}.btn-mini{display:inline-flex;align-items:center;gap:6px;background:var(--line);color:#fff;text-decoration:none;font-weight:800;font-size:13px;padding:9px 14px;border-radius:999px;box-shadow:var(--shadow-sm);white-space:nowrap}@media (min-width: 440px){.link-mini{display:inline-flex}}.hello{display:none;font-size:13px;color:var(--muted);font-weight:700;white-space:nowrap}@media (min-width: 440px){.hello{display:inline}}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--muted);font-weight:700;font-size:13px;padding:8px 14px;border-radius:999px;cursor:pointer;font-family:var(--font);white-space:nowrap}.btn-ghost:hover{background:var(--mint-2)}.hero{background:radial-gradient(120% 80% at 85% -10%,#0bd97a22,transparent 60%),linear-gradient(180deg,#ffffff 0%,var(--mint) 70%);padding-top:44px;padding-bottom:48px;text-align:center}.hero h1{font-size:32px;line-height:1.32;font-weight:900;letter-spacing:.005em}.hero h1 .hl{color:var(--green-deep);position:relative;white-space:nowrap}.hero h1 .hl:after{content:"";position:absolute;left:-2px;right:-2px;bottom:4px;height:11px;background:#9af0c5;opacity:.55;z-index:-1;border-radius:3px}.yen{color:var(--paypay)}.hero p.sub{color:var(--muted);font-size:15.5px;margin-top:16px}.badges{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:18px}.badge{font-size:12px;font-weight:700;color:var(--green-deep);background:#fff;border:1px solid var(--border);padding:6px 12px;border-radius:999px;box-shadow:var(--shadow-sm)}.hero-visual{margin:30px auto 8px;width:230px;max-width:80%}.ring-card{background:#fff;border-radius:28px;padding:24px 20px;box-shadow:var(--shadow);border:1px solid var(--border)}.ring-card .pp,.progress-card .pp{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:12px;color:#fff;background:var(--paypay);padding:5px 11px;border-radius:999px;margin-bottom:14px;letter-spacing:.02em}.dots{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-top:4px}.dot{aspect-ratio:1;border-radius:50%;border:2px solid var(--mint-2);display:flex;align-items:center;justify-content:center;font-size:12px;color:#b9ccc2}.dot.on{background:var(--green);border-color:var(--green);color:#fff;font-weight:800;box-shadow:0 4px 10px #06c16766}.ring-card .count{margin-top:16px;font-weight:900;font-size:15px}.ring-card .count b{color:var(--green-deep);font-size:21px}.cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--line);color:#fff;text-decoration:none;font-weight:900;font-size:17px;padding:17px 28px;border-radius:999px;box-shadow:0 12px 28px #06c7556b;transition:transform .15s ease,box-shadow .15s ease;width:100%;max-width:340px;letter-spacing:.02em;border:none;cursor:pointer;font-family:var(--font)}.cta:hover{transform:translateY(-2px);box-shadow:0 16px 34px #06c75580}.cta:active{transform:translateY(0)}.cta:disabled{opacity:.6;cursor:default;transform:none}.cta svg{flex:none}.cta-note{display:block;font-size:12px;color:var(--muted);margin-top:12px}.cta-wrap{margin-top:30px;display:flex;flex-direction:column;align-items:center}.steps{display:flex;flex-direction:column;gap:16px;margin-top:30px}.step{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:22px 20px 22px 22px;display:flex;gap:16px;align-items:flex-start;box-shadow:var(--shadow-sm)}.step-num{flex:none;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--green),var(--green-deep));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:19px;box-shadow:0 6px 14px #06c16759}.step h3{font-size:16.5px;font-weight:800;margin-bottom:4px}.step p{font-size:14px;color:var(--muted)}.step .emoji{font-size:18px;margin-left:2px}.reward{background:linear-gradient(180deg,var(--mint) 0%,#fff 100%)}.formula{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:26px}.chip{background:#fff;border:1px solid var(--border);border-radius:18px;padding:16px 14px;text-align:center;box-shadow:var(--shadow-sm);min-width:96px}.chip .big{font-weight:900;font-size:22px;color:var(--green-deep);display:block}.chip .lbl{font-size:11.5px;color:var(--muted);font-weight:700;margin-top:3px}.chip.pp .big{color:var(--paypay)}.op{font-weight:900;font-size:22px;color:#9fb8aa}.progress-demo{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:22px 20px;margin-top:26px;box-shadow:var(--shadow-sm)}.progress-demo .row{display:flex;justify-content:space-between;align-items:baseline;font-weight:800;font-size:14px}.progress-demo .row .now b{color:var(--green-deep);font-size:18px}.bar{height:14px;border-radius:999px;background:var(--mint-2);margin-top:12px;overflow:hidden}.bar>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green),var(--green-deep))}.progress-demo .hint{font-size:13px;color:var(--muted);margin-top:12px;text-align:center;font-weight:700}.progress-demo .hint b{color:var(--green-deep)}.benefits-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px}.bcard{background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);padding:20px 16px;box-shadow:var(--shadow-sm)}.bcard .ic{width:46px;height:46px;border-radius:14px;background:var(--mint-2);display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:12px}.bcard h3{font-size:14.5px;font-weight:800;margin-bottom:5px;line-height:1.4}.bcard p{font-size:12.5px;color:var(--muted);line-height:1.6}.notes{background:#fff}.note-box{background:var(--mint);border:1px dashed var(--green);border-radius:var(--radius-sm);padding:20px;margin-top:22px}.note-box h3{font-size:14px;font-weight:800;margin-bottom:12px;display:flex;align-items:center;gap:7px}.note-box ul{list-style:none;display:flex;flex-direction:column;gap:9px}.note-box li{font-size:13px;color:var(--muted);display:flex;gap:9px;align-items:flex-start;line-height:1.6}.note-box li:before{content:"✓";color:var(--green-deep);font-weight:900;flex:none}.faq{display:flex;flex-direction:column;gap:12px;margin-top:28px}.qa{background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-sm)}.qa summary{list-style:none;cursor:pointer;padding:18px;font-weight:800;font-size:14.5px;display:flex;align-items:center;gap:12px}.qa summary::-webkit-details-marker{display:none}.qa summary .q{flex:none;color:var(--green-deep);font-weight:900;font-size:16px}.qa summary .plus{margin-left:auto;flex:none;width:22px;height:22px;position:relative;transition:transform .25s ease}.qa summary .plus:before,.qa summary .plus:after{content:"";position:absolute;background:var(--green-deep);border-radius:2px}.qa summary .plus:before{top:10px;left:3px;right:3px;height:2px}.qa summary .plus:after{left:10px;top:3px;bottom:3px;width:2px;transition:opacity .25s ease}.qa[open] summary .plus{transform:rotate(180deg)}.qa[open] summary .plus:after{opacity:0}.qa .a{padding:0 18px 18px 46px;font-size:13.5px;color:var(--muted);line-height:1.75}.final{background:linear-gradient(160deg,var(--green-deep),var(--green-dark));text-align:center;color:#fff}.final h2{font-size:24px;font-weight:900;line-height:1.45}.final .yen{color:#7dffba}.final p{color:#cdeede;font-size:14.5px;margin-top:12px}.final .cta{margin-top:28px;background:#fff;color:var(--green-deep)}.final .cta-note{color:#bfe6d2}footer{background:var(--green-dark);color:#9fc9b3;padding-block:34px;text-align:center}footer .logo-name{color:#fff}footer .fnav{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin:18px 0;font-size:13px}footer a{color:#bfe6d2;text-decoration:none}footer a:hover{text-decoration:underline}footer .copy{font-size:11.5px;color:#6f9c83;margin-top:8px}.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}@media (min-width: 520px){.hero h1{font-size:36px}h2.title{font-size:27px}}.app-shell{min-height:100vh;background:var(--mint)}.app-main{padding-block:24px 56px;display:flex;flex-direction:column;gap:22px}.page-loading{min-height:100vh;display:flex;align-items:center;justify-content:center}.spinner{width:38px;height:38px;border:4px solid var(--mint-2);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:24px 20px;box-shadow:var(--shadow-sm)}.progress-card{text-align:center;display:flex;flex-direction:column;align-items:center}.progress-card .dots{width:100%}.progress-count{margin-top:16px;font-weight:800;font-size:15px}.progress-count b{color:var(--green-deep);font-size:24px}.progress-msg{font-size:14px;color:var(--muted);font-weight:700;margin:8px 0 18px}.progress-msg b,.progress-msg.done{color:var(--green-deep)}.card-note{font-size:12px;color:var(--muted);margin-top:12px}.flash{border-radius:var(--radius-sm);padding:14px 16px;font-size:14px;font-weight:700}.flash-success{background:var(--mint-2);color:var(--green-deep);border:1px solid var(--green)}.flash-error{background:#fdecef;color:#c20029;border:1px solid #ffb3c1}.list-section{display:flex;flex-direction:column;gap:12px}.list-title{font-size:16px;font-weight:800}.muted{color:var(--muted);font-size:14px}.empty{background:#fff;border:1px dashed var(--border);border-radius:var(--radius-sm);padding:28px 20px;text-align:center;color:var(--muted);font-size:14px;display:flex;flex-direction:column;gap:10px}.link-accent{color:var(--green-deep);font-weight:800;text-decoration:none}.receipt-list{list-style:none;display:flex;flex-direction:column;gap:10px}.receipt-item{background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:var(--shadow-sm)}.ri-main{display:flex;flex-direction:column;gap:2px;min-width:0}.ri-store{font-weight:800;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}.ri-date{font-size:12px;color:var(--muted)}.ri-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}.ri-amount{font-weight:900;font-size:15px;color:var(--green-deep)}.badge-status{font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px}.badge-status.approved{background:var(--mint-2);color:var(--green-deep)}.badge-status.rewarded{background:#eef;color:#4a5;background:#e8f0ff;color:#2a5bd7}.badge-status.pending{background:#fff4e0;color:#c47d00}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#03351f73;display:flex;align-items:flex-end;justify-content:center;z-index:100;padding:16px}.modal{background:#fff;border-radius:24px;padding:26px 22px;width:100%;max-width:440px;box-shadow:var(--shadow)}.modal h3{font-size:18px;font-weight:900}.modal-sub{font-size:13px;color:var(--muted);margin:8px 0 16px}.modal-input{width:100%;padding:14px 16px;border:1px solid var(--border);border-radius:14px;font-size:16px;font-family:var(--font)}.modal-input:focus{outline:none;border-color:var(--green)}.modal-actions{display:flex;gap:10px;margin-top:18px}.modal-actions .btn-ghost,.modal-actions .btn-primary{flex:1;padding:14px;border-radius:999px;font-weight:800;font-size:15px;cursor:pointer;font-family:var(--font)}.btn-primary{background:var(--green);color:#fff;border:none}.btn-primary:disabled{opacity:.55;cursor:default}@media (min-width: 520px){.modal-backdrop{align-items:center}}.center-shell{display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{background:#fff;border:1px solid var(--border);border-radius:26px;padding:36px 26px;box-shadow:var(--shadow);width:100%;max-width:420px;text-align:center}.auth-logo{display:inline-flex}.auth-card h1{font-size:21px;font-weight:900;margin-top:14px}.auth-sub{font-size:14px;color:var(--muted);margin-top:8px}.auth-form{margin-top:22px;display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:7px;text-align:left}.field>span{font-size:13px;font-weight:700;color:var(--text)}.field input{width:100%;padding:14px 16px;border:1px solid var(--border);border-radius:14px;font-size:16px;font-family:var(--font)}.field input:focus{outline:none;border-color:var(--green)}.line-cta{background:var(--line)}.auth-note{font-size:11.5px;color:var(--muted);margin-top:16px}.auth-note code{background:var(--mint-2);padding:1px 5px;border-radius:5px;font-size:11px}.line-cta{margin-top:22px}.demo-form{margin-top:8px}.demo-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px;font-weight:700}.demo-divider:before,.demo-divider:after{content:"";flex:1;height:1px;background:var(--border)}.demo-btn{width:100%}.back-link{display:inline-block;margin-top:18px;color:var(--green-deep);font-weight:700;font-size:13px;text-decoration:none}.form-error{color:#c20029;font-size:13px;font-weight:700}.upload-title{font-size:18px;font-weight:900}.upload-sub{font-size:13px;color:var(--muted);margin:8px 0 18px}.upload-drop{display:flex;align-items:center;justify-content:center;width:100%;min-height:180px;border:2px dashed var(--green);border-radius:var(--radius-sm);background:var(--mint);cursor:pointer;overflow:hidden;margin-bottom:16px}.upload-placeholder{text-align:center;color:var(--green-deep);font-weight:800;font-size:14px;line-height:1.9}.upload-preview{width:100%;max-height:320px;object-fit:contain}.manual{margin-bottom:16px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 14px}.manual summary{cursor:pointer;padding:14px 0;font-weight:800;font-size:14px;color:var(--green-deep)}.manual-note{font-size:11.5px;color:var(--muted);padding-bottom:12px;line-height:1.6}.manual .field{margin-bottom:12px}.upload-title+form,.card form{display:block}.success-card{text-align:center;display:flex;flex-direction:column;align-items:center}.success-emoji{font-size:48px}.success-card h2{font-size:20px;font-weight:900;margin:10px 0 18px}.success-receipt{width:100%;background:var(--mint);border-radius:var(--radius-sm);padding:16px;display:flex;flex-direction:column;gap:10px}.success-receipt>div{display:flex;justify-content:space-between;font-size:14px;font-weight:700}.sr-label{color:var(--muted);font-weight:700}.success-progress{font-size:14px;color:var(--muted);margin:18px 0;font-weight:700}.success-progress b{color:var(--green-deep);font-size:18px}.admin-shell{min-height:100vh;background:#f4f7f5}.admin-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f4f7f5}.admin-topbar{background:var(--green-dark);color:#fff;position:sticky;top:0;z-index:50}.admin-topbar-inner{max-width:1120px;margin-inline:auto;padding:0 24px;height:58px;display:flex;align-items:center;gap:28px}.admin-brand{font-weight:900;font-size:16px;white-space:nowrap}.admin-brand span{font-size:10px;font-weight:700;color:#7dffba;letter-spacing:.12em;margin-left:4px;vertical-align:middle}.admin-nav{display:flex;gap:6px;flex:1;flex-wrap:wrap}.admin-nav a{color:#bfe6d2;text-decoration:none;font-weight:700;font-size:13.5px;padding:8px 13px;border-radius:9px;white-space:nowrap}.admin-nav a:hover{background:#ffffff14;color:#fff}.admin-nav a.active{background:var(--green);color:#fff}.admin-user{display:flex;align-items:center;gap:12px;white-space:nowrap}.admin-user span{font-size:13px;color:#cdeede}.admin-user button{background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;font-weight:700;font-size:12.5px;padding:7px 13px;border-radius:999px;cursor:pointer;font-family:var(--font)}.admin-user button:hover{background:#ffffff1f}.admin-content{max-width:1120px;margin-inline:auto;padding:28px 24px 64px}.admin-h1{font-size:22px;font-weight:900;color:var(--text);margin-bottom:20px}.admin-h2{font-size:15px;font-weight:800;color:var(--text);margin:24px 0 12px}.admin-sub{margin-top:-12px;margin-bottom:20px}.admin-muted{color:var(--muted);font-size:14px}.admin-muted.center{text-align:center;padding:28px 0}.admin-error{background:#fdecef;color:#c20029;border:1px solid #ffb3c1;border-radius:12px;padding:12px 16px;font-size:14px;font-weight:700;margin-bottom:16px}.admin-clean{background:var(--mint-2);color:var(--green-deep);border:1px solid var(--green);border-radius:12px;padding:16px;font-weight:800}.admin-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.admin-stat{background:#fff;border:1px solid #e2ece6;border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:6px;box-shadow:0 2px 8px #048c4a0d}.admin-stat-value{font-size:26px;font-weight:900;color:var(--text)}.admin-stat-label{font-size:12.5px;color:var(--muted);font-weight:700}.admin-stat.ok .admin-stat-value{color:var(--green-deep)}.admin-stat.bad .admin-stat-value{color:#c20029}.admin-stat.warn .admin-stat-value{color:#c47d00}@media (max-width: 860px){.admin-stat-grid{grid-template-columns:repeat(2,1fr)}}.admin-toolbar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.admin-toolbar select,.admin-toolbar input{border:1px solid #d6e3db;border-radius:10px;padding:9px 12px;font-size:14px;font-family:var(--font);background:#fff}.admin-toolbar input{flex:1;min-width:220px}.admin-toolbar select:focus,.admin-toolbar input:focus{outline:none;border-color:var(--green)}.admin-table-wrap{background:#fff;border:1px solid #e2ece6;border-radius:14px;overflow:auto;box-shadow:0 2px 8px #048c4a0d}.admin-table{width:100%;border-collapse:collapse;font-size:13.5px}.admin-table th,.admin-table td{padding:12px 14px;text-align:left;border-bottom:1px solid #eef3f0;white-space:nowrap;vertical-align:middle}.admin-table th{background:#f7faf8;font-weight:800;color:var(--muted);font-size:12px;letter-spacing:.02em}.admin-table tr:last-child td{border-bottom:none}.admin-table .num{text-align:right}.admin-table td.num{font-weight:800}.admin-table .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--muted)}.admin-table .mono.small{font-size:11px;word-break:break-all;white-space:normal;max-width:420px}.admin-thumb{width:44px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--border);display:block}.admin-badge{display:inline-block;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px}.admin-badge.approved{background:var(--mint-2);color:var(--green-deep)}.admin-badge.rejected{background:#fdecef;color:#c20029}.admin-badge.pending,.admin-badge.requested{background:#fff4e0;color:#c47d00}.admin-badge.paid{background:#e8f0ff;color:#2a5bd7}.admin-badge.rewarded{background:#e8f0ff;color:#2a5bd7;margin-left:6px}.admin-actions{display:flex;gap:8px}.admin-actions button{border:none;border-radius:8px;padding:7px 12px;font-weight:800;font-size:12.5px;cursor:pointer;font-family:var(--font)}.admin-btn-ok{background:var(--green);color:#fff}.admin-btn-bad{background:#fff;color:#c20029;border:1px solid #ffb3c1!important}.admin-actions button:disabled{opacity:.4;cursor:default}.admin-section{margin-top:8px}.admin-login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--green-dark);padding:24px}.admin-login-card{background:#fff;border-radius:20px;padding:36px 30px;width:100%;max-width:380px;box-shadow:var(--shadow);display:flex;flex-direction:column}.admin-login-card h1{font-size:20px;font-weight:900}.admin-login-sub{font-size:13px;color:var(--muted);margin:6px 0 22px}.admin-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.admin-field span{font-size:13px;font-weight:700}.admin-field input{border:1px solid #d6e3db;border-radius:12px;padding:13px 14px;font-size:16px;font-family:var(--font)}.admin-field input:focus{outline:none;border-color:var(--green)}.admin-btn-primary{background:var(--green);color:#fff;border:none;border-radius:999px;padding:14px;font-weight:800;font-size:15px;cursor:pointer;font-family:var(--font);margin-top:6px}.admin-btn-primary:disabled{opacity:.6;cursor:default}
