.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:20px}.loading-spinner{display:flex;gap:8px;align-items:center}.loading-spinner-dot{background:linear-gradient(135deg,var(--color-nude-pink),var(--color-soft-coral));border-radius:50%;animation:bounce 1.4s ease-in-out infinite;box-shadow:0 2px 8px #f5b5a74d}.loading--small .loading-spinner-dot{width:8px;height:8px}.loading--medium .loading-spinner-dot{width:12px;height:12px}.loading--large .loading-spinner-dot{width:16px;height:16px}.loading-spinner-dot:nth-child(1){animation-delay:-.32s}.loading-spinner-dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,60%,to{transform:translateY(0) scale(1);opacity:1}30%{transform:translateY(-20px) scale(1.2);opacity:.8}}.loading-text{color:var(--color-warm-gray);font-size:14px;margin:0;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.loading-overlay{position:fixed;inset:0;background:#fffffff2;backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.skeleton{background:linear-gradient(90deg,var(--color-warm-ivory) 0%,#fff8f3 50%,var(--color-warm-ivory) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}@keyframes shimmer{0%{background-position:-100% 0}to{background-position:100% 0}}.skeleton-text{height:16px;margin-bottom:8px;border-radius:4px}.skeleton-text:last-child{width:60%}.skeleton-card{height:120px;border-radius:16px;margin-bottom:16px}.skeleton-button{height:48px;width:100%;border-radius:24px}.skeleton-avatar{width:48px;height:48px;border-radius:50%}.page-transition-enter{opacity:0;transform:translate(20px)}.page-transition-enter-active{opacity:1;transform:translate(0);transition:all .3s ease-out}.page-transition-exit{opacity:1;transform:translate(0)}.page-transition-exit-active{opacity:0;transform:translate(-20px);transition:all .3s ease-in}.fade-enter{opacity:0}.fade-enter-active{opacity:1;transition:opacity .3s ease-out}.fade-exit{opacity:1}.fade-exit-active{opacity:0;transition:opacity .3s ease-in}.scale-enter{opacity:0;transform:scale(.9)}.scale-enter-active{opacity:1;transform:scale(1);transition:all .3s cubic-bezier(.34,1.56,.64,1)}.scale-exit{opacity:1;transform:scale(1)}.scale-exit-active{opacity:0;transform:scale(.9);transition:all .3s ease-in}.slide-up-enter{opacity:0;transform:translateY(30px)}.slide-up-enter-active{opacity:1;transform:translateY(0);transition:all .4s cubic-bezier(.4,0,.2,1)}.slide-up-exit{opacity:1;transform:translateY(0)}.slide-up-exit-active{opacity:0;transform:translateY(-30px);transition:all .3s ease-in}.button--loading{position:relative;color:transparent!important;pointer-events:none}.button--loading:after{content:"";position:absolute;width:20px;height:20px;top:50%;left:50%;margin-left:-10px;margin-top:-10px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.content-loading{position:relative;overflow:hidden}.content-loading:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);animation:loading-sweep 2s infinite}@keyframes loading-sweep{0%{left:-100%}to{left:100%}}.lazy-load{opacity:0;transform:translateY(20px);transition:all .5s ease-out}.lazy-load.loaded{opacity:1;transform:translateY(0)}.stagger-animation{opacity:0;transform:translateY(20px);animation:staggerFadeIn .5s ease-out forwards}.stagger-animation:nth-child(1){animation-delay:.05s}.stagger-animation:nth-child(2){animation-delay:.1s}.stagger-animation:nth-child(3){animation-delay:.15s}.stagger-animation:nth-child(4){animation-delay:.2s}.stagger-animation:nth-child(5){animation-delay:.25s}.stagger-animation:nth-child(6){animation-delay:.3s}.stagger-animation:nth-child(7){animation-delay:.35s}.stagger-animation:nth-child(8){animation-delay:.4s}@keyframes staggerFadeIn{to{opacity:1;transform:translateY(0)}}@media (max-width: 480px){.loading-overlay{background:#fffffffa}.loading-text{font-size:13px}}:root{--color-nude-pink: #F5D5D0;--color-soft-coral: #FFB5A7;--color-warm-ivory: #FFF8F3;--color-charcoal: #4A4A4A;--color-warm-gray: #8B8680;--color-success-green: #B8D4B8;--color-honey-yellow: #FFD4A3;--color-light-pink: #FDE8E4;--color-deep-coral: #FF9A8B;--color-pastel-orange: #FFE5D9;--shadow-sm: 0 2px 4px rgba(245, 213, 208, .3);--shadow-md: 0 4px 12px rgba(245, 213, 208, .4);--shadow-lg: 0 8px 24px rgba(245, 213, 208, .5);--shadow-xl: 0 16px 48px rgba(245, 213, 208, .6);--shadow-glow: 0 0 20px rgba(255, 181, 167, .3);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--transition-fast: .15s ease-out;--transition-base: .3s ease-out;--transition-slow: .5s ease-out;--transition-spring: .4s cubic-bezier(.68, -.55, .265, 1.55);--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 32px;--text-4xl: 48px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--breakpoint-mobile: 320px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1024px}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;overflow:hidden}body{font-family:Noto Sans JP,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-warm-ivory);color:var(--color-charcoal);height:100%;overflow:hidden;line-height:1.6}#root{height:100%;display:flex;flex-direction:column;overflow:hidden}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.4}button{cursor:pointer;font-family:inherit;transition:all .3s ease-out}input,textarea,select{font-family:inherit}a{color:inherit;text-decoration:none}.container{width:100%;max-width:480px;margin:0 auto;padding:0 16px}@media (max-width: 320px){.container{padding:0 12px}body{font-size:14px}:root{--text-base: 14px;--text-sm: 12px;--text-lg: 16px;--text-xl: 18px;--spacing-md: 12px;--spacing-lg: 20px}}@media (min-width: 321px) and (max-width: 480px){.container{padding:0 16px}}@media (min-width: 481px) and (max-width: 768px){.container{max-width:600px;padding:0 20px}}@media (min-width: 769px){.container{max-width:800px;padding:0 24px}}@media (hover: none) and (pointer: coarse){button,.clickable{min-height:44px;min-width:44px}input,textarea,select{min-height:44px}}@supports (padding: max(0px)){body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.safe-area-top{padding-top:max(20px,env(safe-area-inset-top))}.safe-area-bottom{padding-bottom:max(20px,env(safe-area-inset-bottom))}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.fade-in{animation:fadeIn .5s ease-out}.slide-up{animation:slideUp .3s ease-out}.slide-in-right{animation:slideInRight .4s ease-out}.pulse{animation:pulse 2s infinite}.wobble{animation:wobble .5s ease-in-out}.float{animation:float 3s ease-in-out infinite}.glass{background:#ffffffb3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3)}.neu-flat{background:var(--color-warm-ivory);box-shadow:5px 5px 10px #0000000d,-5px -5px 10px #fffc}.neu-pressed{box-shadow:inset 2px 2px 5px #0000000d,inset -2px -2px 5px #fffc}.tap-scale{transition:transform var(--transition-fast)}.tap-scale:active{transform:scale(.95)}.tap-bounce{transition:transform var(--transition-spring)}.tap-bounce:active{transform:scale(.92)}@media (max-width: 480px){h1{font-size:1.75rem;line-height:1.3}h2{font-size:1.5rem;line-height:1.3}h3{font-size:1.25rem;line-height:1.4}h4{font-size:1.125rem;line-height:1.4}h5{font-size:1rem;line-height:1.5}h6{font-size:.875rem;line-height:1.5}p,span,div{line-height:1.6}}.grid{display:grid;gap:var(--spacing-md)}.grid-1{grid-template-columns:1fr}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 480px){.grid-2{grid-template-columns:1fr}.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}.mobile-grid-1{grid-template-columns:1fr!important}.mobile-grid-2{grid-template-columns:repeat(2,1fr)!important}}@media (max-width: 320px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-reduced-motion: no-preference){:focus-visible{outline:2px solid var(--color-nude-pink);outline-offset:2px;transition:outline-offset .2s ease}}
