← 로그인 카드 (max-w-sm, 패딩, 테두리, 그림자)
+
← 브랜드 아이콘
+
← eyebrow: "Sprout · Career Studio"
+
← 메인 헤드라인 (2줄)
+ "경험을 기록하면"
+ 자기소개서가 자라요 ← 그라디언트 텍스트
+
← 서브 설명 문구
+ ← Google 계정으로 계속하기 버튼
+
← 약관 동의 안내
+
← 구분선
+
← "경험 데이터는 비공개 · 전체 무료"
+ ```
+
+---
+
+## CSS 토큰 정의
+
+`src/app/globals.css` 의 `:root` 블록에 추가할 커스텀 변수 전체 목록.
+
+Tailwind CSS 4.x는 `@theme` 블록으로 토큰을 등록하지 않으면 `var()` 참조만으로 사용 불가. 따라서 **모든 토큰은 `@layer base { :root { … } }` 안에 정의**하고, Tailwind 유틸리티 클래스와 함께 `style` prop 없이 인라인 `var()` 로만 참조한다.
+
+> CONVENTIONS.md §6 "인라인 스타일 금지" 규칙에 따라 CSS 변수는 Tailwind 임의값(arbitrary value) 문법 `[var(--token)]` 으로 사용하거나, 해당 토큰을 래핑하는 전용 유틸리티를 `globals.css`에 정의한다.
+
+```css
+/* src/app/globals.css */
+
+@import 'tailwindcss';
+
+@layer base {
+ :root {
+ /* ── 텍스트 계층 ── */
+ --text-1: oklch(97% 0.005 240); /* 최고 밝기, 헤드라인 */
+ --text-2: oklch(82% 0.01 240); /* 본문 */
+ --text-3: oklch(62% 0.012 240); /* 보조 설명 */
+ --text-4: oklch(45% 0.01 240); /* 비활성, 힌트 */
+
+ /* ── 배경 ── */
+ --bg-base: oklch(12% 0.015 255); /* 전체 배경 */
+ --bg-card: oklch(16% 0.018 255); /* 카드 배경 */
+ --bg-subtle: oklch(19% 0.016 255); /* 호버, 입력 배경 */
+
+ /* ── 테두리 ── */
+ --border-subtle: oklch(28% 0.02 255); /* 구분선 */
+ --border-default: oklch(35% 0.022 255); /* 카드 테두리, 인풋 */
+
+ /* ── 그린 팔레트 (브랜드 컬러) ── */
+ --green-100: oklch(92% 0.08 155); /* 배경 틴트 */
+ --green-200: oklch(78% 0.14 155); /* 아이콘, 배지 */
+ --green-300: oklch(68% 0.18 155); /* 기본 강조 */
+ --green-400: oklch(58% 0.21 155); /* 호버, 활성 */
+
+ /* ── 그라디언트 ── */
+ --grad-text: linear-gradient(
+ 105deg,
+ var(--green-200) 0%,
+ var(--green-100) 55%,
+ oklch(88% 0.07 180) 100%
+ );
+ --grad-glow: radial-gradient(
+ ellipse 60% 40% at 50% 0%,
+ oklch(35% 0.1 155 / 0.25) 0%,
+ transparent 70%
+ );
+ --grad-ai: linear-gradient(
+ 135deg,
+ oklch(60% 0.18 280) 0%,
+ var(--green-300) 50%,
+ oklch(72% 0.15 170) 100%
+ );
+
+ /* ── 상태 색상 ── */
+ --warn: oklch(75% 0.18 60); /* 주의/경고 (앰버 계열) */
+
+ /* ── 공통 유틸 ── */
+ --radius-card: 1rem; /* 16px */
+ --radius-btn: 0.625rem; /* 10px */
+ --shadow-card:
+ 0 4px 32px oklch(0% 0 0 / 0.35), 0 1px 4px oklch(0% 0 0 / 0.2);
+ }
+}
+```
+
+---
+
+## Tailwind 클래스 매핑
+
+원본 디자인 커스텀 클래스를 Tailwind CSS 4.x 유틸리티로 대체하는 매핑표.
+
+| 원본 클래스 | 역할 | Tailwind 유틸리티 변환 |
+| --------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `.screen` | 전체 화면 래퍼 | `min-h-screen w-full relative overflow-hidden` |
+| `.app-bg` | 글로우 배경 | `absolute inset-0 pointer-events-none` + `style` 대신 `bg-[var(--grad-glow)]` (arbitrary value) |
+| `.login-screen` | 중앙 정렬 컨테이너 | `relative z-10 flex min-h-screen items-center justify-center px-4 py-16` |
+| `.login-card` | 카드 컨테이너 | `w-full max-w-sm flex flex-col gap-4 rounded-[var(--radius-card)] border border-[var(--border-default)] bg-[var(--bg-card)] p-8 shadow-[var(--shadow-card)]` |
+| `.login-glyph` | 로고 아이콘 래퍼 | `flex h-10 w-10 items-center justify-center rounded-xl bg-[var(--bg-subtle)] text-[var(--green-300)]` |
+| `.eyebrow` | 앱 이름 소제목 | `text-xs font-semibold uppercase tracking-widest text-[var(--text-4)]` |
+| `h1` | 헤드라인 | `text-2xl font-bold leading-snug text-[var(--text-1)]` |
+| `.grad-text` | 그라디언트 텍스트 | `bg-[var(--grad-text)] bg-clip-text text-transparent` |
+| `p` (설명) | 서브 설명 | `text-sm leading-relaxed text-[var(--text-3)]` |
+| `.google-btn` | Google 로그인 버튼 | `flex w-full items-center justify-center gap-3 rounded-[var(--radius-btn)] bg-white px-4 py-3 text-sm font-medium text-gray-800 shadow-sm transition-opacity hover:opacity-90` |
+| 약관 문구 | 캡션 | `text-center text-xs text-[var(--text-4)]` |
+| `.divider` | 구분선 | `border-t border-[var(--border-subtle)]` |
+| 무료 문구 | 배지형 캡션 | `text-center text-xs text-[var(--text-4)]` |
+
+> **주의:** `bg-[var(--grad-glow)]`처럼 `background` 단축 속성에 그라디언트를 arbitrary value로 쓸 때, Tailwind 4.x는 `bg-[image:var(--grad-glow)]` 형태가 필요할 수 있다. 구현 시 빌드 결과를 확인하고 필요하면 `globals.css`에 직접 `.app-bg { background: var(--grad-glow); }` 유틸리티를 추가한다.
+
+---
+
+## Mock 데이터 타입
+
+랜딩 페이지는 데이터 모델을 사용하지 않는다. 정적 마크업만으로 구성된다.
+
+---
+
+## 테스트 케이스 (Vitest + React Testing Library)
+
+파일: `src/components/ui/LogoGlyph.test.tsx`
+
+| # | 테스트명 | Given | When | Then |
+| --- | ------------------------------- | --------------------------------- | --------------- | ------------------------------- |
+| 1 | 기본 size로 SVG를 렌더링한다 | size prop 없이 렌더링 | 컴포넌트 마운트 | `