:root{--ink: #0F1B2D;--ink-2: #55677F;--ink-3: #93A3B8;--bg: #EEF3FA;--card: #FFFFFF;--line: #E2EAF3;--line-2: #EFF4F9;--blue: #2E6BFF;--blue-d: #1B4ED1;--sky: #21B8F0;--green: #12B886;--yellow: #FFC53D;--orange: #FF8A3D;--coral: #FF6B57;--violet: #8B5CF6;--sea: #C7E3F6;--land: #FDFDF8;--land-2: #F1F5EE;--border-c: #BFD3E4;--r-lg: 26px;--r-md: 18px;--r-sm: 12px;--sh-1: 0 1px 2px rgba(15,27,45,.05), 0 4px 14px rgba(15,27,45,.06);--sh-2: 0 2px 6px rgba(15,27,45,.06), 0 14px 34px rgba(15,27,45,.1);--sh-pop: 0 10px 30px rgba(46,107,255,.28);--font-d: "Outfit", "Inter", system-ui, sans-serif;--font-b: "Inter", "Noto Sans JP", system-ui, -apple-system, sans-serif;--tab-h: 68px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-family:var(--font-b);color:var(--ink);background:#0b1424;overscroll-behavior:none}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}input,select{font:inherit;color:inherit}.stage{height:100%;display:grid;place-items:center;background:radial-gradient(1000px 700px at 15% 0%,#1B3566 0%,transparent 60%),radial-gradient(900px 700px at 100% 100%,#2B1F5C 0%,transparent 55%),#0b1424}.device{position:relative;width:100%;max-width:430px;height:100%;max-height:932px;background:var(--bg);overflow:hidden;display:flex;flex-direction:column}@media (min-width: 520px) and (min-height: 720px){.device{border-radius:44px;box-shadow:0 40px 90px #0000008c,0 0 0 10px #10192c,0 0 0 11px #2c3a55;height:calc(100% - 48px)}}.screen{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.screen-pad{padding:0 18px calc(var(--tab-h) + 34px)}.screen-pad-flat{padding:0 18px 34px}.card{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh-1)}.row{display:flex;align-items:center}.between{display:flex;align-items:center;justify-content:space-between}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}.col{display:flex;flex-direction:column}.grow{flex:1;min-width:0}.center{text-align:center}.num{font-family:var(--font-d);font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.02em}.mono-cap{font-family:var(--font-d);font-weight:700;letter-spacing:.14em;text-transform:uppercase}.muted{color:var(--ink-2)}.dim{color:var(--ink-3)}.t-xs{font-size:11px}.t-sm{font-size:13px}.t-md{font-size:15px}.t-lg{font-size:17px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;background:var(--line-2);color:var(--ink-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:54px;padding:0 24px;border-radius:18px;font-family:var(--font-d);font-weight:700;font-size:16px;background:var(--blue);color:#fff;box-shadow:var(--sh-pop);transition:transform .12s ease,box-shadow .12s ease,opacity .12s}.btn:active{transform:translateY(2px) scale(.99);box-shadow:0 4px 14px #2e6bff3d}.btn[disabled]{opacity:.4;box-shadow:none;pointer-events:none}.btn.block{width:100%}.btn.ghost{background:#fff;color:var(--ink);box-shadow:var(--sh-1)}.btn.line{background:transparent;color:var(--ink-2);box-shadow:inset 0 0 0 1.5px var(--line)}.btn.sm{height:42px;padding:0 16px;font-size:14px;border-radius:14px}.hd{padding:14px 18px 10px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.hd h1{margin:0;font-family:var(--font-d);font-size:26px;font-weight:800;letter-spacing:-.03em}.hd .sub{font-size:12px;color:var(--ink-3);font-weight:600;letter-spacing:.06em}.safe-top{height:env(safe-area-inset-top)}.tabbar{position:absolute;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));height:var(--tab-h);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;align-items:center;background:#ffffffdb;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-radius:24px;box-shadow:var(--sh-2);z-index:40}.tabbar button{display:flex;flex-direction:column;align-items:center;gap:3px;height:100%;justify-content:center;color:var(--ink-3);transition:color .15s}.tabbar button .lbl{font-family:var(--font-d);font-size:10px;font-weight:700;letter-spacing:.08em}.tabbar button.on,.tabbar button.on .lbl{color:var(--blue)}.tabbar .dot{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:0}.tabbar button.on .dot{opacity:1}.av{display:grid;place-items:center;border-radius:50%;font-size:18px;line-height:1;flex:none;box-shadow:0 2px 8px #0f1b2d2e,inset 0 0 0 2px #ffffffe6}.rail{position:relative;height:6px;border-radius:999px;background:var(--line);overflow:hidden}.rail>i{position:absolute;inset:0 auto 0 0;border-radius:999px;display:block}.stamp{position:relative;aspect-ratio:1;border-radius:20px;display:grid;place-content:center;text-align:center;gap:2px;padding:8px;color:var(--stamp-c, var(--blue));box-shadow:inset 0 0 0 2.5px currentColor,inset 0 0 0 5px #fff,inset 0 0 0 6.5px currentColor;background:#fff;overflow:hidden}.stamp .cty{font-family:var(--font-d);font-weight:800;font-size:13px;letter-spacing:.02em;line-height:1.1}.stamp .ctry{font-size:8.5px;font-weight:700;letter-spacing:.14em;opacity:.75}.stamp .dt{font-family:var(--font-d);font-size:9.5px;font-weight:700;letter-spacing:.06em;opacity:.8;margin-top:2px}.stamp.locked{color:var(--ink-3);opacity:.32;box-shadow:inset 0 0 0 2px currentColor}.scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;background:#09112070;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-end;animation:fade .2s ease}.sheet{width:100%;background:var(--bg);border-radius:28px 28px 0 0;max-height:88%;overflow-y:auto;animation:rise .3s cubic-bezier(.2,.9,.25,1);padding-bottom:max(20px,env(safe-area-inset-bottom))}.sheet-grab{width:40px;height:5px;border-radius:999px;background:var(--line);margin:10px auto 4px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(28px);opacity:.4}}@keyframes pop{0%{transform:scale(.9);opacity:0}}.celebrate{position:absolute;top:0;right:0;bottom:0;left:0;z-index:70;background:#0911208c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:22px;animation:fade .22s ease}.celebrate .box{width:100%;background:#fff;border-radius:30px;overflow:hidden;box-shadow:0 30px 70px #0006;animation:pop .34s cubic-bezier(.2,1.1,.3,1)}.tl{position:relative;padding-left:34px}.tl:before{content:"";position:absolute;left:13px;top:6px;bottom:6px;width:2px;background:var(--line);border-radius:2px}.tl-item{position:relative;margin-bottom:14px}.tl-item:before{content:"";position:absolute;left:-27px;top:16px;width:12px;height:12px;border-radius:50%;background:var(--dot, var(--blue));box-shadow:0 0 0 3px #fff,0 0 0 5px var(--line-2)}.mapwrap{position:relative;width:100%;height:100%;overflow:hidden;background:var(--sea);touch-action:none}.mapwrap svg{display:block;width:100%;height:100%}.map-ctrl{position:absolute;right:12px;display:flex;flex-direction:column;gap:8px;z-index:10}.map-ctrl button{width:44px;height:44px;border-radius:14px;background:#fffffff0;box-shadow:var(--sh-1);display:grid;place-items:center;color:var(--ink);font-family:var(--font-d);font-weight:700}.pill-legend{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;background:#ffffffeb;border-radius:999px;box-shadow:var(--sh-1);font-size:11px;font-weight:700;color:var(--ink-2)}.hscroll{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 18px 4px;margin:0 -18px;scrollbar-width:none}.hscroll::-webkit-scrollbar{display:none}.hscroll>*{scroll-snap-align:start;flex:none}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ob{height:100%;display:flex;flex-direction:column;background:linear-gradient(165deg,#123a8f,#2e6bff 42%,#21b8f0);color:#fff;position:relative;overflow:hidden}.ob:after{content:"";position:absolute;inset:auto -30% -35% -30%;height:60%;background:radial-gradient(closest-side,rgba(255,197,61,.5),transparent 70%);pointer-events:none}.ob h2{font-family:var(--font-d);font-size:30px;font-weight:800;line-height:1.24;letter-spacing:-.03em;margin:0 0 12px}.ob p{margin:0;font-size:14.5px;line-height:1.8;color:#ffffffdb}.ob .btn{background:#fff;color:var(--blue-d);box-shadow:0 12px 30px #00000047}.ob-dots{display:flex;gap:7px;justify-content:center}.ob-dots i{width:7px;height:7px;border-radius:999px;background:#fff6;transition:width .25s,background .25s}.ob-dots i.on{width:22px;background:#fff}.field{display:block;margin-bottom:16px}.field .lb{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--ink-3);margin-bottom:8px;font-family:var(--font-d)}.field input[type=text]:not(.charinput){width:100%;height:52px;padding:0 16px;border-radius:16px;background:#fff;border:1.5px solid var(--line);outline:none;font-size:16px;font-weight:600}.field input[type=text]:not(.charinput):focus{border-color:var(--blue)}input[type=range]{width:100%;height:34px;accent-color:var(--blue)}.pickgrid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.pickgrid button{aspect-ratio:1;border-radius:14px;display:grid;place-items:center;font-size:20px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line)}.pickgrid button.on{box-shadow:inset 0 0 0 2.5px var(--blue);background:#eef3ff}.swatchgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:9px}.swatchgrid button{aspect-ratio:1;border-radius:50%;box-shadow:0 2px 6px #0f1b2d24;transition:transform .12s ease,box-shadow .12s ease}.swatchgrid button.on{box-shadow:inset 0 0 0 3.5px #fffffff2,0 0 0 2.5px var(--ink),0 3px 10px #0f1b2d33;transform:scale(1.06)}.charinput{width:62px;height:62px;flex:none;border-radius:20px;text-align:center;font-size:27px;line-height:1;background:#fff;border:1.5px solid var(--line);outline:none}.charinput:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2e6bff24}.fade-in{animation:fade .25s ease}.fullscreen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--bg);display:flex;flex-direction:column;animation:fade .2s ease}.tlink{display:inline-flex;align-items:center;gap:6px;padding:12px 6px;margin:-12px -6px;font-size:12px;font-weight:700;color:var(--ink-3)}.tlink:active{opacity:.55}
