:root{--c-canvas:#fff;--c-surface:#fff;--c-surface-subtle:#f8f8f8;--c-ink-primary:#1a1a1a;--c-ink-secondary:#666;--c-ink-tertiary:#999;--c-brand:#5ac8ca;--c-brand-deep:#4ecdc4;--c-success:#16a34a;--c-success-bg:#f0fdf4;--c-success-deep:#15803d;--c-error:#dc2626;--c-error-bg:#fef2f2;--c-error-deep:#b91c1c;--c-border:#e8e8e8;--c-border-active:#5ac8ca;--gradient-brand:linear-gradient(135deg,#5ac8ca 0%,#7dd3a8 100%);--gradient-brand-hover:linear-gradient(135deg,#6dd5d5 0%,#8cebe8 100%);--gradient-brand-active:linear-gradient(135deg,#4ab8ba 0%,#6dc398 100%);--gradient-cta:linear-gradient(135deg,#ffe566 0%,#fecc31 100%);--gradient-cta-hover:linear-gradient(135deg,#ffeb80 0%,#ffd966 100%);--gradient-cta-active:linear-gradient(135deg,#e6cf2d 0%,#e6b82d 100%);--gradient-danger:linear-gradient(135deg,#dc2626 0%,#b91c1c 100%);--gradient-danger-hover:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);--gradient-success:linear-gradient(135deg,#16a34a 0%,#15803d 100%);--g-privacy:linear-gradient(135deg,#f8f8f8 0%,#e8e8e8 100%);--gradient-surface:linear-gradient(135deg,#f8f8f8 0%,#e8e8e8 100%);--vh:1vh;--viewport-height:100dvh;--viewport-height-fallback:100vh;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px);--safe-area-right:env(safe-area-inset-right,0px);--z-base:1;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-modal-backdrop:1000;--z-modal:1001;--z-bottom-sheet:10000;--z-toast:10001;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:999px;--shadow-sm:0 2px 8px #0000000f;--shadow-md:0 8px 24px #0000001a;--shadow-brand:0 2px 8px #5ac8ca40;--shadow-brand-hover:0 4px 16px #5ac8ca59;--shadow-cta:0 4px 16px #fecc3166;--shadow-cta-hover:0 8px 24px #fecc3180;--shadow-danger:0 2px 8px #dc262640;--shadow-overlay:0 -4px 20px #0000001a;--shadow-modal:0 4px 16px #1a1a1a1a,0 16px 48px #1a1a1a26;--text-xs:clamp(.75rem,.7rem + .25vw,.8125rem);--text-sm:clamp(.875rem,.8rem + .375vw,1rem);--text-base:clamp(1rem,.9rem + .5vw,1.125rem);--text-lg:clamp(1.125rem,1rem + .625vw,1.25rem);--text-xl:clamp(1.25rem,1.1rem + .75vw,1.5rem);--text-2xl:clamp(1.5rem,1.3rem + 1vw,2rem);--ease-spring:cubic-bezier(.2,.8,.2,1);--ease-ios:cubic-bezier(.36,.66,.04,1);--transition-fast:.15s var(--ease-spring);--transition-base:.25s var(--ease-spring);--transition-slow:.35s var(--ease-spring)}html{background-color:var(--c-canvas);-webkit-overflow-scrolling:touch;-moz-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior-y:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;touch-action:manipulation;width:100%;max-width:100vw;min-height:100dvh;overflow:hidden auto}@media (hover:none){body{overscroll-behavior-y:contain}}body{color:var(--c-ink-primary);background:var(--c-canvas);font-family:var(--font-noto-sans-jp),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--text-base);min-height:var(--viewport-height-fallback);min-height:var(--viewport-height);height:var(--viewport-height-fallback);height:var(--viewport-height);padding-top:0;padding-bottom:0;padding-left:var(--safe-area-left);padding-right:var(--safe-area-right);line-height:1.7}@supports (padding:max(0px)){body{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}body{will-change:transform;contain:layout style paint;transform:translate(0,0)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;touch-action:manipulation;margin:0;padding:0}.text-display{font-family:var(--font-inter),sans-serif;font-size:var(--text-2xl);letter-spacing:-.02em;color:var(--c-ink-primary);font-weight:700;line-height:1.2}.text-body{font-family:var(--font-noto-sans-jp),sans-serif;font-size:var(--text-base);color:var(--c-ink-primary);font-weight:400;line-height:1.7}.text-caption{font-family:var(--font-noto-sans-jp),sans-serif;font-size:var(--text-xs);color:var(--c-ink-secondary);line-height:1.5}.text-numeric{font-family:var(--font-inter),sans-serif}.scrollable{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;will-change:scroll-position;touch-action:pan-y pinch-zoom;overflow-y:auto;transform:translateZ(0)}.horizontal-scroll{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;will-change:scroll-position;touch-action:pan-x pinch-zoom;display:flex;overflow:auto hidden;transform:translateZ(0)}.horizontal-scroll::-webkit-scrollbar{display:none}.horizontal-scroll>*{scroll-snap-align:center;scroll-snap-stop:always}a{color:inherit;text-decoration:none}input,textarea,.selectable{-webkit-user-select:text;user-select:text}button,a[role=button]{touch-action:manipulation;backface-visibility:hidden;min-width:44px;min-height:44px;transition:transform var(--transition-fast),opacity var(--transition-fast);transform:translateZ(0)}@media (hover:none) and (pointer:coarse){button:active:not(:disabled),a[role=button]:active{opacity:.85;transform:scale(.96)translateZ(0)}}@supports not (-webkit-touch-callout:none){button:active:not(:disabled),a[role=button]:active{opacity:.9;transform:scale(.97)translateZ(0)}}@media (hover:hover) and (pointer:fine){button:hover:not(:disabled),a[role=button]:hover{opacity:.9}}.smooth-transition{transition:all var(--transition-base);will-change:transform,opacity}.card{backface-visibility:hidden;will-change:transform;transition:transform var(--transition-base)var(--ease-spring);transform:translateZ(0)}.card:active{transform:scale(.98)translateZ(0)}.modal-overlay,.bottom-sheet{backface-visibility:hidden;will-change:transform,opacity;transform:translate(0,0)}.btn-base{justify-content:center;align-items:center;gap:var(--space-sm);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base);-webkit-tap-highlight-color:transparent;touch-action:manipulation;backface-visibility:hidden;will-change:transform;white-space:nowrap;border:none;font-weight:600;text-decoration:none;display:inline-flex;transform:translateZ(0)}.btn-base:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-lg{height:52px;padding:0 var(--space-lg);font-size:var(--text-base)}.btn-md{height:44px;padding:0 var(--space-md);font-size:var(--text-base)}.btn-sm{height:36px;padding:0 var(--space-sm);font-size:var(--text-sm)}.btn-primary{justify-content:center;align-items:center;gap:var(--space-sm);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base);-webkit-tap-highlight-color:transparent;touch-action:manipulation;backface-visibility:hidden;will-change:transform;white-space:nowrap;background:var(--gradient-brand);color:#fff;box-shadow:var(--shadow-brand);border:none;font-weight:600;text-decoration:none;display:inline-flex;transform:translateZ(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary:hover:not(:disabled){background:var(--gradient-brand-hover);box-shadow:var(--shadow-brand-hover);transform:translateY(-2px)translateZ(0)}.btn-primary:active:not(:disabled){background:var(--gradient-brand-active);box-shadow:var(--shadow-brand);transform:scale(.98)translateZ(0)}.btn-secondary{justify-content:center;align-items:center;gap:var(--space-sm);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base);-webkit-tap-highlight-color:transparent;touch-action:manipulation;backface-visibility:hidden;will-change:transform;white-space:nowrap;background:var(--gradient-cta);color:#333;box-shadow:var(--shadow-cta);border:none;font-weight:600;text-decoration:none;display:inline-flex;transform:translateZ(0)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-secondary:hover:not(:disabled){background:var(--gradient-cta-hover);box-shadow:var(--shadow-cta-hover);transform:translateY(-2px)translateZ(0)}.btn-secondary:active:not(:disabled){background:var(--gradient-cta-active);box-shadow:var(--shadow-cta);transform:scale(.98)translateZ(0)}.btn-ghost{justify-content:center;align-items:center;gap:var(--space-sm);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base);-webkit-tap-highlight-color:transparent;touch-action:manipulation;backface-visibility:hidden;will-change:transform;white-space:nowrap;background:var(--c-surface);color:var(--c-ink-secondary);border:1px solid var(--c-border);box-shadow:none;font-weight:600;text-decoration:none;display:inline-flex;transform:translateZ(0)}.btn-ghost:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-ghost:hover:not(:disabled){background:var(--c-surface-subtle);color:var(--c-ink-primary);border-color:var(--c-border-active)}.btn-ghost:active:not(:disabled){background:var(--c-surface-subtle);transform:scale(.98)translateZ(0)}.btn-danger{justify-content:center;align-items:center;gap:var(--space-sm);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base);-webkit-tap-highlight-color:transparent;touch-action:manipulation;backface-visibility:hidden;will-change:transform;white-space:nowrap;background:var(--gradient-danger);color:#fff;box-shadow:var(--shadow-danger);border:none;font-weight:600;text-decoration:none;display:inline-flex;transform:translateZ(0)}.btn-danger:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-danger:hover:not(:disabled){background:var(--gradient-danger-hover);transform:translateY(-2px)translateZ(0);box-shadow:0 4px 12px #dc262659}.btn-danger:active:not(:disabled){box-shadow:var(--shadow-danger);transform:scale(.98)translateZ(0)}.btn-text{justify-content:center;align-items:center;gap:var(--space-sm);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base);-webkit-tap-highlight-color:transparent;touch-action:manipulation;backface-visibility:hidden;will-change:transform;white-space:nowrap;color:var(--c-ink-secondary);box-shadow:none;padding:var(--space-sm)var(--space-md);background:0 0;border:none;font-weight:600;text-decoration:none;display:inline-flex;transform:translateZ(0)}.btn-text:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-text:hover:not(:disabled){color:var(--c-ink-primary);background:#00000008}.btn-text:active:not(:disabled){background:#0000000f;transform:scale(.98)translateZ(0)}.card-base{background:var(--c-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-base);backface-visibility:hidden;will-change:transform;transform:translateZ(0)}.card-base:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)translateZ(0)}.card-base:active{transform:scale(.98)translateZ(0)}.card-elevated{background:var(--c-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.overlay-base{-webkit-backdrop-filter:blur(4px);z-index:var(--z-bottom-sheet);will-change:opacity;backface-visibility:hidden;animation:overlayFadeIn .2s var(--ease-ios)forwards;background:#0006;position:fixed;inset:0;transform:translateZ(0)}.overlay-base.closing{animation:overlayFadeOut .2s var(--ease-ios)forwards}.bottom-sheet-base{background:var(--c-surface);border-radius:var(--radius-xl)var(--radius-xl)0 0;max-height:90vh;box-shadow:var(--shadow-overlay);z-index:calc(var(--z-bottom-sheet) + 1);padding-bottom:calc(var(--safe-area-bottom) + 16px);will-change:transform;backface-visibility:hidden;animation:bottomSheetSlideIn .3s var(--ease-ios)forwards;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden}.bottom-sheet-base.closing{animation:bottomSheetSlideOut .25s var(--ease-ios)forwards}.bottom-sheet-handle{background:var(--c-border);cursor:pointer;width:36px;height:5px;transition:background var(--transition-fast);border-radius:3px;flex-shrink:0;margin:8px auto}.bottom-sheet-handle:active{background:#ccc}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes overlayFadeOut{0%{opacity:1}to{opacity:0}}@keyframes bottomSheetSlideIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes bottomSheetSlideOut{0%{transform:translateY(0)}to{transform:translateY(100%)}}.input-base{width:100%;padding:var(--space-md);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--c-ink-primary);transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;appearance:none;font-family:inherit;font-weight:400}.input-base:focus{border-color:var(--c-brand);outline:none;box-shadow:0 0 0 3px #5ac8ca26}.input-base::placeholder{color:var(--c-ink-tertiary);font-weight:400}.input-base:disabled{opacity:.6;cursor:not-allowed;background:var(--c-surface-subtle)}.textarea-base{width:100%;padding:var(--space-md);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--c-ink-primary);resize:vertical;min-height:100px;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;appearance:none;font-family:inherit;font-weight:400;line-height:1.6}.textarea-base:focus{border-color:var(--c-brand);outline:none;box-shadow:0 0 0 3px #5ac8ca26}.textarea-base::placeholder{color:var(--c-ink-tertiary);font-weight:400}.textarea-base:disabled{opacity:.6;cursor:not-allowed;background:var(--c-surface-subtle)}.code-input-base{width:100%;padding:0 var(--space-lg);background:var(--c-surface);border:2px solid var(--c-border);border-radius:var(--radius-lg);letter-spacing:.4em;text-align:center;color:var(--c-ink-primary);transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;appearance:none;-webkit-user-select:text;user-select:text;font-size:24px;font-weight:600;font-family:var(--font-inter),monospace}.code-input-base:focus{border-color:var(--c-brand);outline:none;transform:translateY(-1px);box-shadow:0 0 0 4px #5ac8ca1f}.code-input-base::placeholder{font-size:var(--text-base);letter-spacing:normal;color:var(--c-ink-tertiary);font-weight:400}.code-input-base:disabled{opacity:.6;cursor:not-allowed}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.skeleton{will-change:background-position;border-radius:var(--radius-md);background:linear-gradient(90deg,#f8f8f8 0%,#e8e8e8 20%,#f8f8f8 40% 100%) 0 0/2000px 100%;animation:2s linear infinite shimmer}.fade-in{animation:fadeIn var(--transition-base)var(--ease-spring)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translate(0,0)}}@media (display-mode:standalone){body{background-color:var(--c-canvas)}}:focus-visible{outline:2px solid var(--c-brand);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body.notification-banner-visible{--notification-banner-height:calc(env(safe-area-inset-top,0px) + 72px)}body.notification-banner-visible [class*=wrapper]>main,body.notification-banner-visible [class*=wrapper] [class*=content]{padding-top:var(--notification-banner-height,72px)!important}
