:root{--c-canvas:#f5efe4;--c-surface:#fff;--c-surface-subtle:#f9fafb;--c-ink-primary:#142132;--c-ink-secondary:#4b5563;--c-ink-tertiary:#9ca3af;--c-brand:#142132;--c-brand-deep:#142132cc;--c-accent-coffee:#e4d2b8;--c-success:#16a34a;--c-success-bg:#16a34a1a;--c-success-deep:#16a34acc;--c-error:#ef4444;--c-error-bg:#ef44441a;--c-error-deep:#ef4444cc;--c-border-subtle:#1421320f;--c-border-strong:#1421321f;--c-border:var(--c-border-subtle);--c-border-active:var(--c-brand);--g-privacy:linear-gradient(135deg,#e4ddcf 0%,#dccbb1 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 1px 3px #0000000d,0 2px 2px #00000005;--shadow-md:0 2px 4px #0000000d,0 4px 6px #0000000a;--shadow-lg:0 4px 6px #0000000d,0 8px 12px #0000000f;--shadow-brand:0 2px 8px #14213226;--shadow-brand-hover:0 4px 16px #14213233;--shadow-overlay:0 -4px 20px #0000001a;--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)}@supports (color:lab(0% 0 0)){:root{--g-privacy:linear-gradient(135deg,lab(88.4762% .642717 7.67483) 0%,lab(82.691% 2.74202 15.4113) 100%)}}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)}@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,#f5f1ea 0%,#f0ebe0 20%,#f5f1ea 40% 100%) 0 0/2000px 100%;background:linear-gradient(90deg,lab(95.4001% .287116 3.81355) 0%,lab(93.0987% .454843 5.73678) 20%,lab(95.4001% .287116 3.81355) 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}.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(--c-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(--c-brand-deep);box-shadow:var(--shadow-brand-hover);transform:translateY(-2px)translateZ(0)}.btn-primary:active:not(:disabled){background:var(--c-brand-deep);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(--c-accent-coffee);color:var(--c-ink-primary);box-shadow:var(--shadow-sm);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){box-shadow:var(--shadow-md);background:#d4c0a0;transform:translateY(-2px)translateZ(0)}.btn-secondary:active:not(:disabled){box-shadow:var(--shadow-sm);background:#c4b098;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-subtle);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-strong)}.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(--c-error);color:#fff;border:none;font-weight:600;text-decoration:none;display:inline-flex;transform:translateZ(0);box-shadow:0 2px 8px #ef444440}.btn-danger:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-danger:hover:not(:disabled){background:var(--c-error-deep);transform:translateY(-2px)translateZ(0);box-shadow:0 4px 12px #ef444459}.btn-danger:active:not(:disabled){transform:scale(.98)translateZ(0);box-shadow:0 2px 8px #ef444440}.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:#14213208}.btn-text:active:not(:disabled){background:#1421320f;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-subtle);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:var(--c-border-strong)}@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-subtle);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 #14213226}.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-subtle);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 #14213226}.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-subtle);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 #1421321f}.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}
