@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans+JP:wght@400;500;700&family=Space+Mono:wght@400;700&display=swap";:root{--font-ui:"Plus Jakarta Sans", -apple-system, system-ui, sans-serif;--font-jp:"Noto Sans JP", "Plus Jakarta Sans", sans-serif;--font-mono:"Space Mono", ui-monospace, monospace;--bg:#f4f7fb;--surface:#fff;--surface-2:#eff3f9;--surface-3:#e6ecf4;--ink:#16202e;--ink-2-solid:#516073;--ink-3:#93a0b2;--line:#e7ecf3;--line-strong:#d5deea;--blue:#2e6be6;--blue-600:#2257c9;--blue-700:#1c49a6;--blue-soft:#eaf1fe;--blue-soft-2:#dce8fd;--on-blue:#fff;--emerald:#0fa47a;--emerald-600:#0b8866;--emerald-soft:#e2f5ee;--vermilion:#e0573f;--vermilion-soft:#fceae5;--gold:#c68a2a;--gold-soft:#f8efd9;--violet:#7a5ae0;--violet-soft:#eeeafb;--shadow-sm:0 1px 2px #14202e0d, 0 1px 3px #14202e0a;--shadow-md:0 4px 14px #14202e12, 0 2px 5px #14202e0a;--shadow-lg:0 18px 40px #14202e24, 0 6px 14px #14202e12;--shadow-blue:0 8px 22px #2e6be64d;--r-sm:12px;--r-md:16px;--r-lg:22px;--r-xl:28px;--rail-w:248px;--content-max:700px}.dark{--bg:#0d1320;--surface:#151e2e;--surface-2:#1c273a;--surface-3:#24324a;--ink:#eef3fa;--ink-2-solid:#9fb0c4;--ink-3:#6b7b91;--line:#25324a;--line-strong:#30405c;--blue:#5b8cf0;--blue-600:#4c84f0;--blue-soft:#1a2740;--blue-soft-2:#21345a;--on-blue:#fff;--emerald:#2bc198;--emerald-soft:#123127;--vermilion:#f2735c;--vermilion-soft:#3a211c;--gold:#e0ae54;--gold-soft:#322816;--violet:#9d82f0;--violet-soft:#241f3a;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 16px #00000073;--shadow-lg:0 18px 44px #0009;--shadow-blue:0 8px 22px #2e6be673}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font-ui);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}button{color:inherit;font-family:inherit}#root{height:100dvh}.app{background:var(--bg);width:100%;height:100dvh;color:var(--ink);font-family:var(--font-ui);flex-direction:column;transition:background .35s,color .35s;display:flex;position:relative;overflow:hidden}.main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.screen-scroll{-webkit-overflow-scrolling:touch;flex:1;overflow:hidden auto}.screen-scroll::-webkit-scrollbar{width:8px}.screen-scroll::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:99px}.screen-scroll::-webkit-scrollbar-track{background:0 0}.content{width:100%;max-width:var(--content-max);margin:0 auto;padding:0 18px}.screen-pad-bottom{padding-bottom:104px}.app-header{z-index:30;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:saturate(180%)blur(18px);transition:box-shadow .25s;position:sticky;top:0}.app-header.scrolled{box-shadow:0 1px 0 var(--line)}.app-header-inner{width:100%;max-width:var(--content-max);justify-content:space-between;align-items:flex-end;gap:12px;margin:0 auto;padding:16px 18px 12px;display:flex}.app-title{letter-spacing:-.6px;font-size:26px;font-weight:800;line-height:1}.app-sub{color:var(--ink-2-solid);margin-top:4px;font-size:13px;font-weight:500}.card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);border:1px solid var(--line)}.section-title{letter-spacing:-.3px;justify-content:space-between;align-items:center;font-size:18px;font-weight:700;display:flex}.section-title .more{color:var(--blue);cursor:pointer;font-size:13px;font-weight:600}.jp{font-family:var(--font-jp)}.chip{white-space:nowrap;background:var(--surface);height:36px;color:var(--ink-2-solid);border:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:6px;padding:0 15px;font-size:13.5px;font-weight:600;transition:all .18s;display:inline-flex}.chip:active{transform:scale(.95)}.chip.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.chip.blue.active{background:var(--blue);border-color:var(--blue);color:#fff}.pill-tag{white-space:nowrap;letter-spacing:.1px;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.btn{height:50px;font-family:var(--font-ui);cursor:pointer;width:100%;color:inherit;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:15.5px;font-weight:700;transition:transform .12s,box-shadow .2s;display:inline-flex}.btn:active{transform:scale(.975)}.btn-primary{background:var(--blue);color:var(--on-blue);box-shadow:var(--shadow-blue)}.btn-ghost{background:var(--surface-2);color:var(--ink)}.avatar{object-fit:cover;color:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex;overflow:hidden}.icon-btn{background:var(--surface);border:1px solid var(--line);width:42px;height:42px;box-shadow:var(--shadow-sm);cursor:pointer;color:var(--ink);border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;transition:transform .12s;display:flex;position:relative}.icon-btn:active{transform:scale(.92)}.ph{background:repeating-linear-gradient(135deg, var(--surface-2) 0 9px, var(--surface-3) 9px 18px);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.ph span{font-family:var(--font-mono);letter-spacing:.3px;color:var(--ink-3);background:var(--surface);box-shadow:var(--shadow-sm);text-transform:lowercase;border-radius:6px;padding:3px 8px;font-size:10px}.seigaiha{opacity:.5;pointer-events:none;background-image:radial-gradient(circle at 10px 18px,#0000 6px,currentColor 6px 7px,#0000 7px),radial-gradient(circle at 30px 18px,#0000 6px,currentColor 6px 7px,#0000 7px),radial-gradient(circle at 20px 18px,#0000 11px,currentColor 11px 12px,#0000 12px),radial-gradient(circle at 0 18px,#0000 11px,currentColor 11px 12px,#0000 12px),radial-gradient(circle at 40px 18px,#0000 11px,currentColor 11px 12px,#0000 12px);background-size:40px 18px;position:absolute;inset:0}.tabbar{z-index:40;height:84px;padding:8px 14px calc(18px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:saturate(180%)blur(22px);border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);align-items:start;display:grid;position:absolute;bottom:0;left:0;right:0}.tab{cursor:pointer;color:var(--ink-3);-webkit-tap-highlight-color:transparent;flex-direction:column;align-items:center;gap:4px;padding-top:8px;transition:color .2s;display:flex}.tab.active{color:var(--blue)}.tab-label{letter-spacing:.1px;font-size:10.5px;font-weight:600}.tab-center{align-self:start;margin-top:-22px}.tab-center .fab{background:linear-gradient(160deg, var(--blue) 0%, var(--blue-600) 100%);width:56px;height:56px;box-shadow:var(--shadow-blue);color:#fff;border-radius:19px;justify-content:center;align-items:center;transition:transform .15s;display:flex}.tab-center.active .fab{transform:translateY(-2px)scale(1.04)}.siderail{display:none}.brandmark{background:linear-gradient(160deg, var(--blue), var(--blue-600));color:#fff;width:38px;height:38px;font-family:var(--font-jp);box-shadow:var(--shadow-blue);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:19px;font-weight:700;display:flex}@media (width>=860px){.app{flex-direction:row}.siderail{width:var(--rail-w);border-right:1px solid var(--line);background:var(--surface);flex-direction:column;flex-shrink:0;gap:6px;height:100dvh;padding:22px 16px;display:flex}.rail-brand{align-items:center;gap:11px;padding:6px 8px 18px;display:flex}.rail-brand .name{letter-spacing:-.4px;font-size:19px;font-weight:800}.rail-brand .name small{color:var(--ink-3);letter-spacing:.2px;font-size:11px;font-weight:600;display:block}.rail-item{cursor:pointer;color:var(--ink-2-solid);border-radius:14px;align-items:center;gap:13px;padding:12px 14px;font-size:15px;font-weight:600;transition:background .15s,color .15s;display:flex}.rail-item:hover{background:var(--surface-2)}.rail-item.active{background:var(--blue-soft);color:var(--blue)}.rail-spacer{flex:1}.tabbar{display:none}.screen-pad-bottom{padding-bottom:40px}.app-header{padding-top:6px}}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.screen-anim{animation:.32s cubic-bezier(.22,.61,.36,1) screen-in}@keyframes pop-in{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes blip{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.stagger>*{opacity:0;animation:.45s cubic-bezier(.22,.61,.36,1) forwards pop-in}.stagger>:first-child{animation-delay:20ms}.stagger>:nth-child(2){animation-delay:70ms}.stagger>:nth-child(3){animation-delay:.12s}.stagger>:nth-child(4){animation-delay:.17s}.stagger>:nth-child(5){animation-delay:.22s}.stagger>:nth-child(6){animation-delay:.27s}.stagger>:nth-child(7){animation-delay:.32s}.stagger>:nth-child(8){animation-delay:.37s}@media (prefers-reduced-motion:reduce){.screen-anim,.stagger>*{opacity:1!important;animation:none!important}}.sheet-overlay{z-index:80;-webkit-backdrop-filter:blur(3px);background:#0d13206b;justify-content:center;align-items:flex-end;animation:.2s fade-in;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);color:var(--ink);width:100%;max-width:560px;max-height:90dvh;box-shadow:var(--shadow-lg);border-radius:26px 26px 0 0;flex-direction:column;animation:.34s cubic-bezier(.22,.61,.36,1) sheet-up;display:flex;overflow:hidden}.sheet-grip{background:var(--line-strong);border-radius:99px;flex-shrink:0;width:38px;height:5px;margin:9px auto 2px}.sheet-body{padding:6px 20px 26px;overflow-y:auto}.sheet-body::-webkit-scrollbar{width:0}@media (width>=860px){.sheet-overlay{align-items:center}.sheet{border-radius:24px;max-height:84dvh;animation:.28s cubic-bezier(.22,.61,.36,1) pop-in}.sheet-grip{display:none}.sheet-body{padding-top:20px}}.toast-wrap{z-index:90;pointer-events:none;justify-content:center;display:flex;position:fixed;bottom:104px;left:0;right:0}@media (width>=860px){.toast-wrap{bottom:34px}}.toast{background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);border-radius:14px;align-items:center;gap:10px;max-width:86%;padding:13px 18px;font-size:14px;font-weight:600;animation:.3s cubic-bezier(.22,.61,.36,1) toast-in;display:flex}.toast .tick{background:var(--emerald);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:none}}.ai-screen{flex-direction:column;height:100%;padding-bottom:84px;display:flex}@media (width>=860px){.ai-screen{padding-bottom:0}}.ai-msgs{flex:1;padding:8px 0 12px;overflow:hidden auto}.ai-msgs::-webkit-scrollbar{width:0}.bubble{border-radius:20px;max-width:84%;padding:12px 15px;font-size:14.5px;font-weight:500;line-height:1.5;animation:.3s cubic-bezier(.22,.61,.36,1) pop-in}.bubble.user{background:var(--blue);color:#fff;border-bottom-right-radius:7px;align-self:flex-end}.bubble.ai{background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-bottom-left-radius:7px}.bubble.ai b{font-weight:800}.ai-input{align-items:flex-end;gap:9px;padding:12px 0 14px;display:flex}.ai-input textarea{resize:none;border:1px solid var(--line);background:var(--surface);font-family:var(--font-ui);color:var(--ink);max-height:96px;box-shadow:var(--shadow-sm);border-radius:22px;outline:none;flex:1;padding:12px 16px;font-size:14.5px;font-weight:500;line-height:1.4}.ai-input textarea:focus{border-color:var(--blue)}.ai-send{cursor:pointer;background:var(--blue);color:#fff;width:46px;height:46px;box-shadow:var(--shadow-blue);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .12s,opacity .2s;display:flex}.ai-send:active{transform:scale(.9)}.ai-send:disabled{opacity:.4;box-shadow:none;cursor:default}.hrow{scroll-snap-type:x mandatory;gap:12px;margin:0 -18px;padding:2px 18px 4px;display:flex;overflow-x:auto}.hrow::-webkit-scrollbar{height:0}.hrow>*{scroll-snap-align:start;flex-shrink:0}.press{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s}.press:active{transform:scale(.975)}.seg{background:var(--surface-2);border-radius:13px;gap:4px;padding:4px;display:flex}.seg button{cursor:pointer;font-family:var(--font-ui);color:var(--ink-2-solid);background:0 0;border:none;border-radius:9px;flex:1;padding:9px 6px;font-size:13px;font-weight:700;transition:all .18s}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.typing span{background:var(--ink-3);border-radius:50%;width:7px;height:7px;margin:0 2px;animation:1.2s infinite typing;display:inline-block}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes typing{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.ob-root{z-index:100;background:var(--bg);color:var(--ink);padding:28px 22px calc(28px + env(safe-area-inset-bottom));justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.ob-bg{pointer-events:none;z-index:0;background:radial-gradient(40% 30% at 18% 12%, color-mix(in srgb, var(--blue) 22%, transparent) 0%, transparent 70%), radial-gradient(36% 28% at 86% 88%, color-mix(in srgb, var(--emerald) 14%, transparent) 0%, transparent 70%), radial-gradient(50% 40% at 50% 50%, color-mix(in srgb, var(--violet) 6%, transparent) 0%, transparent 70%);position:absolute;inset:0}.ob-screen{z-index:1;flex-direction:column;width:100%;max-width:460px;display:flex;position:relative}@keyframes ob-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.ob-anim-in{animation:.36s cubic-bezier(.22,.61,.36,1) ob-in}.ob-hero{align-self:center;width:88px;height:88px;margin-bottom:22px;position:relative}.ob-mark{z-index:1;background:linear-gradient(160deg, var(--blue) 0%, var(--blue-600) 100%);color:#fff;width:88px;height:88px;box-shadow:0 18px 40px color-mix(in srgb, var(--blue) 38%, transparent);border-radius:26px;justify-content:center;align-items:center;font-size:42px;font-weight:700;display:flex;position:relative}.ob-mark-glow{background:radial-gradient(closest-side, color-mix(in srgb, var(--blue) 36%, transparent), transparent 75%);filter:blur(14px);z-index:0;border-radius:50%;position:absolute;inset:-20px}.ob-eyebrow{text-align:center;letter-spacing:.3px;color:var(--ink-3);text-transform:uppercase;margin-bottom:10px;font-size:13px;font-weight:700}.ob-step-tag{letter-spacing:.6px;color:var(--blue);text-transform:uppercase;background:var(--blue-soft);border-radius:99px;align-self:flex-start;margin-bottom:14px;padding:5px 11px;font-size:11.5px;font-weight:700}.ob-h1{letter-spacing:-.8px;margin:0 0 12px;font-size:30px;font-weight:800;line-height:1.15}.ob-sub{color:var(--ink-2-solid);margin:0 0 26px;font-size:15px;font-weight:500;line-height:1.55}.ob-features{flex-direction:column;gap:10px;margin-bottom:28px;display:flex}.ob-feature{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);opacity:0;border-radius:16px;align-items:center;gap:13px;padding:13px 14px;animation:.45s cubic-bezier(.22,.61,.36,1) forwards ob-in;display:flex}.ob-feature-ic{background:var(--blue-soft);width:36px;height:36px;color:var(--blue);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ob-feature-lbl{letter-spacing:-.2px;flex:1;font-size:14.5px;font-weight:700}.ob-feature-jp{color:var(--ink-3);font-size:12px;font-weight:600}.ob-foot{margin-top:auto}.ob-btn{width:100%;height:54px;font-size:16px}.ob-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.ob-foot-note{text-align:center;color:var(--ink-3);margin-top:12px;font-size:12px;font-weight:600}.ob-wards{grid-template-columns:1fr 1fr;gap:11px;margin-bottom:26px;display:grid}.ob-ward{text-align:left;cursor:pointer;background:var(--surface);border:1.5px solid var(--line);opacity:0;border-radius:18px;padding:16px 14px 14px;transition:transform .15s,border-color .2s,background .2s;animation:.4s cubic-bezier(.22,.61,.36,1) forwards ob-in;position:relative}.ob-ward:active:not(:disabled){transform:scale(.98)}.ob-ward-jp{color:var(--ink-2-solid);letter-spacing:-1px;margin-bottom:6px;font-size:22px;font-weight:700;transition:color .2s}.ob-ward-name{letter-spacing:-.2px;font-size:14.5px;font-weight:700}.ob-ward-on{border-color:var(--blue);background:var(--blue-soft)}.ob-ward-on .ob-ward-jp{color:var(--blue)}.ob-ward-disabled{opacity:.5;cursor:not-allowed;background:var(--surface-2)}.ob-ward-soon{letter-spacing:.5px;color:var(--ink-3);text-transform:uppercase;margin-top:6px;font-size:10.5px;font-weight:700}.ob-ward-check{background:var(--blue);color:#fff;border-radius:99px;justify-content:center;align-items:center;width:22px;height:22px;display:flex;position:absolute;top:12px;right:12px}.ob-progress-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-md);padding:22px 20px}.ob-progress-head{align-items:center;gap:16px;margin-bottom:18px;display:flex}.ob-progress-ring{flex-shrink:0;width:56px;height:56px;position:relative}.ob-progress-pct{letter-spacing:-.2px;font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:flex;position:absolute;inset:0}.ob-progress-headtxt{flex:1;min-width:0}.ob-progress-title{letter-spacing:-.3px;font-size:17px;font-weight:800}.ob-progress-sub{color:var(--ink-3);margin-top:2px;font-size:13px;font-weight:600}.ob-progress-bar{background:var(--surface-3);border-radius:99px;height:8px;margin-bottom:20px;overflow:hidden}.ob-progress-fill{background:linear-gradient(90deg, var(--blue), var(--emerald));border-radius:99px;height:100%;transition:width .12s linear}.ob-progress-steps{flex-direction:column;gap:12px;display:flex}.ob-pstep{align-items:center;gap:12px;font-size:14px;font-weight:600;transition:color .2s,opacity .2s;display:flex}.ob-pstep-dot{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:800;transition:background .2s,color .2s;display:flex}.ob-pstep-lbl{flex:1}.ob-pstep-wait{color:var(--ink-3)}.ob-pstep-wait .ob-pstep-dot{background:var(--surface-3);color:var(--ink-3)}.ob-pstep-active{color:var(--ink)}.ob-pstep-active .ob-pstep-dot{background:var(--blue-soft);color:var(--blue)}.ob-pstep-done{color:var(--ink)}.ob-pstep-done .ob-pstep-dot{background:var(--emerald);color:#fff}.ob-pstep-spin{border:2px solid var(--blue);border-top-color:#0000;border-radius:50%;width:12px;height:12px;animation:.8s linear infinite ob-spin}@keyframes ob-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ob-anim-in,.ob-feature,.ob-ward,.ob-pstep-spin{opacity:1!important;animation:none!important}}
