@import "tailwindcss"; @import "tw-animate-css"; @import "shadcn/tailwind.css"; @import "@fontsource-variable/geist"; /* 디자인 토큰(색상·폰트·radius)은 tokens.css 단일 소스에서 관리. 다른 프로젝트와 공유 가능. */ @import "./tokens.css"; /* Pretendard 가변폰트 self-host (public/fonts). 한국어 본문 기본 서체. */ @font-face { font-family: 'Pretendard Variable'; font-weight: 45 920; font-style: normal; font-display: swap; src: url('/fonts/PretendardVariable.woff2') format('woff2'); } body { background-color: var(--background); color: var(--foreground); font-family: var(--font-sans); margin: 0; padding: 0; transition: background-color 0.2s ease, color 0.2s ease; } /* Custom styles for professional scrollbars */ ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: var(--muted-foreground); } @layer base { * { @apply border-border outline-ring/50; } body { @apply bg-background text-foreground; } html { @apply font-sans; } } /* 낙찰 도장 슬램 — 크게 들어와 탁 박히고(0.9로 오버슈트) 엷게(0.75) settle. rotate 포함해 transform 충돌 방지 */ @theme { --animate-stamp: stamp 0.42s cubic-bezier(0.2, 0.8, 0.2, 1) both; } @keyframes stamp { 0% { opacity: 0; transform: rotate(-12deg) scale(1.8); } 55% { opacity: 0.95; transform: rotate(-12deg) scale(0.9); } 100% { opacity: 0.75; transform: rotate(-12deg) scale(1); } } /* 노치/홈 인디케이터 회피 (viewport-fit=cover 와 짝). 안전영역이 0 인 기기에선 아무 영향 없다. 화면 맨 위/맨 아래에 붙는 바에만 붙인다 — 스크롤되는 본문에는 쓰지 않는다. */ @layer components { .safe-t { padding-top: env(safe-area-inset-top); } .safe-b { padding-bottom: env(safe-area-inset-bottom); } .safe-x { padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); } }