/* ===== Design Tokens ===== */ :root { /* 和紙×墨×琥珀 Color Palette */ --washi-white: #FDFBF7; --sumi-black: #4A3B32; --kohaku-gold: #D4A574; --kohaku-deep: #B8860B; /* Neutral */ --gray-100: #F5F5F5; --gray-200: #E8E5E0; --gray-400: #9E9A94; --gray-600: #6E6A64; /* Spacing */ --space-xs: 0.25rem; --space-sm: 0.5rem; --space-md: 1rem; --space-lg: 2rem; --space-xl: 4rem; /* Typography */ --font-sans: 'Noto Sans JP', -apple-system, sans-serif; --font-serif: 'Noto Serif JP', Georgia, serif; /* Transitions */ --ease-out: cubic-bezier(0.16, 1, 0.3, 1); } /* ===== Reset & Base ===== */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { font-size: 16px; -webkit-font-smoothing: antialiased; } body { font-family: var(--font-sans); font-weight: 300; background: var(--washi-white); color: var(--sumi-black); min-height: 100vh; line-height: 1.6; } a { color: inherit; text-decoration: none; } /* ===== Layout ===== */ .container { max-width: 480px; margin: 0 auto; padding: var(--space-lg) var(--space-md); display: flex; flex-direction: column; gap: var(--space-xl); min-height: 100vh; } /* ===== Hero ===== */ .hero { text-align: center; padding-top: var(--space-xl); } .logo { display: flex; flex-direction: column; align-items: center; gap: var(--space-sm); } .sake-icon { width: 48px; height: 48px; color: var(--kohaku-gold); } .logo h1 { font-family: var(--font-serif); font-size: 1.75rem; font-weight: 500; letter-spacing: 0.05em; } .tagline { margin-top: var(--space-md); font-size: 0.875rem; color: var(--gray-600); letter-spacing: 0.1em; } /* ===== Preview ===== */ .preview { display: flex; justify-content: center; } .phone-frame { width: 200px; height: 400px; background: var(--sumi-black); border-radius: 32px; padding: 12px; box-shadow: 0 25px 50px -12px rgba(74, 59, 50, 0.25), inset 0 0 0 2px rgba(255, 255, 255, 0.1); } .screen-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, var(--gray-100) 0%, var(--washi-white) 100%); border-radius: 24px; overflow: hidden; display: flex; align-items: center; justify-content: center; } .grid-preview { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; padding: 16px; width: 100%; } .grid-item { aspect-ratio: 1; background: linear-gradient(145deg, var(--kohaku-gold), var(--kohaku-deep)); border-radius: 8px; opacity: 0.6; } .grid-item:nth-child(2) { opacity: 0.4; } .grid-item:nth-child(3) { opacity: 0.8; } .grid-item:nth-child(4) { opacity: 0.5; } .grid-item:nth-child(5) { opacity: 0.7; } .grid-item:nth-child(6) { opacity: 0.3; } /* ===== Download ===== */ .download { display: flex; flex-direction: column; align-items: center; gap: var(--space-md); } .version-cards { display: flex; gap: var(--space-md); width: 100%; } .version-card { flex: 1; display: flex; flex-direction: column; align-items: center; gap: var(--space-sm); padding: var(--space-lg) var(--space-md); background: white; border: 1px solid var(--gray-200); border-radius: 16px; transition: all 0.3s var(--ease-out); cursor: pointer; } .version-card:hover { border-color: var(--kohaku-gold); transform: translateY(-2px); box-shadow: 0 12px 24px -8px rgba(74, 59, 50, 0.15); } .version-card.pro { border-color: var(--kohaku-gold); background: linear-gradient(180deg, white 0%, rgba(212, 165, 116, 0.05) 100%); } .card-header { display: flex; align-items: center; gap: var(--space-sm); } .version-name { font-weight: 500; font-size: 1.125rem; } .version-badge { font-size: 0.625rem; padding: 0.125rem 0.5rem; border-radius: 100px; text-transform: uppercase; letter-spacing: 0.05em; } .version-badge.free { background: var(--gray-200); color: var(--gray-600); } .version-badge.pro-badge { background: var(--kohaku-gold); color: white; } .card-icon { width: 32px; height: 32px; color: var(--sumi-black); opacity: 0.6; } .file-size { font-size: 0.75rem; color: var(--gray-400); } .platform-note { font-size: 0.75rem; color: var(--gray-400); } /* ===== Features ===== */ .features { display: flex; justify-content: center; gap: var(--space-lg); } .feature { display: flex; flex-direction: column; align-items: center; gap: var(--space-xs); } .feature svg { width: 24px; height: 24px; color: var(--sumi-black); opacity: 0.5; } .feature span { font-size: 0.625rem; color: var(--gray-400); letter-spacing: 0.1em; } /* ===== Footer ===== */ footer { margin-top: auto; text-align: center; padding: var(--space-lg) 0; } footer p { font-size: 0.75rem; color: var(--gray-400); } /* ===== Dark Mode ===== */ @media (prefers-color-scheme: dark) { :root { --washi-white: #121212; --sumi-black: #E8E5E0; --gray-100: #1E1E1E; --gray-200: #2A2A2A; --gray-400: #6E6A64; --gray-600: #9E9A94; } .phone-frame { background: #2A2A2A; } .screen-placeholder { background: linear-gradient(135deg, #1E1E1E 0%, #2A2A2A 100%); } .version-card { background: #1E1E1E; border-color: #2A2A2A; } .version-card:hover { border-color: var(--kohaku-gold); box-shadow: 0 12px 24px -8px rgba(0, 0, 0, 0.5); } .version-card.pro { background: linear-gradient(180deg, #1E1E1E 0%, rgba(212, 165, 116, 0.08) 100%); } .version-badge.free { background: #2A2A2A; color: #9E9A94; } } /* ===== Responsive ===== */ @media (min-width: 768px) { .container { padding: var(--space-xl); } .phone-frame { width: 240px; height: 480px; } }