@tailwind base; @tailwind components; @tailwind utilities; html, body { background: #0f0f10; color: #FFFFFF; font-feature-settings: "cv02", "cv03", "cv04", "cv11", "ss01"; -webkit-font-smoothing: antialiased; } * { box-sizing: border-box; } body { font-family: ui-sans-serif, system-ui, -apple-system, "SF Pro Text", "PingFang SC", "Noto Sans SC", "Helvetica Neue", sans-serif; background-color: #0f0f10; background-image: radial-gradient(circle at 18% 18%, rgba(110, 99, 200, 0.16), transparent 28%), radial-gradient(circle at 78% 28%, rgba(73, 199, 182, 0.14), transparent 28%), radial-gradient(circle at 48% 76%, rgba(185, 194, 42, 0.14), transparent 34%), linear-gradient(180deg, #171717 0%, #0f0f10 48%, #080809 100%); background-attachment: fixed; min-height: 100vh; } ::selection { background: rgba(185, 194, 42, 0.28); color: #fff; } .login-oasis-loop { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; isolation: isolate; contain: strict; background: #0d1d0b; } .oasis-loop__sky, .oasis-loop__light, .oasis-loop__haze, .oasis-loop__grass, .oasis-loop__grain { position: absolute; inset: 0; pointer-events: none; } .oasis-loop__sky { background: radial-gradient(circle at 70% 22%, rgba(255, 238, 152, 0.42), transparent 26%), radial-gradient(circle at 26% 56%, rgba(230, 245, 120, 0.24), transparent 34%), linear-gradient(180deg, #2f4a23 0%, #172d12 42%, #0a1708 100%); } .oasis-loop__light { inset: -18%; background: conic-gradient(from 26deg at 72% 30%, transparent 0 18%, rgba(255, 240, 170, 0.18) 22%, transparent 36% 100%), radial-gradient(ellipse at 68% 36%, rgba(230, 245, 120, 0.16), transparent 42%); filter: blur(18px); opacity: 0.9; } .oasis-loop__haze { inset: -8% -12%; background: linear-gradient(104deg, transparent 0 20%, rgba(255, 255, 220, 0.12) 24%, transparent 36% 100%), linear-gradient(74deg, transparent 0 48%, rgba(214, 179, 106, 0.10) 56%, transparent 70% 100%), repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.035) 0 1px, transparent 1px 70px); mix-blend-mode: screen; opacity: 0.82; transform: translate3d(-1.5%, 0, 0) scale(1.04); animation: oasis-haze-loop 18s ease-in-out infinite; } .oasis-loop__grass { top: auto; bottom: -9vh; height: 55vh; transform-origin: 50% 100%; mask-image: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.7) 20%, #000 100%); } .oasis-loop__grass--back { opacity: 0.46; background: linear-gradient(180deg, transparent, rgba(61, 100, 42, 0.38) 34%, rgba(5, 18, 5, 0.94)), repeating-linear-gradient(102deg, transparent 0 18px, rgba(214, 232, 130, 0.18) 18px 20px, transparent 20px 38px), repeating-linear-gradient(83deg, transparent 0 24px, rgba(111, 160, 79, 0.22) 24px 26px, transparent 26px 48px); animation: oasis-grass-loop 9s ease-in-out infinite alternate; } .oasis-loop__grass--front { bottom: -13vh; height: 49vh; opacity: 0.58; background: linear-gradient(180deg, transparent, rgba(20, 52, 14, 0.46) 32%, rgba(1, 7, 1, 0.98)), repeating-linear-gradient(107deg, transparent 0 10px, rgba(232, 246, 132, 0.22) 10px 12px, transparent 12px 26px), repeating-linear-gradient(76deg, transparent 0 16px, rgba(76, 129, 54, 0.28) 16px 18px, transparent 18px 31px); animation: oasis-grass-loop 7s ease-in-out infinite alternate-reverse; } .oasis-loop__grain { background-image: linear-gradient(90deg, rgba(255, 255, 255, 0.032) 1px, transparent 1px), linear-gradient(180deg, rgba(255, 255, 255, 0.026) 1px, transparent 1px); background-size: 64px 64px; opacity: 0.48; } @keyframes oasis-haze-loop { 0%, 100% { transform: translate3d(-1.5%, 0, 0) scale(1.04); } 50% { transform: translate3d(1.5%, -1%, 0) scale(1.06); } } @keyframes oasis-grass-loop { 0% { transform: skewX(-0.6deg) translate3d(-0.5%, 0, 0); } 100% { transform: skewX(0.8deg) translate3d(0.5%, -1%, 0); } } @media (prefers-reduced-motion: reduce) { .oasis-loop__haze, .oasis-loop__grass { animation: none; } } .app-oasis .login-oasis-canvas { z-index: 0; opacity: 0.18; filter: saturate(0.72) contrast(0.92) grayscale(0.34); } .app-oasis .login-oasis-loop { opacity: 0.2; filter: saturate(0.72) brightness(0.72); } .app-oasis-shade { position: fixed; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(circle at 21% 24%, rgba(110, 99, 200, 0.18), transparent 30%), radial-gradient(circle at 84% 28%, rgba(73, 199, 182, 0.15), transparent 28%), radial-gradient(circle at 58% 84%, rgba(185, 194, 42, 0.12), transparent 34%), linear-gradient(90deg, rgba(0, 0, 0, 0.52), rgba(20, 20, 20, 0.26) 44%, rgba(0, 0, 0, 0.46)), linear-gradient(180deg, rgba(0, 0, 0, 0.20), rgba(0, 0, 0, 0.02) 36%, rgba(0, 0, 0, 0.58)), linear-gradient(90deg, rgba(255, 255, 255, 0.022) 1px, transparent 1px), linear-gradient(180deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px); background-size: auto, auto, 64px 64px, 64px 64px; } .app-grass-floor { position: fixed; left: 0; right: 0; bottom: 0; z-index: 2; height: 34vh; pointer-events: none; opacity: 0.08; background: linear-gradient(180deg, transparent, rgba(10, 25, 7, 0.62) 60%, rgba(0, 0, 0, 0.82)), repeating-linear-gradient(103deg, transparent 0 13px, rgba(204, 230, 120, 0.18) 13px 14px, transparent 14px 28px), repeating-linear-gradient(78deg, transparent 0 18px, rgba(98, 146, 76, 0.22) 18px 20px, transparent 20px 34px); mask-image: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.8) 38%, #000 100%); } /* ===== Buttons ===== */ .btn { @apply inline-flex items-center justify-center gap-1.5 px-4 py-2 rounded-[8px] text-sm font-medium transition-all; } .btn-primary { @apply active:scale-[0.98]; background: linear-gradient(135deg, rgba(217, 223, 42, 0.96), rgba(214, 179, 106, 0.94)); color: #081006; box-shadow: 0 6px 24px -8px rgba(99, 102, 241, 0.6), inset 0 1px 0 rgba(255,255,255,0.18); } .btn-primary:hover { filter: brightness(1.06); } .btn-ghost { @apply text-white/80 active:scale-[0.98]; border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(255, 255, 255, 0.055); } .btn-outline { @apply text-white/80 active:scale-[0.98]; border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(255, 255, 255, 0.05); } .btn-glass { @apply text-white backdrop-blur-xl active:scale-[0.98]; border: 1px solid rgba(255, 255, 255, 0.13); background: rgba(255, 255, 255, 0.07); } /* ===== Cards (glass) ===== */ .card { @apply relative rounded-[8px] backdrop-blur-xl; border: 1px solid rgba(255, 255, 255, 0.10); background: linear-gradient(135deg, rgba(255, 255, 255, 0.085), rgba(255, 255, 255, 0.035)), rgba(42, 42, 42, 0.58); box-shadow: 0 1px 0 0 rgba(255,255,255,0.08) inset, 0 22px 70px -30px rgba(0,0,0,0.82), 0 0 42px -34px rgba(73, 199, 182, 0.64); } .card-2 { @apply rounded-[8px] backdrop-blur-xl; border: 1px solid rgba(255, 255, 255, 0.10); background: rgba(255, 255, 255, 0.055); } .card-hover { @apply transition-all; } .card-hover:hover, .card:hover { border-color: rgba(255, 255, 255, 0.18); } /* ===== Chips ===== */ .chip { @apply inline-flex items-center gap-1.5 px-2.5 py-1 rounded-[8px] text-[11px] font-medium border; } .chip-mock { @apply bg-amber-500/10 text-amber-300 border-amber-400/30; } .chip-live { @apply border-emerald-400/30; background: rgba(142, 190, 104, 0.13); color: #dff5a8; } .chip-neutral { color: rgba(255, 255, 255, 0.7); border-color: rgba(255, 255, 255, 0.11); background: rgba(255, 255, 255, 0.055); } .chip-violet { border-color: rgba(230, 245, 120, 0.28); background: rgba(230, 245, 120, 0.12); color: #e6f578; } /* ===== Segmented ===== */ .seg { @apply inline-flex p-1 rounded-[8px] gap-1; border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(255, 255, 255, 0.055); backdrop-filter: blur(16px); } .seg-item { @apply px-3 py-1.5 rounded-[7px] text-xs font-medium text-white/55 transition-all cursor-pointer; } .seg-item-active { color: #081006; background: linear-gradient(135deg, rgba(230,245,120,0.92), rgba(214,179,106,0.86)); box-shadow: inset 0 1px 0 rgba(255,255,255,0.35), 0 4px 16px -8px rgba(230,245,120,0.6); } /* ===== Tiles ===== */ .tile { @apply relative aspect-square overflow-hidden rounded-[8px] transition-all cursor-pointer; background: linear-gradient(135deg, rgba(255,255,255,0.08), rgba(255,255,255,0.025)), rgba(42, 42, 42, 0.62); box-shadow: 0 1px 0 rgba(255,255,255,0.08) inset, 0 18px 50px -28px rgba(0,0,0,0.8); --tw-ring-color: rgba(255, 255, 255, 0.14); border: 1px solid rgba(255, 255, 255, 0.10); } .tile-selected { position: relative; background: linear-gradient(#071006, #071006) padding-box, linear-gradient(135deg, #e6f578, #d6b36a) border-box; border: 2px solid transparent; box-shadow: 0 0 0 1px rgba(230,245,120,0.22), 0 8px 32px -8px rgba(230,245,120,0.46); } .tile-rejected { @apply opacity-30 grayscale; } .tile-keynum { @apply absolute top-2 left-2 w-7 h-7 rounded-lg bg-black/60 backdrop-blur text-[11px] font-semibold text-white/85 flex items-center justify-center ring-1 ring-white/10; font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace; } .tile-badge { @apply absolute top-2 right-2 w-7 h-7 rounded-full flex items-center justify-center text-xs font-bold; box-shadow: 0 6px 18px -4px rgba(0,0,0,0.6); } .tile-badge-selected { background: linear-gradient(135deg, #e6f578, #d6b36a); color: #081006; } .tile-badge-rejected { @apply bg-rose-500 text-white; } /* ===== Fields ===== */ input, textarea { font-family: inherit; } .field { @apply w-full rounded-[8px] px-3.5 py-3 text-sm text-white placeholder:text-white/30 outline-none resize-none transition-colors; background: rgba(18, 18, 18, 0.56); border: 1px solid rgba(255, 255, 255, 0.11); box-shadow: inset 0 1px 0 rgba(255,255,255,0.05); } .field:focus { border-color: rgba(230, 245, 120, 0.5); box-shadow: 0 0 0 4px rgba(230, 245, 120, 0.12); } /* ===== KBD ===== */ .kbd { @apply inline-flex items-center justify-center min-w-[20px] h-5 px-1.5 rounded-[6px] text-[10px] font-medium text-white/70; border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(255, 255, 255, 0.06); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace; } /* ===== Section header ===== */ .section-eyebrow { @apply inline-block text-[10px] font-semibold uppercase tracking-[0.18em]; color: rgba(217, 223, 42, 0.82); text-shadow: 0 0 22px rgba(217, 223, 42, 0.16); } .glass-sidebar { border-right: 1px solid rgba(255, 255, 255, 0.10); background: linear-gradient(180deg, rgba(46, 46, 46, 0.78), rgba(22, 22, 22, 0.70)), rgba(42, 42, 42, 0.54); box-shadow: inset -1px 0 0 rgba(255,255,255,0.04), 16px 0 70px -44px rgba(0,0,0,0.95); backdrop-filter: blur(18px); } .app-oasis main { background: linear-gradient(90deg, rgba(0,0,0,0.16), rgba(42,42,42,0.08)); } .project-shell { background: radial-gradient(circle at 22% 8%, rgba(230, 245, 120, 0.12), transparent 34%), radial-gradient(circle at 86% 18%, rgba(73, 199, 182, 0.09), transparent 30%), linear-gradient(135deg, rgba(255,255,255,0.025), rgba(255,255,255,0)); } .project-dock { border-right: 1px solid rgba(255, 255, 255, 0.10); background: linear-gradient(180deg, rgba(36, 36, 36, 0.76), rgba(12, 12, 12, 0.64)), rgba(24, 24, 24, 0.60); box-shadow: inset -1px 0 0 rgba(255,255,255,0.04), 18px 0 70px -48px rgba(0,0,0,0.96); backdrop-filter: blur(20px); } .project-dock--closed { display: flex; justify-content: center; } .project-dock-list, .project-brief-panel, .project-production-panel { scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, 0.18) transparent; } .project-dock-list::-webkit-scrollbar, .project-brief-panel::-webkit-scrollbar, .project-production-panel::-webkit-scrollbar { width: 8px; } .project-dock-list::-webkit-scrollbar-thumb, .project-brief-panel::-webkit-scrollbar-thumb, .project-production-panel::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(255, 255, 255, 0.16); } .project-stage { overflow: hidden; } .project-stage-inner { display: flex; height: 100%; min-height: 0; flex-direction: column; gap: 14px; padding: 18px 22px 20px; } .project-topbar { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid rgba(255,255,255,0.09); border-radius: 8px; background: linear-gradient(135deg, rgba(255,255,255,0.065), rgba(255,255,255,0.026)), rgba(24,24,24,0.46); box-shadow: inset 0 1px 0 rgba(255,255,255,0.07); backdrop-filter: blur(18px); padding: 10px 14px; } .project-empty-canvas { min-height: 0; overflow: auto; } .project-board { display: flex; min-height: 0; flex: 1; flex-direction: column; gap: 14px; } .project-board-head { min-height: 102px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 560px); gap: 18px; align-items: stretch; border: 1px solid rgba(255,255,255,0.10); border-radius: 8px; background: linear-gradient(135deg, rgba(255,255,255,0.07), rgba(255,255,255,0.026)), rgba(28,28,28,0.50); box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 24px 90px -54px rgba(0, 0, 0, 0.92); backdrop-filter: blur(18px); padding: 16px; } .project-reference-strip { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; min-width: 0; } .project-reference-tile { position: relative; overflow: hidden; border-radius: 8px; background: rgba(255,255,255,0.92); min-height: 70px; aspect-ratio: 1 / 1; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.32); } .project-reference-tile span { position: absolute; left: 6px; right: 6px; bottom: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border-radius: 6px; background: rgba(0,0,0,0.54); padding: 2px 5px; color: rgba(255,255,255,0.76); font-size: 9px; } .project-board-grid { display: grid; grid-template-columns: clamp(360px, 24vw, 450px) minmax(0, 1fr) 88px; gap: 14px; min-height: 0; flex: 1; align-items: stretch; } .project-brief-panel { min-height: 0; overflow-y: auto; border: 1px solid rgba(255,255,255,0.10); border-radius: 8px; background: linear-gradient(160deg, rgba(255,255,255,0.07), rgba(255,255,255,0.025)), rgba(24,24,24,0.52); box-shadow: inset 0 1px 0 rgba(255,255,255,0.07); backdrop-filter: blur(18px); padding: 16px; } .project-primary-card { position: relative; border-radius: 8px; background: linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.028)), rgba(0,0,0,0.18); box-shadow: 0 20px 60px -40px rgba(230,245,120,0.72), inset 0 0 0 1px rgba(255,255,255,0.08); padding: 9px; } .project-primary-preview { position: relative; display: grid; place-items: center; overflow: hidden; border-radius: 6px; background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(238,242,230,0.93)); aspect-ratio: 1 / 1; min-height: 260px; max-height: min(42vh, 460px); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.52); } .project-primary-image { width: 100%; height: 100%; object-fit: contain; transform: scale(0.98); transition: transform 200ms ease, filter 200ms ease; } .project-primary-card:hover .project-primary-image { filter: contrast(1.02) saturate(1.02); transform: scale(1.015); } .project-primary-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 2px 1px; } .project-image-popover { position: fixed; z-index: 120; top: 50%; left: 50%; width: min(76vw, 920px); height: min(82vh, 780px); display: grid; place-items: center; border: 1px solid rgba(255,255,255,0.16); border-radius: 8px; background: linear-gradient(135deg, rgba(255,255,255,0.10), rgba(255,255,255,0.035)), rgba(9, 10, 8, 0.86); box-shadow: 0 30px 120px -28px rgba(0,0,0,0.94); opacity: 0; overflow: hidden; pointer-events: none; transform: translate(-50%, -48%) scale(0.96); transition: opacity 180ms ease, transform 180ms ease; visibility: hidden; } .project-image-popover--open { opacity: 1; transform: translate(-50%, -50%) scale(1); visibility: visible; } .project-image-popover img { position: absolute; inset: 18px; width: calc(100% - 36px); height: calc(100% - 36px); object-fit: contain; border-radius: 6px; background: rgba(255,255,255,0.96); } .project-stat { border-radius: 8px; background: rgba(255,255,255,0.045); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.07); padding: 10px; color: rgba(255,255,255,0.82); } .project-stat--accent { background: rgba(230,245,120,0.13); color: #e6f578; box-shadow: inset 0 0 0 1px rgba(230,245,120,0.22); } .project-spec-card { border-radius: 8px; background: rgba(0,0,0,0.22); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.07); padding: 13px; } .project-pack-row { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 10px; border-radius: 8px; background: rgba(255,255,255,0.035); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.07); padding: 9px; } .project-pack-row--locked { opacity: 0.58; } .project-pack-index { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 8px; background: linear-gradient(135deg, rgba(230,245,120,0.22), rgba(214,179,106,0.18)); box-shadow: inset 0 0 0 1px rgba(230,245,120,0.18); color: #e6f578; font-size: 10px; font-weight: 700; } .project-pack-status { white-space: nowrap; border-radius: 999px; background: rgba(255,255,255,0.045); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08); padding: 3px 6px; color: rgba(255,255,255,0.44); font-size: 10px; line-height: 1; } .project-pack-status--done { background: rgba(230,245,120,0.13); box-shadow: inset 0 0 0 1px rgba(230,245,120,0.22); color: #e6f578; } .project-pack-status--ready { background: rgba(214,179,106,0.12); box-shadow: inset 0 0 0 1px rgba(214,179,106,0.20); color: #f2d38c; } .project-pack-status--locked { background: rgba(255,255,255,0.045); color: rgba(255,255,255,0.42); } .project-pack-action, .project-pack-jump, .project-spec-action { display: inline-grid; place-items: center; min-height: 28px; border-radius: 8px; background: rgba(255,255,255,0.055); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08); color: rgba(255,255,255,0.62); font-size: 10px; transition: background 160ms ease, color 160ms ease, box-shadow 160ms ease; } .project-pack-action, .project-spec-action { padding: 0 8px; } .project-pack-jump { width: 28px; } .project-pack-action:hover:not(:disabled), .project-pack-jump:hover, .project-spec-action:hover:not(:disabled) { background: rgba(255,255,255,0.10); box-shadow: inset 0 0 0 1px rgba(230,245,120,0.18); color: rgba(255,255,255,0.92); } .project-pack-action:disabled, .project-spec-action:disabled { cursor: not-allowed; opacity: 0.38; } .project-pack-action:focus-visible, .project-pack-jump:focus-visible, .project-spec-action:focus-visible { outline: 2px solid rgba(230,245,120,0.45); outline-offset: 2px; } .project-spec-action--primary { background: rgba(230,245,120,0.13); box-shadow: inset 0 0 0 1px rgba(230,245,120,0.22); color: #e6f578; } .project-spec-row { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 10px; align-items: start; border-top: 1px solid rgba(255,255,255,0.06); padding-top: 8px; } .project-spec-row:first-child { border-top: 0; padding-top: 0; } .project-spec-label { color: rgba(255,255,255,0.36); line-height: 1.55; } .project-spec-value { color: rgba(255,255,255,0.78); line-height: 1.55; overflow-wrap: anywhere; } .project-production-panel { min-height: 0; overflow: hidden; } .project-production-panel > div { min-height: 0; } .dashboard-workbench { border: 1px solid rgba(255, 255, 255, 0.10); border-radius: 8px; background: linear-gradient(135deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.025)), rgba(32, 32, 32, 0.48); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), 0 24px 90px -46px rgba(0, 0, 0, 0.92); backdrop-filter: blur(18px); } .session-workspace { height: calc(100vh - 116px); min-height: 640px; } .session-split { display: grid; grid-template-columns: minmax(0, 1fr) 74px; gap: 18px; align-items: stretch; } .pack-scroll { scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, 0.18) transparent; } .pack-scroll::-webkit-scrollbar { width: 8px; } .pack-scroll::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(255, 255, 255, 0.16); } .asset-strip { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); align-items: start; gap: 12px; overflow-x: visible; overflow-y: visible; } .asset-tile { display: flex; min-width: 0; height: 100%; flex-direction: column; border-radius: 8px; background: rgba(255,255,255,0.035); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.07); padding: 10px; text-align: left; transition: background 160ms ease, box-shadow 160ms ease, transform 160ms ease; } .asset-tile:hover { background: rgba(255,255,255,0.065); box-shadow: inset 0 0 0 1px rgba(230,245,120,0.22), 0 18px 50px -34px rgba(230,245,120,0.55); } .asset-tile:focus-visible { outline: 2px solid rgba(230,245,120,0.45); outline-offset: 2px; } .asset-tile__thumb { position: relative; display: grid; width: 100%; place-items: center; overflow: visible; border-radius: 8px; background: rgba(0,0,0,0.28); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08); } .asset-tile__thumb > img { display: block; width: 100%; height: 100%; } .asset-tile__state { position: absolute; right: 6px; top: 6px; display: grid; width: 22px; height: 22px; place-items: center; border-radius: 7px; background: rgba(0,0,0,0.62); color: rgba(255,255,255,0.62); font-size: 10px; font-weight: 700; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.10); } .asset-tile__state--done { background: rgba(230,245,120,0.14); color: #e6f578; box-shadow: inset 0 0 0 1px rgba(230,245,120,0.28); } .asset-tile__body { display: flex; min-width: 0; flex: 1; flex-direction: column; padding-top: 9px; } .asset-detail-backdrop { position: fixed; inset: 0; z-index: 92; pointer-events: none; background: rgba(0,0,0,0.44); opacity: 0; backdrop-filter: blur(6px); transition: opacity 180ms ease; } .asset-detail-backdrop.is-open { pointer-events: auto; opacity: 1; } .asset-detail-drawer { position: fixed; z-index: 96; top: 0; right: 0; display: flex; width: min(780px, calc(100vw - 96px)); height: 100vh; flex-direction: column; border-left: 1px solid rgba(255,255,255,0.14); background: linear-gradient(135deg, rgba(255,255,255,0.09), rgba(255,255,255,0.035)), rgba(20,20,21,0.94); box-shadow: -28px 0 90px -34px rgba(0,0,0,0.92); backdrop-filter: blur(22px); transform: translateX(100%); transition: transform 220ms ease; } .asset-detail-drawer.is-open { transform: translateX(0); } .asset-detail-image { display: grid; max-height: min(54vh, 520px); place-items: center; overflow: hidden; border-radius: 8px; background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(238,242,230,0.94)); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.46); } .asset-detail-image img { width: 100%; height: 100%; object-fit: contain; } .asset-detail-block { margin-top: 14px; border-radius: 8px; background: rgba(0,0,0,0.22); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.07); padding: 13px; } .asset-detail-label { margin-bottom: 8px; color: rgba(255,255,255,0.42); font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; } .asset-detail-code, .asset-detail-pre { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; font-size: 11px; line-height: 1.6; color: rgba(255,255,255,0.68); overflow-wrap: anywhere; } .asset-detail-pre { max-height: 220px; overflow-y: auto; white-space: pre-wrap; } .gallery-thumb-list { scrollbar-width: none; } .gallery-thumb-list::-webkit-scrollbar { display: none; } .gallery-download-button { display: flex; width: 100%; min-height: 38px; flex-direction: column; align-items: center; justify-content: center; gap: 2px; border-radius: 8px; background: rgba(255, 255, 255, 0.07); color: rgba(255, 255, 255, 0.72); font-size: 9px; font-weight: 700; line-height: 1; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.10); transition: background 160ms ease, color 160ms ease, box-shadow 160ms ease; } .gallery-download-button:hover, .gallery-download-button:focus-visible { outline: none; background: rgba(230, 245, 120, 0.14); color: #e6f578; box-shadow: inset 0 0 0 1px rgba(230, 245, 120, 0.32); } .gallery-rail-thumb { box-shadow: 0 12px 32px -22px rgba(230, 245, 120, 0.65); } .gallery-rail-thumb:hover, .gallery-rail-thumb:focus-visible { outline: none; transform: translateX(-2px); box-shadow: 0 0 0 1px rgba(230, 245, 120, 0.45), 0 18px 42px -24px rgba(230, 245, 120, 0.82); } .gallery-rail-empty, .gallery-empty-state { display: grid; min-height: 88px; place-items: center; border-radius: 8px; border: 1px dashed rgba(255, 255, 255, 0.12); background: rgba(0, 0, 0, 0.16); color: rgba(255, 255, 255, 0.34); font-size: 10px; text-align: center; } .gallery-center-preview { position: fixed; z-index: 96; left: 50%; top: 50%; pointer-events: none; transform: translate(-50%, -50%); border-radius: 8px; background: #fff; padding: 10px; box-shadow: 0 34px 110px -28px rgba(0, 0, 0, 0.92), 0 0 0 1px rgba(255, 255, 255, 0.22); } .gallery-center-preview img { display: block; width: min(74vw, 960px); height: 82vh; object-fit: contain; } .gallery-backdrop { position: fixed; inset: 0; z-index: 70; background: rgba(0, 0, 0, 0.42); backdrop-filter: blur(6px); transition: opacity 180ms ease; } .gallery-drawer { position: fixed; z-index: 80; top: 0; right: 0; height: 100vh; width: min(820px, calc(100vw - 96px)); display: flex; flex-direction: column; border-left: 1px solid rgba(255, 255, 255, 0.14); background: linear-gradient(135deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.035)), rgba(20, 20, 21, 0.92); box-shadow: -28px 0 90px -34px rgba(0, 0, 0, 0.92); backdrop-filter: blur(22px); transform: translateX(100%); transition: transform 220ms ease; } .gallery-drawer.is-open { transform: translateX(0); } .gallery-drawer-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; align-items: start; } .gallery-drawer-card { min-width: 0; border-radius: 8px; background: rgba(255, 255, 255, 0.045); padding: 10px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08); } .gallery-drawer-card__image { display: grid; place-items: center; overflow: hidden; border-radius: 8px; background: #fff; } .gallery-drawer-card__image img { display: block; width: 100%; height: 100%; object-fit: contain; } .result-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 16px; align-items: start; } @media (min-width: 1440px) { .result-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; } } @media (min-width: 1760px) { .session-split { grid-template-columns: minmax(0, 1fr) 84px; gap: 22px; } .project-board-grid { grid-template-columns: clamp(390px, 24vw, 480px) minmax(0, 1fr) 96px; gap: 18px; } } @media (prefers-reduced-motion: reduce) { .project-primary-image, .project-image-popover { transition: none; } .project-primary-card:hover .project-primary-image { transform: none; } } @media (max-width: 1180px) { .project-shell { overflow: auto; } .project-stage { overflow: visible; } .project-stage-inner { height: auto; min-height: 100vh; padding: 14px; } .project-board-head, .project-board-grid { display: flex; flex-direction: column; } .project-reference-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); } .project-brief-panel, .project-production-panel { overflow: visible; } .project-primary-preview { min-height: 220px; } .project-image-popover { display: none; } .asset-strip { grid-template-columns: repeat(auto-fill, minmax(136px, 1fr)); } .asset-detail-drawer { width: calc(100vw - 28px); } .asset-detail-image { max-height: 42vh; } .session-workspace { height: auto; min-height: 0; } .session-split { display: flex; flex-direction: column; } .gallery-rail { min-height: 96px; flex-direction: row; overflow-x: auto; } .gallery-thumb-list { flex-direction: row; overflow-x: auto; overflow-y: hidden; } .gallery-rail button { width: 64px; flex-shrink: 0; } .gallery-drawer { width: min(100vw, 720px); } } /* ===== Login (cloned from SKG source) ===== */ .login-page { background: linear-gradient(112deg, #f7f7f4 0 50%, #111214 50% 100%); font-family: Roboto, "Geist", "Geist Fallback", sans-serif; } .login-page::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(40, 40, 40, 0.035) 1px, transparent 1px), linear-gradient(180deg, rgba(40, 40, 40, 0.035) 1px, transparent 1px), linear-gradient(180deg, rgba(255, 255, 255, 0.42), transparent 40%, rgba(0, 0, 0, 0.42)); background-size: 56px 56px, 56px 56px, auto; } .login-page::after { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(114deg, transparent 0 23%, rgba(255, 255, 255, 0.26) 23% 33%, transparent 33% 54%, rgba(214, 179, 106, 0.12) 54% 62%, transparent 62%), linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px); background-size: auto, 100% 6px; opacity: 0.78; mix-blend-mode: screen; } .login-page--oasis { background: #071108; color: #fff; } .login-page--oasis::before { z-index: 1; background: linear-gradient(90deg, rgba(255, 255, 255, 0.028) 1px, transparent 1px), linear-gradient(180deg, rgba(255, 255, 255, 0.024) 1px, transparent 1px); background-size: 64px 64px; opacity: 0.38; } .login-page--oasis::after { z-index: 1; background: radial-gradient(circle at 50% 26%, rgba(230, 245, 120, 0.18), transparent 32%), linear-gradient(90deg, rgba(0, 0, 0, 0.58), rgba(0, 0, 0, 0.18) 48%, rgba(0, 0, 0, 0.48)); background-size: auto; opacity: 1; mix-blend-mode: normal; } .login-oasis-canvas { position: fixed; inset: 0; z-index: 0; width: 100vw; height: 100vh; border: 0; background: #071108; } .login-oasis-shade { position: fixed; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(180deg, rgba(0, 0, 0, 0.42), rgba(0, 0, 0, 0.04) 42%, rgba(0, 0, 0, 0.58)), radial-gradient(circle at 78% 50%, rgba(230, 245, 120, 0.14), transparent 32%); } .login-page--oasis .login-oasis-hero { color: #fff; border: 1px solid rgba(140, 180, 120, 0.12); border-radius: 16px; background: rgba(10, 18, 10, 0.55); box-shadow: 0 8px 40px rgba(0, 0, 0, 0.4); padding: 36px 28px; backdrop-filter: blur(16px); transition: border-color 0.4s, background 0.4s; } .login-page--oasis .login-oasis-hero:hover { border-color: rgba(140, 180, 120, 0.3); background: rgba(20, 35, 20, 0.45); } .login-page--oasis .login-hero::before, .login-page--oasis .login-hero::after { display: none; } .login-page--oasis .login-wordmark, .login-page--oasis .login-brand-mark { color: rgba(255, 255, 255, 0.94); } .login-page--oasis .login-wordmark__sub, .login-page--oasis .login-brand-mark__sub { color: rgba(255, 255, 255, 0.58); } .login-page--oasis .login-secure-pill, .login-page--oasis .login-store-pill { border: 1px solid rgba(140, 180, 120, 0.18); background: rgba(10, 18, 10, 0.42); color: rgba(255, 255, 255, 0.82); box-shadow: 0 8px 30px rgba(0, 0, 0, 0.32); backdrop-filter: blur(16px); } .login-page--oasis .login-kicker { color: rgba(224, 210, 128, 0.92); text-shadow: 0 0 24px rgba(214, 179, 106, 0.2); } .login-page--oasis .login-premium-title { max-width: 720px; color: #f8f7ef; font-size: clamp(54px, 7vw, 104px); font-weight: 600; letter-spacing: 0; text-shadow: 0 3px 30px rgba(0, 0, 0, 0.78), 0 0 70px rgba(214, 179, 106, 0.12); } .login-page--oasis .login-premium-copy { max-width: 560px; color: rgba(247, 246, 236, 0.68); text-shadow: 0 2px 18px rgba(0, 0, 0, 0.68); } .login-page--oasis .login-creative-stage { min-height: 400px; margin-top: auto; } .login-page--oasis .login-creative-caption { left: min(470px, 58%); bottom: 54px; width: min(300px, 34%); border-top-color: rgba(255, 255, 255, 0.18); color: #fff; text-shadow: 0 2px 22px rgba(0, 0, 0, 0.66); } .login-page--oasis .login-creative-caption span { color: rgba(255, 255, 255, 0.55); } .login-page--oasis .login-creative-caption b { color: rgba(255, 255, 255, 0.94); } .login-page--oasis .login-dynamic-dock { left: 0; bottom: 104px; width: min(430px, 54%); border-color: rgba(140, 180, 120, 0.12); background: rgba(10, 18, 10, 0.55); padding: 18px; box-shadow: 0 8px 40px rgba(0, 0, 0, 0.4); backdrop-filter: blur(16px); } .login-page--oasis .login-dynamic-dock__label { margin-bottom: 12px; color: rgba(224, 210, 128, 0.78); } .login-page--oasis .login-dynamic-dock .login-character-stage { min-height: 250px; border-color: rgba(255, 255, 255, 0.1); background: linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px), linear-gradient(180deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px), rgba(255, 255, 255, 0.045); background-size: 22px 22px, 22px 22px, auto; } .login-page--oasis .login-dynamic-dock .login-character-stage::after { background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.26)); } .login-page--oasis .login-dynamic-dock .login-stage-grid { border-color: rgba(255, 255, 255, 0.1); } .login-page--oasis .login-dynamic-dock .login-characters-container { transform: translateX(-50%) scale(0.58); } .login-page--oasis .login-studio-chip { border-color: rgba(140, 180, 120, 0.14); background: rgba(10, 18, 10, 0.55); color: rgba(255, 255, 255, 0.82); box-shadow: 0 8px 40px rgba(0, 0, 0, 0.4); backdrop-filter: blur(16px); } .login-page--oasis .login-studio-chip--visual { right: auto; left: min(470px, 58%); top: 176px; } .login-page--oasis .login-premium-metrics { border-color: rgba(140, 180, 120, 0.12); background: rgba(140, 180, 120, 0.12); box-shadow: 0 8px 40px rgba(0, 0, 0, 0.4); backdrop-filter: blur(16px); } .login-page--oasis .login-premium-metric { background: rgba(10, 18, 10, 0.55); } .login-page--oasis .login-premium-metric span { color: rgba(255, 255, 255, 0.5); } .login-page--oasis .login-premium-metric b { color: rgba(255, 255, 255, 0.94); } .login-page--oasis .login-auth-panel { border: 1px solid rgba(140, 180, 120, 0.12); border-radius: 16px; background: rgba(10, 18, 10, 0.55); box-shadow: 0 8px 40px rgba(0, 0, 0, 0.4); padding: 24px 22px; backdrop-filter: blur(16px); transition: border-color 0.4s, background 0.4s; } .login-page--oasis .login-auth-panel:hover { border-color: rgba(140, 180, 120, 0.3); background: rgba(20, 35, 20, 0.45); } .login-page--oasis .login-auth-icon { border-color: rgba(140, 180, 120, 0.2); background: rgba(10, 18, 10, 0.55); box-shadow: 0 8px 30px rgba(0, 0, 0, 0.36); } .login-page--oasis .login-auth-panel label > span.flex { border-color: rgba(140, 180, 120, 0.12); background: rgba(10, 18, 10, 0.36); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); backdrop-filter: blur(16px); } .login-page--oasis .login-auth-panel label > span.flex:focus-within { border-color: rgba(140, 180, 120, 0.36); background: rgba(20, 35, 20, 0.42); box-shadow: 0 0 0 2px rgba(230, 245, 120, 0.12); } .login-page--oasis .login-auth-panel button[type="submit"] { background: rgba(245, 250, 235, 0.94); color: #090c07; box-shadow: 0 8px 40px rgba(0, 0, 0, 0.38); } .login-page--oasis .login-auth-panel button[type="submit"]:hover { background: rgba(230, 245, 120, 0.92); } .login-page--oasis .login-auth-panel input:-webkit-autofill, .login-page--oasis .login-auth-panel input:-webkit-autofill:hover, .login-page--oasis .login-auth-panel input:-webkit-autofill:focus { -webkit-text-fill-color: #fff; transition: background-color 9999s ease-in-out 0s; } .login-page--source::before, .login-page--source::after { display: none; } .login-page--source .login-oasis-shade { background: radial-gradient(circle at 34% 52%, rgba(230, 245, 120, 0.14), transparent 28%), linear-gradient(90deg, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.02) 44%, rgba(0, 0, 0, 0.24)); } .login-source-overlay { position: fixed; inset: 0; z-index: 10; display: block; min-height: 100vh; min-height: 100dvh; padding: clamp(20px, 4vw, 56px); pointer-events: none; } .login-page--oasis .login-source-auth-panel { position: fixed; left: 50%; top: 50%; display: grid; width: min(820px, calc(100vw - 40px)); grid-template-columns: minmax(320px, 360px) minmax(300px, 360px); align-items: center; gap: 20px; padding: 18px; transform: translate(-50%, -50%); pointer-events: auto; background: rgba(10, 18, 10, 0.2); backdrop-filter: none; overflow: visible; } .login-top-brand { position: absolute; left: 24px; top: 22px; z-index: 5; display: flex; align-items: center; gap: 14px; pointer-events: none; } .login-top-brand__logo { width: 150px; height: auto; opacity: 0.86; filter: invert(1) brightness(1.25) drop-shadow(0 10px 20px rgba(0, 0, 0, 0.45)); } .login-top-brand__system { display: inline-flex; min-height: 20px; align-items: center; transform: translateY(4px); border-left: 1px solid rgba(255, 255, 255, 0.18); padding-left: 14px; color: rgba(255, 255, 255, 0.66); font-size: 13px; font-weight: 500; letter-spacing: 0.08em; line-height: 1; text-shadow: 0 10px 22px rgba(0, 0, 0, 0.38); } .login-page--source .login-auth-icon { margin-bottom: 0; } .login-source-character-strip { height: 340px; margin-bottom: 0; overflow: hidden; pointer-events: none; } .login-source-character-strip .login-character-stage { min-height: 340px; border: 0; background: transparent; box-shadow: none; perspective: 900px; } .login-source-character-strip .login-character-stage::after, .login-source-character-strip .login-stage-grid, .login-source-character-strip .login-character-base { display: none; } .login-source-character-strip .login-characters-container { transform: translateX(-50%) scale(0.66); transform-style: preserve-3d; } .login-source-form-pane { min-width: 0; transform: translateY(44px); } /* ============================================================ 信息流工作台 · 登录页同源质感 ============================================================ */ .skg-board-theme { --skg-gold-1: #d6b36a; --skg-gold-2: #c89b3c; --skg-cream: #f5efe3; --skg-bg-1: #0a0a0a; --skg-bg-2: #111111; --skg-bg-3: rgba(255, 255, 255, 0.035); --skg-border: rgba(255, 255, 255, 0.1); --skg-text-1: #ffffff; --skg-text-2: rgba(255, 255, 255, 0.62); --skg-text-3: rgba(255, 255, 255, 0.34); --skg-success: #34d399; --skg-warn: #fcd34d; --skg-danger: #fb7185; --skg-info: #67e8f9; --skg-radius-sm: 6px; --skg-radius-md: 8px; --skg-radius-lg: 12px; --skg-shadow-button: 0 6px 24px -8px rgba(0, 0, 0, 0.45); color: var(--skg-text-1); background: radial-gradient(circle at 52% 4%, rgba(214, 179, 106, 0.1), transparent 30%), radial-gradient(circle at 12% 96%, rgba(214, 179, 106, 0.065), transparent 34%), linear-gradient(120deg, #0a0a0a 0%, #10100f 46%, #050505 100%); } .skg-board-theme::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(90deg, rgba(255, 255, 255, 0.026) 1px, transparent 1px), linear-gradient(180deg, rgba(255, 255, 255, 0.022) 1px, transparent 1px); background-size: 64px 64px; opacity: 0.44; } .skg-board-theme::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(180deg, rgba(0, 0, 0, 0.22), transparent 42%, rgba(0, 0, 0, 0.4)), linear-gradient(90deg, rgba(0, 0, 0, 0.28), transparent 38%, rgba(0, 0, 0, 0.24)); } .skg-board-ambient { background: radial-gradient(circle at 78% 0%, rgba(232, 201, 122, 0.08), transparent 30%), radial-gradient(circle at 8% 100%, rgba(214, 179, 106, 0.06), transparent 34%); } .skg-board-topbar, .skg-board-panel { border-color: var(--skg-border) !important; background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.022)), rgba(17, 17, 17, 0.74) !important; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 18px 54px rgba(0, 0, 0, 0.34); backdrop-filter: blur(10px); } .skg-board-topbar { background: linear-gradient(100deg, rgba(214, 179, 106, 0.075), rgba(255, 255, 255, 0.03) 54%, rgba(214, 179, 106, 0.035)), rgba(12, 12, 12, 0.76) !important; } .skg-board-theme input:focus, .skg-board-theme textarea:focus, .skg-board-theme select:focus { border-color: rgba(214, 179, 106, 0.58) !important; box-shadow: 0 0 0 2px rgba(214, 179, 106, 0.14); } .skg-board-theme input[type="checkbox"] { accent-color: #d6b36a; } .skg-board-theme ::selection { background: rgba(214, 179, 106, 0.28); color: #fff; } .skg-board-theme--light { --skg-bg-1: #faf8f4; --skg-bg-2: #ffffff; --skg-bg-3: rgba(0, 0, 0, 0.03); --skg-border: rgba(0, 0, 0, 0.08); --skg-text-1: #0a0a0a; --skg-text-2: rgba(0, 0, 0, 0.62); --skg-text-3: rgba(0, 0, 0, 0.34); --skg-success: #059669; --skg-warn: #b7791f; --skg-danger: #e11d48; --skg-info: #0891b2; color: var(--skg-text-1); background: radial-gradient(circle at 50% 0%, rgba(232, 212, 168, 0.18), transparent 31%), radial-gradient(circle at 4% 100%, rgba(214, 179, 106, 0.12), transparent 28%), linear-gradient(126deg, #faf8f4 0%, #f4efe5 48%, #ffffff 100%); } .skg-board-theme--light::before { background: linear-gradient(90deg, rgba(42, 50, 36, 0.05) 1px, transparent 1px), linear-gradient(180deg, rgba(42, 50, 36, 0.045) 1px, transparent 1px); opacity: 0.72; } .skg-board-theme--light::after { background: linear-gradient(180deg, rgba(255, 255, 255, 0.36), transparent 46%, rgba(214, 179, 106, 0.08)), linear-gradient(90deg, rgba(255, 255, 255, 0.3), transparent 42%, rgba(255, 255, 255, 0.24)); } .skg-board-theme--light .skg-board-ambient { background: radial-gradient(circle at 20% 18%, rgba(214, 179, 106, 0.2), transparent 28%), radial-gradient(circle at 70% 6%, rgba(143, 176, 113, 0.16), transparent 30%), radial-gradient(circle at 52% 100%, rgba(214, 179, 106, 0.12), transparent 38%); } .skg-board-theme--light .skg-board-topbar, .skg-board-theme--light .skg-board-panel { border-color: rgba(82, 93, 62, 0.16) !important; background: linear-gradient(180deg, rgba(255, 255, 255, 0.78), rgba(255, 255, 255, 0.48)), rgba(249, 246, 236, 0.7) !important; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78), 0 18px 48px rgba(65, 55, 30, 0.1); } .skg-board-theme--light .skg-board-topbar { background: linear-gradient(100deg, rgba(214, 179, 106, 0.14), rgba(143, 176, 113, 0.08) 42%, rgba(255, 255, 255, 0.58)), rgba(252, 249, 241, 0.82) !important; } .skg-board-theme--light .skg-board-theme-toggle { border-color: rgba(82, 93, 62, 0.16) !important; background: rgba(255, 255, 255, 0.54) !important; color: rgba(36, 40, 30, 0.72) !important; } .skg-board-theme--light .text-white, .skg-board-theme--light [class*="text-white/"] { color: rgba(32, 36, 28, 0.78) !important; } .skg-board-theme--light [class*="bg-black/"], .skg-board-theme--light [class*="bg-white/"] { background-color: rgba(255, 255, 250, 0.52) !important; } .skg-board-theme--light [class*="border-white/"] { border-color: rgba(70, 78, 54, 0.14) !important; } .skg-board-theme--light [class*="text-[#d7efbc]"] { color: #43662d !important; } .skg-board-theme--light [class*="text-[#e8c77a]"], .skg-board-theme--light [class*="text-[#f2d58a]"], .skg-board-theme--light [class*="text-[#f5d98e]"] { color: #856015 !important; } .skg-board-theme--light [class*="text-emerald-"] { color: #2f6d3d !important; } .skg-board-theme--light [class*="text-cyan-"], .skg-board-theme--light [class*="text-sky-"], .skg-board-theme--light [class*="text-teal-"] { color: #17606f !important; } .skg-board-theme--light [class*="text-amber-"], .skg-board-theme--light [class*="text-yellow-"] { color: #8a5c00 !important; } .skg-board-theme--light [class*="text-rose-"], .skg-board-theme--light [class*="text-red-"] { color: #9f1239 !important; } .skg-board-theme--light [class*="text-violet-"], .skg-board-theme--light [class*="text-purple-"] { color: #62438a !important; } .skg-board-theme--light [class*="border-[#8fb071]"] { border-color: rgba(67, 102, 45, 0.28) !important; } .skg-board-theme--light [class*="border-[#d6b36a]"] { border-color: rgba(133, 96, 21, 0.26) !important; } .skg-board-theme--light [class*="bg-[#8fb071]"], .skg-board-theme--light [class*="bg-[#d6b36a]"] { background-color: rgba(214, 179, 106, 0.14) !important; } .skg-board-theme--light input, .skg-board-theme--light textarea, .skg-board-theme--light select { color: #22261f !important; } .skg-board-theme--light input::placeholder, .skg-board-theme--light textarea::placeholder { color: rgba(34, 38, 31, 0.36) !important; } .skg-board-theme--light ::selection { background: rgba(214, 179, 106, 0.32); color: #171a14; } .skg-board-brand { display: flex; min-width: 0; align-items: center; gap: 14px; } .skg-board-brand__logo-chip { display: inline-flex; height: 42px; width: 132px; flex-shrink: 0; align-items: center; justify-content: center; border: 1px solid rgba(214, 179, 106, 0.24); border-radius: var(--skg-radius-md); background: #f5efe3; box-shadow: var(--skg-shadow-button); } .skg-board-brand__logo { width: 96px; height: auto; display: block; } .skg-board-brand__system { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; color: var(--skg-gold-1); } .skg-board-brand__title { margin-top: 3px; color: var(--skg-text-1); font-size: 20px; font-weight: 650; line-height: 1.1; letter-spacing: 0; } .skg-board-brand__subtitle { margin-top: 4px; color: var(--skg-text-3); font-size: 12px; line-height: 1.3; } .skg-stat-card { border: 1px solid rgba(214, 179, 106, 0.18); border-radius: var(--skg-radius-md); background: var(--skg-cream); color: #0a0a0a; box-shadow: var(--skg-shadow-button); } .skg-stat-card__label { color: rgba(0, 0, 0, 0.5); } .skg-stat-card__value { color: #0a0a0a; } .skg-primary-action { border-radius: var(--skg-radius-md); background: #f5efe3; color: #0a0a0a; box-shadow: var(--skg-shadow-button); } .skg-primary-action:hover { background: #fff7df; } .skg-secondary-action { border: 1px solid rgba(214, 179, 106, 0.3); border-radius: var(--skg-radius-md); background: rgba(214, 179, 106, 0.08); color: var(--skg-gold-1); } .skg-secondary-action:hover { border-color: rgba(214, 179, 106, 0.54); background: rgba(214, 179, 106, 0.12); color: #f5d98e; } .skg-empty-state { border: 1px dashed rgba(214, 179, 106, 0.22); border-radius: var(--skg-radius-lg); background: radial-gradient(circle at 50% 0%, rgba(214, 179, 106, 0.1), transparent 38%), rgba(255, 255, 255, 0.028); color: var(--skg-text-3); } .skg-empty-character { width: min(230px, 82%); margin: 0 auto 12px; pointer-events: none; } .skg-empty-character .login-character-stage { min-height: 112px; border-color: rgba(214, 179, 106, 0.16); background: radial-gradient(circle at 78% 18%, rgba(214, 179, 106, 0.16), transparent 28%), linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.026)); box-shadow: none; } .skg-empty-character .login-character-stage::after, .skg-empty-character .login-stage-grid { display: none; } .skg-empty-character .login-characters-container { bottom: -6px; transform: translateX(-50%) scale(0.22); } .skg-board-theme--light .skg-board-brand__logo-chip { background: #ffffff; } .skg-board-theme--light .skg-stat-card { background: #0a0a0a; color: #fff; box-shadow: 0 10px 24px -12px rgba(133, 96, 21, 0.38); } .skg-board-theme--light .skg-stat-card__label { color: rgba(255, 255, 255, 0.54); } .skg-board-theme--light .skg-stat-card__value { color: #fff; } .skg-board-theme--light .skg-primary-action { background: #0a0a0a; color: #fff; box-shadow: 0 10px 24px -12px rgba(133, 96, 21, 0.42); } .skg-board-theme--light .skg-primary-action:hover { background: #252525; } .skg-board-theme--light .skg-empty-state { background: radial-gradient(circle at 50% 0%, rgba(232, 212, 168, 0.28), transparent 38%), rgba(255, 255, 255, 0.66); } .login-hero { isolation: isolate; color: #282828; border: 1px solid rgba(255, 255, 255, 0.8); background: linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(239, 239, 235, 0.9)), #f7f7f4; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92), 0 28px 70px rgba(15, 15, 15, 0.16); } .login-hero::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(90deg, transparent 0 48%, rgba(255, 255, 255, 0.58) 48% 100%), linear-gradient(18deg, transparent 0 58%, rgba(214, 179, 106, 0.1) 58% 66%, transparent 66%), linear-gradient(180deg, rgba(255, 255, 255, 0.55), transparent 48%); } .login-hero::after { content: ""; position: absolute; right: 10%; bottom: 126px; z-index: 0; width: 46%; height: 1px; background: linear-gradient(90deg, transparent, rgba(40, 40, 40, 0.16), transparent); box-shadow: 0 28px 52px rgba(40, 40, 40, 0.22); pointer-events: none; } .login-wordmark, .login-brand-mark { display: inline-flex; align-items: baseline; gap: 8px; color: #282828; letter-spacing: 0; } .login-wordmark__logo, .login-brand-mark__logo { font-size: 26px; font-weight: 700; line-height: 1; } .login-wordmark__sub, .login-brand-mark__sub { font-size: 13px; color: rgba(40, 40, 40, 0.54); } .login-secure-pill, .login-store-pill { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; border-radius: 999px; background: #282828; padding: 0 14px; color: #fff; font-size: 13px; box-shadow: 0 10px 24px rgba(40, 40, 40, 0.18); } .login-kicker { margin: 0 0 16px; color: rgba(40, 40, 40, 0.48); font-size: 12px; font-weight: 700; letter-spacing: 0.18em; } .login-premium-title { margin: 0; max-width: 620px; color: #0d0d0d; font-size: clamp(44px, 5.5vw, 74px); font-weight: 600; line-height: 0.98; letter-spacing: 0; } .login-premium-copy { margin: 18px 0 0; max-width: 430px; color: rgba(40, 40, 40, 0.58); font-size: 16px; line-height: 1.7; } .login-creative-stage { position: relative; flex: 1; min-height: 300px; margin-top: 26px; } .login-creative-stage__halo { position: absolute; right: 10%; bottom: 54px; width: 46%; height: 46px; border-radius: 50%; background: rgba(40, 40, 40, 0.11); filter: blur(20px); transform: perspective(500px) rotateX(58deg); } .login-creative-orbit { position: absolute; right: 2%; bottom: 8px; width: min(40%, 330px); aspect-ratio: 1; border: 1px solid rgba(40, 40, 40, 0.08); border-radius: 8px; background: radial-gradient(circle at 50% 50%, rgba(214, 179, 106, 0.16), transparent 36%), linear-gradient(145deg, rgba(255, 255, 255, 0.88), rgba(244, 244, 240, 0.64)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 34px 70px rgba(40, 40, 40, 0.12); overflow: hidden; } .login-creative-orbit::before, .login-creative-orbit::after, .login-creative-orbit span { content: ""; position: absolute; border-radius: 999px; } .login-creative-orbit::before { inset: 17%; border: 1px solid rgba(40, 40, 40, 0.12); } .login-creative-orbit::after { left: 50%; top: 50%; width: 42%; height: 42%; background: linear-gradient(145deg, #18191c, #343434); box-shadow: 0 18px 44px rgba(40, 40, 40, 0.18); transform: translate(-50%, -50%); } .login-creative-orbit span:nth-child(1) { left: 18%; top: 22%; width: 16%; height: 16%; background: #d6b36a; } .login-creative-orbit span:nth-child(2) { right: 18%; top: 34%; width: 11%; height: 11%; background: #111214; } .login-creative-orbit span:nth-child(3) { left: 50%; bottom: 15%; width: 13%; height: 13%; background: rgba(40, 40, 40, 0.18); } .login-creative-caption { position: absolute; left: 0; bottom: 50px; width: min(310px, 46%); border-top: 1px solid rgba(40, 40, 40, 0.16); padding-top: 18px; color: #151515; } .login-creative-caption span { display: block; color: rgba(40, 40, 40, 0.5); font-size: 13px; } .login-creative-caption b { display: block; margin-top: 5px; font-size: 28px; font-weight: 600; line-height: 1.05; } .login-dynamic-dock { position: absolute; left: 0; bottom: 118px; width: 252px; border: 1px solid rgba(255, 255, 255, 0.72); border-radius: 8px; background: rgba(255, 255, 255, 0.64); padding: 12px; box-shadow: 0 22px 52px rgba(40, 40, 40, 0.12); backdrop-filter: blur(18px); } .login-dynamic-dock__label { display: block; margin-bottom: 8px; color: rgba(40, 40, 40, 0.46); font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; } .login-dynamic-dock .login-character-stage { min-height: 116px; border-color: rgba(40, 40, 40, 0.08); background: linear-gradient(90deg, rgba(40, 40, 40, 0.04) 1px, transparent 1px), linear-gradient(180deg, rgba(40, 40, 40, 0.04) 1px, transparent 1px), rgba(255, 255, 255, 0.5); background-size: 22px 22px, 22px 22px, auto; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.84); } .login-dynamic-dock .login-character-stage::after { height: 48%; background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.7)); } .login-dynamic-dock .login-stage-grid { inset: 12px; border-color: rgba(40, 40, 40, 0.08); } .login-dynamic-dock .login-characters-container { left: 50%; bottom: 0; transform: translateX(-50%) scale(0.28); } .login-studio-chip { position: absolute; display: inline-flex; align-items: center; gap: 8px; min-height: 40px; border: 1px solid rgba(255, 255, 255, 0.72); border-radius: 999px; background: rgba(255, 255, 255, 0.72); padding: 0 14px; color: rgba(40, 40, 40, 0.68); font-size: 13px; box-shadow: 0 18px 40px rgba(40, 40, 40, 0.1); backdrop-filter: blur(18px); } .login-studio-chip--visual { right: 3%; top: 28px; } .login-studio-chip--review { right: 35%; bottom: 104px; } .login-premium-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 24px; overflow: hidden; border: 1px solid rgba(40, 40, 40, 0.1); border-radius: 8px; background: rgba(40, 40, 40, 0.1); } .login-premium-metric { min-height: 78px; background: rgba(255, 255, 255, 0.62); padding: 14px 16px; } .login-premium-metric span { display: block; color: rgba(40, 40, 40, 0.48); font-size: 12px; } .login-premium-metric b { display: block; margin-top: 8px; color: #121212; font-size: 20px; font-weight: 600; } .login-auth-panel { border: 1px solid rgba(255, 255, 255, 0.1); background: linear-gradient(180deg, rgba(22, 23, 28, 0.98), rgba(10, 11, 14, 0.98)), #101114; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 32px 70px rgba(0, 0, 0, 0.35); } .login-auth-icon { background: linear-gradient(145deg, #2b2b2b, #111); border: 1px solid rgba(214, 179, 106, 0.42); box-shadow: 0 18px 42px rgba(0, 0, 0, 0.3), 0 0 0 5px rgba(214, 179, 106, 0.06); } .login-skg-tile { border: 1px solid rgba(40, 40, 40, 0.08); background: linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(244, 245, 247, 0.75)), #f5f5f5; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), 0 16px 34px rgba(40, 40, 40, 0.08); } .login-character-stage { position: relative; min-height: 320px; overflow: hidden; border: 1px solid rgba(40, 40, 40, 0.08); border-radius: 8px; background: radial-gradient(circle at 82% 28%, rgba(245, 135, 32, 0.14), transparent 24%), linear-gradient(90deg, rgba(40, 40, 40, 0.04) 1px, transparent 1px), linear-gradient(180deg, rgba(40, 40, 40, 0.04) 1px, transparent 1px), linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(235, 237, 241, 0.78)); background-size: auto, 34px 34px, 34px 34px, auto; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8), 0 30px 70px rgba(40, 40, 40, 0.13); } .login-character-stage::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 40%; background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.56)), linear-gradient(90deg, transparent 40%, rgba(40, 40, 40, 0.08) 40% 58%, transparent 58%); pointer-events: none; } .login-stage-grid { position: absolute; inset: 26px; border: 1px dashed rgba(40, 40, 40, 0.11); border-radius: 8px; } .login-characters-container { position: absolute; z-index: 1; left: 50%; bottom: 0; width: 550px; height: 400px; transform: translateX(-50%) scale(0.74); transform-origin: bottom center; } .login-character-base { position: absolute; left: 28px; right: 18px; bottom: -12px; height: 28px; border-radius: 999px; background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.48), rgba(0, 0, 0, 0) 72%); filter: blur(1px); } .login-figure { position: absolute; bottom: 0; transform-origin: bottom center; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.2); transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1), height 0.55s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease; will-change: transform; filter: drop-shadow(0 34px 32px rgba(0, 0, 0, 0.42)); } .login-figure::before { content: ""; position: absolute; inset: 0; z-index: 1; background: radial-gradient(circle at 30% 18%, rgba(255, 255, 255, 0.34), transparent 24%), linear-gradient(90deg, rgba(255, 255, 255, 0.18), transparent 26%, transparent 62%, rgba(0, 0, 0, 0.3)), linear-gradient(180deg, rgba(255, 255, 255, 0.14), transparent 34%, rgba(0, 0, 0, 0.18)); mix-blend-mode: screen; pointer-events: none; } .login-figure::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(105deg, rgba(255, 255, 255, 0.2), transparent 30%, rgba(0, 0, 0, 0.26)), radial-gradient(ellipse at 50% 106%, rgba(0, 0, 0, 0.28), transparent 54%); box-shadow: inset 12px 0 22px rgba(255, 255, 255, 0.09), inset -18px 0 28px rgba(0, 0, 0, 0.22), inset 0 -28px 36px rgba(0, 0, 0, 0.18); pointer-events: none; } .login-figure__rim { position: absolute; inset: 8px; z-index: 1; border: 1px solid rgba(255, 255, 255, 0.16); border-radius: inherit; opacity: 0.85; pointer-events: none; } .login-figure__shine { position: absolute; z-index: 1; left: 18%; top: 18%; width: 42%; height: 11%; border-radius: 999px; background: rgba(255, 255, 255, 0.22); transform: rotate(-14deg); pointer-events: none; } .login-figure__panel { position: absolute; z-index: 1; border: 1px solid rgba(255, 255, 255, 0.13); background: rgba(255, 255, 255, 0.1); pointer-events: none; } .login-figure__signal { position: absolute; z-index: 2; display: flex; gap: 6px; pointer-events: none; } .login-figure__signal span { width: 7px; height: 7px; border-radius: 999px; background: rgba(255, 255, 255, 0.56); box-shadow: 0 0 12px rgba(255, 255, 255, 0.24); } .login-figure--purple { left: 72px; width: 176px; height: 392px; z-index: 1; background: linear-gradient(165deg, #9b7bff 0%, #6c3ff5 46%, #3e1eb8 100%); border-radius: 22px 22px 8px 8px; box-shadow: inset 18px 0 26px rgba(255, 255, 255, 0.12), inset -22px 0 32px rgba(31, 14, 114, 0.42), inset 0 -30px 38px rgba(26, 12, 88, 0.32), 0 24px 44px rgba(45, 22, 140, 0.26); } .login-figure--black { left: 240px; width: 120px; height: 310px; z-index: 2; background: linear-gradient(165deg, #34343a 0%, #202126 48%, #111217 100%); border-radius: 18px 18px 6px 6px; border-color: rgba(170, 160, 255, 0.18); box-shadow: inset 14px 0 22px rgba(255, 255, 255, 0.08), inset -18px 0 28px rgba(0, 0, 0, 0.45), inset 0 -26px 34px rgba(0, 0, 0, 0.34), 0 22px 38px rgba(0, 0, 0, 0.36); } .login-figure--orange { left: 0; width: 240px; height: 150px; z-index: 3; background: linear-gradient(160deg, #ffb27f 0%, #ff8f61 56%, #dc6f48 100%); border-radius: 120px 120px 0 0; box-shadow: inset 18px 0 24px rgba(255, 255, 255, 0.16), inset -20px 0 28px rgba(153, 66, 41, 0.32), inset 0 -22px 34px rgba(149, 55, 37, 0.24), 0 22px 36px rgba(113, 42, 30, 0.28); } .login-figure--yellow { left: 310px; width: 140px; height: 230px; z-index: 4; background: linear-gradient(160deg, #fff17a 0%, #e8d754 58%, #bfa73a 100%); border-radius: 70px 70px 0 0; box-shadow: inset 14px 0 22px rgba(255, 255, 255, 0.2), inset -18px 0 24px rgba(113, 94, 20, 0.28), inset 0 -24px 32px rgba(117, 96, 17, 0.22), 0 22px 34px rgba(84, 69, 16, 0.22); } .login-figure--purple .login-figure__panel { left: 22px; bottom: 88px; width: 36px; height: 152px; border-radius: 999px; } .login-figure--purple .login-figure__signal { left: 26px; bottom: 46px; } .login-figure--black .login-figure__panel { right: 16px; bottom: 40px; width: 12px; height: 190px; border-radius: 999px; background: rgba(255, 255, 255, 0.08); } .login-figure--black .login-figure__signal { right: 18px; top: 88px; flex-direction: column; } .login-figure--orange .login-figure__panel { left: 42px; bottom: 24px; width: 88px; height: 18px; border-radius: 999px; background: rgba(255, 255, 255, 0.16); } .login-figure--orange .login-figure__signal { right: 54px; bottom: 28px; } .login-figure--yellow .login-figure__panel { left: 24px; bottom: 44px; width: 92px; height: 24px; border-radius: 999px; background: rgba(45, 45, 45, 0.08); border-color: rgba(45, 45, 45, 0.12); } .login-figure--yellow .login-figure__shine { background: rgba(255, 255, 255, 0.3); } .login-figure--yellow .login-figure__signal { left: 34px; top: 124px; } .login-figure--yellow .login-figure__signal span, .login-figure--orange .login-figure__signal span { background: rgba(45, 45, 45, 0.36); box-shadow: none; } .login-eyes { position: absolute; z-index: 2; display: flex; transition: left 0.35s cubic-bezier(0.4, 0, 0.2, 1), top 0.35s cubic-bezier(0.4, 0, 0.2, 1); } .login-eyes--purple { left: 75px; top: 25px; gap: 32px; } .login-eyes--black { left: 26px; top: 32px; gap: 24px; } .login-eyes--orange { left: 112px; top: 60px; gap: 32px; } .login-eyes--yellow { left: 52px; top: 40px; gap: 24px; } .login-eye { position: relative; width: 22px; height: 22px; border-radius: 999px; background: white; overflow: hidden; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); } .login-eye--small { width: 20px; height: 20px; } .login-eye::after, .login-pupil::after { content: ""; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; border-radius: 50%; background: #2d2d2d; transform: translate(var(--eye-x), var(--eye-y)); transition: transform 0.08s linear, opacity 0.2s ease; } .login-eye::after { margin: -4px 0 0 -4px; } .login-pupil { position: relative; width: 12px; height: 12px; border-radius: 50%; } .login-pupil::after { width: 12px; height: 12px; margin: -6px 0 0 -6px; } .login-mouth { position: absolute; z-index: 2; background: #2d2d2d; transition: width 0.35s cubic-bezier(0.4, 0, 0.2, 1), height 0.35s cubic-bezier(0.4, 0, 0.2, 1), border-radius 0.35s cubic-bezier(0.4, 0, 0.2, 1), transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), left 0.35s cubic-bezier(0.4, 0, 0.2, 1), top 0.35s cubic-bezier(0.4, 0, 0.2, 1); } .login-mouth--purple { left: 97px; top: 57px; width: 24px; height: 8px; border-radius: 0 0 12px 12px; } .login-mouth--orange { left: 126px; top: 92px; width: 26px; height: 13px; border-radius: 0 0 13px 13px; } .login-yellow-mouth { position: absolute; z-index: 2; left: 40px; top: 88px; } .login-yellow-mouth path { stroke: #2d2d2d; stroke-width: 3; fill: none; stroke-linecap: round; } .login-character-stage[data-mood="typing"] .login-figure--purple { height: 430px; transform: skewX(-10deg) translateX(36px); } .login-character-stage[data-mood="typing"] .login-figure--black { transform: skewX(7deg) translateX(6px); } .login-character-stage[data-mood="typing"] .login-figure--orange { transform: skewX(-5deg); } .login-character-stage[data-mood="typing"] .login-figure--yellow { transform: skewX(4deg); } .login-character-stage[data-mood="typing"] .login-mouth--purple { width: 7px; height: 32px; border-radius: 0; transform: translate(14px, -28px) skewX(10deg); } .login-character-stage[data-mood="typing"] .login-mouth--orange { width: 14px; height: 14px; border-radius: 50%; transform: translateX(6px); } .login-character-stage[data-mood="peek"] .login-figure--purple, .login-character-stage[data-mood="peek"] .login-figure--black { transform: skewX(0deg) translateY(-10px); } .login-character-stage[data-mood="peek"] .login-eyes--purple { left: 40px; top: 14px; } .login-character-stage[data-mood="peek"] .login-eyes--black { left: 2px; top: 20px; } .login-character-stage[data-mood="peek"] .login-eyes--orange { left: 68px; top: 48px; } .login-character-stage[data-mood="peek"] .login-eyes--yellow { left: 10px; top: 28px; } .login-character-stage[data-mood="peek"] .login-eye::after, .login-character-stage[data-mood="peek"] .login-pupil::after { transform: translate(-8px, -6px); } .login-character-stage[data-mood="error"] .login-characters-container { animation: login-shake 0.28s ease-in-out 2; } .login-character-stage[data-mood="error"] .login-eye { height: 10px; margin-top: 4px; } .login-character-stage[data-mood="error"] .login-mouth--purple, .login-character-stage[data-mood="error"] .login-mouth--orange { border-radius: 12px 12px 0 0; transform: translateY(10px); } .login-character-stage[data-mood="error"] .login-yellow-mouth path { d: path("M0 10 Q10 2, 20 10 Q30 18, 40 10 Q50 2, 60 10 Q70 18, 80 10"); } .login-character-stage[data-mood="success"] .login-characters-container { animation: login-stage-success 0.75s cubic-bezier(0.34, 1.56, 0.64, 1) both; } .login-character-stage[data-mood="success"] .login-mouth--purple { width: 30px; height: 16px; border-radius: 0 0 15px 15px; } .login-character-stage[data-mood="success"] .login-mouth--orange { width: 32px; height: 18px; border-radius: 0 0 16px 16px; } .login-character-stage[data-mood="success"] .login-yellow-mouth path { d: path("M0 6 Q20 18, 40 18 Q60 18, 80 6"); } @keyframes login-shake { 0%, 100% { translate: 0 0; } 33% { translate: -5px 0; } 66% { translate: 5px 0; } } @keyframes login-stage-success { 0% { translate: 0 0; } 45% { translate: 0 -22px; } 100% { translate: 0 -8px; } } @media (max-width: 720px) { .login-page { background: linear-gradient(164deg, #f7f7f4 0 48%, #111214 48% 100%); } .login-page--oasis { background: #071108; } .login-page--oasis::after { background: radial-gradient(circle at 50% 34%, rgba(230, 245, 120, 0.18), transparent 40%), linear-gradient(180deg, rgba(0, 0, 0, 0.48), rgba(0, 0, 0, 0.08) 48%, rgba(0, 0, 0, 0.62)); } .login-page--oasis .login-oasis-hero { min-height: 740px; padding: 24px 20px; } .login-page--oasis .login-auth-panel { padding: 24px 18px; } .login-source-overlay { min-height: 100vh; grid-template-columns: 1fr; align-content: center; padding: 20px; pointer-events: none; } .login-page--oasis .login-source-auth-panel { display: block; width: min(100%, 350px); justify-self: center; padding: 16px 18px 20px; } .login-source-form-pane { transform: none; } .login-top-brand { left: 18px; top: 16px; gap: 10px; } .login-top-brand__logo { width: 112px; } .login-top-brand__system { min-height: 16px; max-width: 104px; padding-left: 10px; font-size: 10px; letter-spacing: 0.06em; transform: translateY(2px); white-space: normal; } .login-source-character-strip { height: 172px; margin-bottom: 12px; } .login-source-character-strip .login-character-stage { min-height: 172px; } .login-source-character-strip .login-characters-container { transform: translateX(-50%) scale(0.43); } .login-page--oasis .login-wordmark__logo { font-size: 24px; } .login-page--oasis .login-secure-pill { min-height: 34px; padding: 0 12px; font-size: 12px; } .login-premium-title { font-size: 34px; } .login-page--oasis .login-premium-title { font-size: 42px; line-height: 1.06; } .login-premium-copy { font-size: 14px; } .login-page--oasis .login-premium-copy { max-width: 320px; color: rgba(247, 246, 236, 0.72); } .login-creative-stage { min-height: 340px; } .login-page--oasis .login-creative-stage { min-height: 450px; } .login-creative-orbit { right: -20%; bottom: 34px; width: 78%; } .login-creative-caption { bottom: 34px; width: 48%; } .login-page--oasis .login-creative-caption { display: none; } .login-creative-caption b { font-size: 22px; } .login-dynamic-dock { left: 0; bottom: 132px; width: 210px; padding: 10px; } .login-page--oasis .login-dynamic-dock { bottom: 112px; width: min(100%, 330px); padding: 14px; } .login-dynamic-dock .login-character-stage { min-height: 94px; } .login-dynamic-dock .login-characters-container { transform: translateX(-50%) scale(0.22); } .login-page--oasis .login-dynamic-dock .login-character-stage { min-height: 190px; } .login-page--oasis .login-dynamic-dock .login-characters-container { transform: translateX(-50%) scale(0.45); } .login-studio-chip { font-size: 12px; } .login-studio-chip--visual { right: 0; top: 12px; } .login-page--oasis .login-studio-chip--visual { left: auto; right: 0; top: 118px; } .login-studio-chip--review { display: none; } .login-premium-metrics { grid-template-columns: 1fr; } .login-character-stage { min-height: 270px; } .login-characters-container { transform: translateX(-50%) scale(0.58); } } @media (prefers-reduced-motion: reduce) { .login-character-stage[data-mood="error"] .login-characters-container, .login-character-stage[data-mood="success"] .login-characters-container { animation: none; } } .login-top-brand__wordmark { display: inline-flex; width: auto; min-width: 148px; height: auto; color: rgba(255, 255, 255, 0.92); font-size: 22px; font-weight: 760; letter-spacing: 0; line-height: 1; filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.45)); } @media (max-width: 720px) { .login-top-brand__wordmark { min-width: 0; font-size: 15px; white-space: nowrap; } } /* ===== Divider ===== */ .divider-line { @apply h-px w-full; background: linear-gradient(to right, transparent, rgba(255,255,255,0.10), transparent); } /* ===== Glow shadows ===== */ .shadow-glow-violet { box-shadow: 0 0 0 1px rgba(139,92,246,0.2), 0 8px 32px -8px rgba(139,92,246,0.5); } .shadow-glow-blue { box-shadow: 0 0 0 1px rgba(59,130,246,0.2), 0 8px 32px -8px rgba(59,130,246,0.45); } /* ===== Scrollbar (subtle) ===== */ ::-webkit-scrollbar { width: 10px; height: 10px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.06); border-radius: 8px; } ::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.12); }