From d34bedcb4c6ececf5940eeb6e1be6263510d3589 Mon Sep 17 00:00:00 2001 From: gahusb Date: Wed, 27 May 2026 01:53:45 +0900 Subject: [PATCH] =?UTF-8?q?feat(saju-ui-v2):=20shell.css=20=E2=80=94=20pap?= =?UTF-8?q?er/night/mt-wash=20=EB=B0=B0=EA=B2=BD=20+=20screenIn/paw-bob=20?= =?UTF-8?q?=EC=95=A0=EB=8B=88=EB=A9=94=EC=9D=B4=EC=85=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/saju/_shell/shell.css | 81 +++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/pages/saju/_shell/shell.css diff --git a/src/pages/saju/_shell/shell.css b/src/pages/saju/_shell/shell.css new file mode 100644 index 0000000..596ff34 --- /dev/null +++ b/src/pages/saju/_shell/shell.css @@ -0,0 +1,81 @@ +/* 호령 사주 v2 — 배경 + ornament + animation */ + +/* paper texture */ +.saju-v2 .paper-bg { + background: + radial-gradient(ellipse at top, rgba(212, 175, 55, 0.06), transparent 60%), + radial-gradient(ellipse at bottom, rgba(106, 76, 124, 0.04), transparent 60%), + linear-gradient(180deg, var(--ivory) 0%, var(--ivory-soft) 100%); + position: relative; +} +.saju-v2 .paper-bg::after { + content: ''; + position: absolute; inset: 0; pointer-events: none; + background-image: + radial-gradient(circle at 20% 30%, rgba(180, 140, 80, 0.04) 0, transparent 40%), + radial-gradient(circle at 80% 70%, rgba(180, 140, 80, 0.04) 0, transparent 40%); +} + +/* night sky */ +.saju-v2 .night-bg { + background: + radial-gradient(ellipse 80% 50% at 30% 20%, rgba(232, 199, 107, 0.18), transparent 60%), + radial-gradient(ellipse 60% 40% at 80% 80%, rgba(106, 76, 124, 0.3), transparent 60%), + linear-gradient(180deg, var(--navy-deep) 0%, var(--navy) 55%, #1A2238 100%); + position: relative; + color: var(--ivory); +} + +/* mountain wash (desktop hero) */ +.saju-v2 .mt-wash { + position: relative; + background: + radial-gradient(ellipse 70% 50% at 10% 80%, rgba(31, 42, 68, 0.06), transparent 65%), + radial-gradient(ellipse 60% 40% at 90% 70%, rgba(31, 42, 68, 0.05), transparent 65%), + radial-gradient(ellipse 100% 60% at 50% 100%, rgba(212, 175, 55, 0.04), transparent 70%), + linear-gradient(180deg, var(--ivory-soft) 0%, #F4ECDB 100%); +} +.saju-v2 .mt-wash::before, +.saju-v2 .mt-wash::after { + content: ''; position: absolute; pointer-events: none; + background-repeat: no-repeat; opacity: 0.35; background-size: contain; +} +.saju-v2 .mt-wash::before { + left: 0; bottom: 0; width: 320px; height: 160px; + background-image: url("data:image/svg+xml;utf8,"); +} +.saju-v2 .mt-wash::after { + right: 0; bottom: 0; width: 380px; height: 180px; + background-image: url("data:image/svg+xml;utf8,"); +} + +/* screen entry */ +@keyframes saju-screen-in { + from { transform: translateY(6px); opacity: 0.8; } + to { transform: translateY(0); opacity: 1; } +} +.saju-v2 .screen-in { + animation: saju-screen-in 0.3s cubic-bezier(0.16, 1, 0.3, 1) both; +} + +/* paw bob */ +@keyframes saju-paw-bob { + 0%, 100% { transform: translateY(0); } + 50% { transform: translateY(-2px); } +} +.saju-v2 .paw-bob { + animation: saju-paw-bob 2.4s ease-in-out infinite; + display: inline-block; +} + +/* page container */ +.saju-v2 .page { + min-height: 100vh; + padding-bottom: var(--bottom-nav-h); +} +@media (min-width: 1024px) { + .saju-v2 .page { + padding-bottom: 0; + padding-top: var(--desktop-header-h); + } +}