feat(release): prepare 1.1.0 candidate

This commit is contained in:
Yun Chan 2026-08-29 18:33:45 +09:00
parent 5a34f66981
commit 5205dcdfa9
736 changed files with 115667 additions and 12203 deletions

View file

@ -4,60 +4,78 @@
/* ── Base Reset & Globals ──────────────────────────────── */
@layer base {
:root {
--font-sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;
--font-display: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;
}
html {
scroll-behavior: smooth;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
font-family: var(--font-sans);
}
::selection {
background-color: rgba(242, 91, 41, 0.3);
color: #fafafa;
background-color: rgba(59, 130, 246, 0.35);
color: #ffffff;
}
::-webkit-scrollbar {
width: 6px;
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: #0d0d0f;
background: #08090c;
}
::-webkit-scrollbar-thumb {
background: #333338;
border-radius: 3px;
background: #222838;
border-radius: 4px;
border: 2px solid #08090c;
}
::-webkit-scrollbar-thumb:hover {
background: #4a4b50;
background: #363f57;
}
body {
overflow-x: hidden;
background-color: #08090c;
color: #f4f4f5;
}
/* Accessibility Focus Rings */
:focus-visible {
outline: 2px solid #3b82f6;
outline-offset: 2px;
}
}
/* ── Grid Background Pattern ──────────────────────────── */
.bg-grid {
background-image:
linear-gradient(rgba(242, 91, 41, 0.03) 1px, transparent 1px),
linear-gradient(90deg, rgba(242, 91, 41, 0.03) 1px, transparent 1px);
background-size: 60px 60px;
linear-gradient(rgba(59, 130, 246, 0.035) 1px, transparent 1px),
linear-gradient(90deg, rgba(59, 130, 246, 0.035) 1px, transparent 1px);
background-size: 64px 64px;
}
.bg-grid-dense {
background-image:
linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
background-size: 20px 20px;
linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
background-size: 24px 24px;
}
/* ── CRT Screen Effect (CSS only) ─────────────────────── */
/* ── CRT Screen Effect (Crisp High-Contrast) ─────────── */
.crt-screen {
position: relative;
overflow: hidden;
background: linear-gradient(180deg, #050605 0%, #0a0b0a 100%);
border: 1px solid rgba(242, 91, 41, 0.1);
background: linear-gradient(180deg, #05070a 0%, #0a0e14 100%);
border: 1px solid rgba(59, 130, 246, 0.2);
box-shadow:
inset 0 2px 8px rgba(0, 0, 0, 0.8),
0 0 30px rgba(242, 91, 41, 0.05);
inset 0 2px 10px rgba(0, 0, 0, 0.9),
0 0 32px rgba(59, 130, 246, 0.08);
}
.crt-screen::before {
@ -68,8 +86,8 @@
0deg,
transparent,
transparent 2px,
rgba(0, 0, 0, 0.15) 2px,
rgba(0, 0, 0, 0.15) 4px
rgba(0, 0, 0, 0.2) 2px,
rgba(0, 0, 0, 0.2) 4px
);
pointer-events: none;
z-index: 2;
@ -81,9 +99,9 @@
inset: 0;
background: linear-gradient(
180deg,
rgba(242, 91, 41, 0.02) 0%,
rgba(59, 130, 246, 0.03) 0%,
transparent 50%,
rgba(242, 91, 41, 0.01) 100%
rgba(59, 130, 246, 0.015) 100%
);
animation: scan 8s linear infinite;
pointer-events: none;
@ -98,7 +116,7 @@
/* ── Crosshair Decorations ─────────────────────────────── */
.crosshair-box {
--ch-size: 16px;
--ch-color: rgba(242, 91, 41, 0.35);
--ch-color: rgba(59, 130, 246, 0.4);
position: relative;
}
@ -109,8 +127,8 @@
left: -1px;
width: var(--ch-size);
height: var(--ch-size);
border-top: 1px solid var(--ch-color);
border-left: 1px solid var(--ch-color);
border-top: 1.5px solid var(--ch-color);
border-left: 1.5px solid var(--ch-color);
pointer-events: none;
}
@ -121,8 +139,8 @@
right: -1px;
width: var(--ch-size);
height: var(--ch-size);
border-bottom: 1px solid var(--ch-color);
border-right: 1px solid var(--ch-color);
border-bottom: 1.5px solid var(--ch-color);
border-right: 1.5px solid var(--ch-color);
pointer-events: none;
}
@ -134,7 +152,7 @@
content: '';
position: absolute;
inset: 0;
opacity: 0.025;
opacity: 0.03;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
background-repeat: repeat;
background-size: 256px 256px;
@ -142,6 +160,24 @@
border-radius: inherit;
}
/* ── Glass Surfaces & Double Bezel ─────────────────────── */
.glass-panel {
background: rgba(19, 22, 31, 0.75);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.08);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 12px 32px -4px rgba(0, 0, 0, 0.5);
}
.glass-panel-hover {
transition: all 250ms cubic-bezier(0.16, 1, 0.3, 1);
}
.glass-panel-hover:hover {
border-color: rgba(59, 130, 246, 0.35);
background: rgba(26, 30, 43, 0.85);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 0 20px rgba(59, 130, 246, 0.15);
}
/* ── Glow Button ───────────────────────────────────────── */
.glow-btn {
position: relative;
@ -152,7 +188,7 @@
content: '';
position: absolute;
inset: -2px;
background: linear-gradient(135deg, rgba(242, 91, 41, 0.4), rgba(242, 91, 41, 0) 60%);
background: linear-gradient(135deg, rgba(59, 130, 246, 0.45), rgba(59, 130, 246, 0) 65%);
border-radius: inherit;
opacity: 0;
transition: opacity 250ms;
@ -162,46 +198,60 @@
opacity: 1;
}
.glow-btn:hover {
box-shadow: 0 0 20px rgba(242, 91, 41, 0.3), 0 0 40px rgba(242, 91, 41, 0.1);
box-shadow: 0 0 24px rgba(59, 130, 246, 0.35), 0 0 48px rgba(59, 130, 246, 0.12);
transform: translateY(-1px);
}
.glow-btn:active {
transform: translateY(0);
transform: translateY(0) scale(0.98);
}
/* ── Accordion ─────────────────────────────────────────── */
.accordion-content {
display: grid;
grid-template-rows: 0fr;
transition: grid-template-rows 300ms ease;
transition: grid-template-rows 250ms cubic-bezier(0.16, 1, 0.3, 1), opacity 200ms ease;
overflow: hidden;
opacity: 0;
visibility: hidden;
}
.accordion-content.open {
grid-template-rows: 1fr;
opacity: 1;
visibility: visible;
}
.accordion-content > div {
overflow: hidden;
min-height: 0;
}
/* ── Reveal Animation ──────────────────────────────────── */
.reveal {
opacity: 0;
transform: translateY(20px);
transform: translateY(16px);
}
.reveal.visible {
animation: fade-in-up 0.6s ease-out forwards;
animation: fade-in-up 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes fade-in-up {
0% { opacity: 0; transform: translateY(20px); }
0% { opacity: 0; transform: translateY(16px); }
100% { opacity: 1; transform: translateY(0); }
}
/* ── Utilities ─────────────────────────────────────────── */
@layer base {
/* 의미적 강조는 세미볼드까지 — 볼드(700) 헤드라인 금지 (한글 과중 방지) */
strong, b { font-weight: 600; }
}
@layer utilities {
.text-balance {
text-wrap: balance;
}
.break-keep {
word-break: keep-all;
overflow-wrap: break-word;
}
.border-hairline {
border-color: rgba(255, 255, 255, 0.06);
border-color: rgba(255, 255, 255, 0.08);
}
}