:root{--porcelain:#fbf8f9;--surface:#fff;--mist:#f2ecef;--mist2:#f7f2f4;--ink:#221d24;--ink-soft:#6a616c;--ink-faint:#a89faa;--line:#ece3e7;--line2:#e2d7dc;--rouge:#be264c;--rouge-press:#a11f41;--rouge-deep:#8e1d3a;--rouge-soft:#fbe6eb;--r-sm:12px;--r-md:16px;--r-lg:22px;--e-card:0 1px 3px rgba(34,29,36,.05),0 6px 18px rgba(34,29,36,.04);--e-pop:0 8px 22px rgba(190,38,76,.22);--sans:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",system-ui,sans-serif;--serif:"Cormorant Garamond","Noto Serif JP","Hiragino Mincho ProN",serif}@media (prefers-color-scheme:dark){:root{--porcelain:#161318;--surface:#211b24;--mist:#2a242e;--mist2:#241e28;--ink:#f1ebf1;--ink-soft:#aba1ac;--ink-faint:#6f6571;--line:hsla(0,0%,100%,.1);--line2:hsla(0,0%,100%,.14);--rouge:#ec5e7c;--rouge-press:#f07d95;--rouge-deep:#f2a7b7;--rouge-soft:rgba(236,94,124,.18)}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{height:100%}body{margin:0;background:#e9e2e6;color:var(--ink);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){body{background:#0e0c10}}button{font:inherit;color:inherit;cursor:pointer}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}:focus-visible{outline:2.5px solid var(--rouge);outline-offset:2px;border-radius:6px}.ic{width:1em;height:1em;display:inline-block;vertical-align:-.13em;stroke:currentColor;fill:none}.app{max-width:480px;margin:0 auto;height:100dvh;min-height:560px;background:var(--porcelain);display:flex;flex-direction:column;position:relative;box-shadow:0 0 40px rgba(0,0,0,.06)}.content{flex:1 1;min-height:0;overflow-y:auto;padding:0 18px;-webkit-overflow-scrolling:touch}.content::-webkit-scrollbar{display:none}.boot{height:100%}.foot-space{height:18px}.blend{display:inline-flex;align-items:center}.blend .c{border-radius:50%;flex-shrink:0;display:block}.blend .c+.c{mix-blend-mode:multiply}.blend.lg .c{width:62px;height:62px}.blend.lg .c+.c{margin-left:-24px}.blend.md .c{width:38px;height:38px}.blend.md .c+.c{margin-left:-15px}.blend.sm .c{width:28px;height:28px}.blend.sm .c+.c{margin-left:-11px}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:var(--rouge);color:#fff;font-size:16px;font-weight:600;min-height:52px;border:none;border-radius:14px;box-shadow:var(--e-pop);margin-top:8px}.btn:disabled{opacity:.45;box-shadow:none}.textlink{display:block;width:100%;background:none;border:none;text-align:center;font-size:14px;font-weight:500;padding:14px}.seclbl,.textlink{color:var(--ink-soft)}.seclbl{font-size:13px;font-weight:700;letter-spacing:.04em;margin:20px 2px 10px}.tags{display:flex;gap:6px;flex-wrap:wrap}.tags.center{justify-content:center}.tag{font-size:11.5px;color:var(--ink-soft);background:var(--mist);padding:3px 10px;border-radius:10px}.lb{font-size:14.5px;font-weight:700;margin:22px 0 11px;display:flex;align-items:center;gap:8px}.req{font-size:11px;font-weight:600;color:#fff;background:var(--rouge);padding:2px 8px;border-radius:8px}.opt-note{font-size:12px;font-weight:400;color:var(--ink-faint)}.opts{display:flex;gap:9px;flex-wrap:wrap}.opt{font-size:14px;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line2);padding:10px 16px;border-radius:21px;min-height:42px}.opt.on{color:#fff;background:var(--rouge);border-color:var(--rouge)}.seg{display:flex;background:var(--mist);border-radius:var(--r-sm);padding:4px}.seg button{flex:1 1;background:none;border:none;font-size:14px;color:var(--ink-soft);padding:11px 0;border-radius:9px;min-height:44px}.seg button.on{background:var(--surface);color:var(--rouge-deep);font-weight:700;box-shadow:var(--e-card)}.ob-content{padding-bottom:28px}.ob-head{padding-top:46px}.wm{font-size:20px;letter-spacing:.16em;color:var(--rouge)}.ob-title,.wm{font-family:var(--serif);font-weight:600;text-align:center}.ob-title{font-size:25px;line-height:1.45;margin:22px 0 8px}.ob-sub{font-size:14px;color:var(--ink-soft);text-align:center;margin:0 auto;max-width:300px;line-height:1.7}.titlebar{padding:46px 0 4px}.ttl{font-family:var(--serif);font-size:27px;font-weight:600}.ttls{font-size:13.5px;color:var(--ink-soft);margin-top:3px}.chips{display:flex;gap:9px;overflow-x:auto;padding:14px 0 6px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;font-size:14px;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line2);padding:9px 17px;border-radius:22px;white-space:nowrap;min-height:40px}.chip.on{color:#fff;background:var(--rouge);border-color:var(--rouge)}.hero{display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:var(--e-card);margin:6px 0 4px}.hero .hh{gap:16px;margin-bottom:14px}.hero .hh,.medal{display:flex;align-items:center}.medal{width:88px;height:88px;border-radius:50%;background:radial-gradient(circle at 38% 34%,var(--mist2),var(--mist));justify-content:center;flex-shrink:0}.ht .k{font-size:12.5px;color:var(--rouge-deep)}.ht .k,.ht .t{font-weight:600}.ht .t{font-family:var(--serif);font-size:21px;line-height:1.3;margin:3px 0 6px}.hero-sum{font-size:13.5px;color:var(--ink-soft);line-height:1.65;margin:0 0 12px}.hero-cta{display:inline-flex;gap:5px;font-size:14px;font-weight:700;color:var(--rouge)}.cc,.hero-cta{align-items:center}.cc{display:flex;gap:14px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;margin-bottom:11px;box-shadow:var(--e-card)}.cc .ci{flex:1 1;min-width:0}.cc .ci .t{display:block;font-size:15.5px;font-weight:600;line-height:1.35}.cc .ci .m{display:block;font-size:12.5px;color:var(--ink-soft);margin-top:3px;line-height:1.5}.cc .chev{color:var(--ink-faint);font-size:19px;display:flex}.empty{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:22px;text-align:center;color:var(--ink-soft);font-size:13.5px;box-shadow:var(--e-card)}.topbar{padding:14px 0 4px}.bk,.topbar{display:flex;align-items:center}.bk{background:none;border:none;font-size:23px;color:var(--ink);width:44px;height:44px}.detail-head{display:flex;flex-direction:column;align-items:center;text-align:center;padding:4px 0 14px}.detail-head .medal{width:142px;height:142px;margin-bottom:16px}.detail-head .medal .blend.lg .c{width:84px;height:84px}.detail-head .medal .blend.lg .c+.c{margin-left:-32px}.detail-title{font-family:var(--serif);font-size:25px;font-weight:600;margin:0 0 8px}.detail-summary{font-size:14px;color:var(--ink-soft);line-height:1.7;margin:0 0 12px;max-width:300px}.steps{list-style:none;margin:0;padding:0}.step{display:flex;gap:13px;padding:9px 0;position:relative;align-items:flex-start}.step .num{width:30px;height:30px;border-radius:50%;background:var(--rouge);color:#fff;font-family:var(--serif);font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.step-sw{width:38px;height:38px;border-radius:11px;flex-shrink:0;box-shadow:inset 0 0 0 1.5px hsla(0,0%,100%,.5)}.step-body{flex:1 1;min-width:0;padding-top:1px}.step-cat{display:block;font-size:15px;font-weight:600;line-height:1.4}.step-attr{color:var(--rouge-deep);font-weight:600}.step-why{display:block;font-size:13px;color:var(--ink-soft);margin-top:2px;line-height:1.55}.generic-note{font-size:12.5px;color:var(--ink-faint);line-height:1.7;margin:18px 0 8px;padding:14px;background:var(--mist2);border-radius:var(--r-md)}.tabs{align-items:flex-end;flex-shrink:0;padding:9px 6px calc(12px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:saturate(160%) blur(18px);-webkit-backdrop-filter:saturate(160%) blur(18px);border-top:1px solid var(--line)}.tab,.tabs{display:flex}.tab{flex:1 1;flex-direction:column;align-items:center;gap:4px;background:none;border:none;color:var(--ink-faint);font-size:22px;min-height:48px;justify-content:center}.tab span{font-size:11px;font-weight:500}.tab.on{color:var(--rouge)}.tab.on span{font-weight:700}.state{flex-direction:column;text-align:center;padding:0 36px}.state,.state-em{display:flex;align-items:center;justify-content:center}.state-em{width:120px;height:120px;border-radius:50%;background:var(--mist);margin-bottom:24px}.state-em .blend.md{opacity:.55}.state-title{font-family:var(--serif);font-size:23px;font-weight:600;margin:0 0 10px}.state-body{font-size:14px;color:var(--ink-soft);line-height:1.7;max-width:280px}.admin{max-width:760px;margin:0 auto;padding:28px 18px 80px;min-height:100dvh}.admin-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.admin .wm{font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:.1em;color:var(--rouge)}.admin-sub{font-size:13px;color:var(--ink-soft);margin-top:4px}.ad-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:18px;margin-bottom:16px;box-shadow:var(--e-card)}.ad-h{font-family:var(--serif);font-size:18px;font-weight:600;margin:0 0 14px}.field{margin-bottom:16px}.field label{display:block;font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:8px}.ad-input{width:100%;background:var(--porcelain);border:1px solid var(--line2);border-radius:10px;padding:11px 12px;font:inherit;font-size:14px;color:var(--ink)}.ad-input::placeholder{color:var(--ink-faint)}.ad-input:focus{outline:none;border-color:var(--rouge)}.swrow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:8px}.swrow.tight{gap:5px;margin-bottom:0;margin-top:6px}.swlabel{font-size:12px;font-weight:700;color:var(--ink-soft);width:14px}.swdot{width:26px;height:26px;border-radius:50%;border:2px solid transparent;box-shadow:inset 0 0 0 1.5px hsla(0,0%,100%,.55);padding:0}.swdot.sm{width:20px;height:20px}.swdot.sel{border-color:var(--ink);transform:scale(1.08)}.steprow{display:flex;gap:10px;align-items:flex-start;padding:11px;border:1px solid var(--line);border-radius:12px;margin-bottom:9px;background:var(--mist2)}.stepnum{width:24px;height:24px;border-radius:50%;background:var(--rouge);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.stepfields{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:7px}.ad-x{width:26px;height:26px;border-radius:50%;color:var(--ink-soft);font-size:16px;line-height:1;flex-shrink:0}.ad-ghost,.ad-x{border:1px solid var(--line2);background:var(--surface)}.ad-ghost{color:var(--ink);font-size:13.5px;font-weight:600;padding:10px 14px;border-radius:11px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:6px}.ad-ghost.file{cursor:pointer}.ad-actions{display:flex;gap:10px;align-items:center;margin-top:6px}.ad-actions .btn{width:auto;flex:1 1;margin-top:0}.btn.sm{width:auto;min-height:42px;font-size:14px;padding:0 16px;margin-top:0}.ad-listhead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.ad-listhead .ad-h{margin:0}.ad-toolbar{display:flex;gap:8px;flex-wrap:wrap}.ad-list{list-style:none;margin:6px 0 0;padding:0}.ad-item{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line)}.ad-item-body{flex:1 1;min-width:0}.ad-item-t{display:block;font-size:15px;font-weight:600}.ad-item-m{display:block;font-size:12px;color:var(--ink-soft);margin-top:2px}.ad-textbtn{background:none;border:none;color:var(--rouge);font-size:13px;font-weight:700;padding:6px 8px}.ad-empty,.ad-textbtn.danger{color:var(--ink-faint)}.ad-empty{font-size:13.5px;padding:8px 0}.ad-json{width:100%;min-height:200px;background:var(--porcelain);border:1px solid var(--line2);border-radius:10px;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--ink);white-space:pre;overflow:auto}.ad-note{font-size:12.5px;color:var(--ink-soft);margin:0 0 10px;line-height:1.6}.ad-note code{background:var(--mist);padding:1px 6px;border-radius:5px;font-size:12px}.ad-msg{font-size:13px;margin-top:10px}.ad-msg,.ad-msg.banner{color:var(--rouge-deep)}.ad-msg.banner{background:var(--rouge-soft);padding:11px 14px;border-radius:11px;margin:0 0 14px;font-weight:600}.admin-gate{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.gate-card{width:100%;max-width:340px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;box-shadow:var(--e-card);text-align:center}.gate-card .wm{font-family:var(--serif);font-size:21px;font-weight:600;letter-spacing:.1em;color:var(--rouge)}.gate-sub{font-size:14px;color:var(--ink-soft);margin:8px 0 18px}.gate-card .ad-input{margin-bottom:12px;text-align:center}.gate-card .btn{margin-top:0}.gate-note{font-size:11.5px;color:var(--ink-faint);line-height:1.6;margin-top:16px}.gen-badge{display:inline-block;font-size:11.5px;font-weight:700;color:var(--rouge);background:var(--rouge-soft);padding:4px 11px;border-radius:11px;margin-bottom:8px}.hints{list-style:none;margin:0;padding:0}.hint-item{display:flex;align-items:baseline;gap:10px;padding:11px 0;border-top:1px solid var(--line)}.hint-name{font-size:14.5px;font-weight:600;flex-shrink:0}.hint-reason{font-size:12.5px;color:var(--ink-soft)}.searchbox{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line2);border-radius:13px;padding:0 13px;margin:8px 0 2px}.searchbox .ic{color:var(--ink-faint);font-size:18px}.search-input{flex:1 1;border:none;background:none;font:inherit;font-size:15px;color:var(--ink);padding:13px 0;outline:none}.search-input::placeholder{color:var(--ink-faint)}.filt{margin-top:15px}.filt-lb{font-size:13px;font-weight:700;color:var(--ink-soft);margin-bottom:9px}.cover{display:flex;align-items:center;gap:8px;margin:5px 0 1px}.cover-bar{flex:1 1;height:6px;background:var(--mist);border-radius:3px;overflow:hidden;max-width:150px}.cover-fill{display:block;height:100%;background:var(--rouge);border-radius:3px}.cover-pct{font-size:12px;font-weight:700;color:var(--rouge-deep)}.box-cc .ci .m{margin-top:2px;font-size:12px}.admtabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.admtab{background:var(--surface);border:1px solid var(--line2);color:var(--ink-soft);font-size:14px;font-weight:600;padding:9px 16px;border-radius:11px;min-height:42px}.admtab.on{background:var(--rouge);color:#fff;border-color:var(--rouge)}