/* ===== 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-md); display: flex; flex-direction: column; gap: var(--space-md); min-height: 100vh; } /* ===== Hero ===== */ .hero { text-align: center; padding-top: var(--space-sm); } .logo { display: flex; flex-direction: column; align-items: center; gap: var(--space-sm); } .sake-icon { font-size: 48px; line-height: 1; display: block; } .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; } /* ===== 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; } /* ===== 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; } .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-lg); } }