Download app/static/css/styles.css from nvikou/Pagewise: direct link, hf CLI and curl.
- Browser
- Download file 34.7 kB
-
https://huggingface.co/spaces/nvikou/Pagewise/resolve/main/app/static/css/styles.css
- Command line
-
hf download hf://spaces/nvikou/Pagewise/app/static/css/styles.css
-
curl -L -o styles.css https://huggingface.co/spaces/nvikou/Pagewise/resolve/main/app/static/css/styles.css
34.7 kB
| :root { | |
| --ink: #0b1210; | |
| --ink-soft: rgba(11, 18, 16, 0.68); | |
| --ink-faint: rgba(11, 18, 16, 0.42); | |
| --paper: #e4e8e3; | |
| --paper-deep: #d5dbd4; | |
| --surface: #f4f6f3; | |
| --surface-strong: #ffffff; | |
| --accent: #165a4e; | |
| --accent-bright: #1f7a6a; | |
| --accent-deep: #0d3d35; | |
| --accent-wash: rgba(22, 90, 78, 0.1); | |
| --mark: #b8922a; | |
| --mark-wash: rgba(184, 146, 42, 0.22); | |
| --warn: #8a5200; | |
| --warn-bg: #fff3e0; | |
| --danger: #8f1d1d; | |
| --danger-bg: #f8e8e8; | |
| --ok: #1a5c45; | |
| --ok-bg: #e4f3ec; | |
| --line: rgba(11, 18, 16, 0.1); | |
| --line-strong: rgba(11, 18, 16, 0.18); | |
| --shadow: 0 40px 90px rgba(11, 18, 16, 0.16); | |
| --shadow-soft: 0 12px 36px rgba(11, 18, 16, 0.08); | |
| --radius: 18px; | |
| --radius-sm: 10px; | |
| --font-display: "Instrument Serif", Georgia, serif; | |
| --font-body: "Outfit", "Segoe UI", sans-serif; | |
| --ease: cubic-bezier(0.22, 1, 0.36, 1); | |
| --nav-h: 4.25rem; | |
| } | |
| *, | |
| *::before, | |
| *::after { | |
| box-sizing: border-box; | |
| } | |
| html, | |
| body { | |
| margin: 0; | |
| min-height: 100%; | |
| } | |
| body { | |
| font-family: var(--font-body); | |
| color: var(--ink); | |
| background: | |
| radial-gradient( | |
| 1200px 700px at 8% -20%, | |
| #c9d5ce 0%, | |
| transparent 58% | |
| ), | |
| radial-gradient( | |
| 900px 560px at 100% 0%, | |
| #d7dfd6 0%, | |
| transparent 52% | |
| ), | |
| linear-gradient( | |
| 168deg, | |
| #e7ebe5 0%, | |
| #eef1ec 42%, | |
| #dde3db 100% | |
| ); | |
| background-attachment: fixed; | |
| -webkit-font-smoothing: antialiased; | |
| } | |
| body.page-viewer { | |
| background: #121816; | |
| color: #e8ece8; | |
| } | |
| a { | |
| color: inherit; | |
| text-decoration: none; | |
| } | |
| button, | |
| input, | |
| select, | |
| textarea { | |
| font: inherit; | |
| color: inherit; | |
| } | |
| .shell { | |
| width: min(1240px, calc(100% - 2.5rem)); | |
| margin: 0 auto; | |
| padding-bottom: 4rem; | |
| } | |
| .shell-flush { | |
| width: 100%; | |
| max-width: none; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| /* βββ Topbar βββ */ | |
| .topbar { | |
| position: sticky; | |
| top: 0; | |
| z-index: 40; | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| height: var(--nav-h); | |
| padding: 0 max(1.25rem, calc((100vw - 1240px) / 2 + 1.25rem)); | |
| backdrop-filter: blur(14px); | |
| background: rgba(228, 232, 227, 0.78); | |
| border-bottom: 1px solid transparent; | |
| transition: border-color 0.3s var(--ease), background 0.3s var(--ease); | |
| } | |
| .topbar.scrolled { | |
| border-bottom-color: var(--line); | |
| background: rgba(244, 246, 243, 0.9); | |
| } | |
| .page-viewer .topbar { | |
| background: rgba(18, 24, 22, 0.88); | |
| border-bottom-color: rgba(255, 255, 255, 0.06); | |
| color: #e8ece8; | |
| } | |
| .brand { | |
| display: inline-flex; | |
| align-items: baseline; | |
| gap: 0.15rem; | |
| font-family: var(--font-display); | |
| font-size: 1.35rem; | |
| font-weight: 400; | |
| letter-spacing: -0.03em; | |
| } | |
| .brand em { | |
| font-style: italic; | |
| color: var(--accent); | |
| } | |
| .page-viewer .brand em { | |
| color: #7dbaad; | |
| } | |
| .nav { | |
| display: flex; | |
| align-items: center; | |
| gap: 1.5rem; | |
| } | |
| .nav a { | |
| position: relative; | |
| font-size: 0.92rem; | |
| font-weight: 500; | |
| color: var(--ink-soft); | |
| padding: 0.35rem 0; | |
| transition: color 0.2s var(--ease); | |
| } | |
| .nav a::after { | |
| content: ""; | |
| position: absolute; | |
| left: 0; | |
| right: 0; | |
| bottom: -0.15rem; | |
| height: 1.5px; | |
| background: var(--accent); | |
| transform: scaleX(0); | |
| transform-origin: left; | |
| transition: transform 0.28s var(--ease); | |
| } | |
| .nav a:hover, | |
| .nav a.active { | |
| color: var(--ink); | |
| } | |
| .nav a.active::after, | |
| .nav a:hover::after { | |
| transform: scaleX(1); | |
| } | |
| .page-viewer .nav a { | |
| color: rgba(232, 236, 232, 0.62); | |
| } | |
| .page-viewer .nav a:hover, | |
| .page-viewer .nav a.active { | |
| color: #fff; | |
| } | |
| .nav-cta { | |
| display: inline-flex; | |
| align-items: center; | |
| padding: 0.55rem 1rem ; | |
| border-radius: 999px; | |
| background: var(--ink); | |
| color: #f4f6f3 ; | |
| font-weight: 600 ; | |
| } | |
| .nav-cta::after { | |
| display: none ; | |
| } | |
| .nav-cta:hover { | |
| background: var(--accent-deep); | |
| color: #fff ; | |
| } | |
| /* βββ Buttons βββ */ | |
| .btn { | |
| appearance: none; | |
| border: 0; | |
| cursor: pointer; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.45rem; | |
| font-weight: 600; | |
| font-size: 0.95rem; | |
| border-radius: 999px; | |
| padding: 0.9rem 1.35rem; | |
| transition: | |
| transform 0.2s var(--ease), | |
| background 0.2s var(--ease), | |
| box-shadow 0.2s var(--ease), | |
| color 0.2s var(--ease); | |
| } | |
| .btn:hover { | |
| transform: translateY(-1px); | |
| } | |
| .btn:disabled { | |
| opacity: 0.55; | |
| cursor: not-allowed; | |
| transform: none; | |
| } | |
| .btn-primary { | |
| background: var(--ink); | |
| color: #f4f6f3; | |
| box-shadow: 0 14px 34px rgba(11, 18, 16, 0.22); | |
| } | |
| .btn-primary:hover { | |
| background: var(--accent-deep); | |
| } | |
| .btn-secondary { | |
| background: transparent; | |
| color: var(--ink); | |
| border: 1px solid var(--line-strong); | |
| } | |
| .btn-secondary:hover { | |
| background: rgba(255, 255, 255, 0.55); | |
| } | |
| .btn-accent { | |
| background: var(--accent); | |
| color: #fff; | |
| } | |
| .btn-ghost-dark { | |
| background: rgba(255, 255, 255, 0.08); | |
| color: #fff; | |
| border: 1px solid rgba(255, 255, 255, 0.12); | |
| } | |
| .btn-sm { | |
| padding: 0.5rem 0.85rem; | |
| font-size: 0.82rem; | |
| } | |
| /* βββ Landing (home) βββ */ | |
| .page-home { | |
| background: | |
| radial-gradient( | |
| 900px 520px at 0% 0%, | |
| #d5e0d8 0%, | |
| transparent 55% | |
| ), | |
| linear-gradient(180deg, #eef1ec 0%, #e2e7e1 100%); | |
| } | |
| .page-home .topbar { | |
| background: transparent; | |
| backdrop-filter: none; | |
| } | |
| .page-home .topbar.scrolled { | |
| background: rgba(238, 241, 236, 0.92); | |
| backdrop-filter: blur(12px); | |
| } | |
| .landing { | |
| display: grid; | |
| grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr); | |
| gap: 1.5rem; | |
| min-height: calc(100vh - var(--nav-h)); | |
| width: min(1280px, calc(100% - 2.5rem)); | |
| margin: 0 auto; | |
| align-items: center; | |
| padding: 1rem 0 2.5rem; | |
| } | |
| .landing-copy { | |
| display: flex; | |
| flex-direction: column; | |
| justify-content: center; | |
| padding: 1rem 1rem 2rem 0; | |
| animation: rise 0.75s var(--ease) both; | |
| } | |
| .landing-copy .mark { | |
| font-family: var(--font-display); | |
| font-weight: 400; | |
| font-size: clamp(3.6rem, 8.5vw, 6.2rem); | |
| line-height: 0.9; | |
| letter-spacing: -0.045em; | |
| margin: 0 0 1.25rem; | |
| } | |
| .landing-copy .mark em { | |
| font-style: italic; | |
| color: var(--accent); | |
| } | |
| .landing-copy .lede { | |
| margin: 0 0 1.85rem; | |
| max-width: 26rem; | |
| font-size: 1.12rem; | |
| line-height: 1.55; | |
| color: var(--ink-soft); | |
| } | |
| .landing-visual { | |
| position: relative; | |
| display: grid; | |
| grid-template-columns: 168px minmax(0, 1fr); | |
| gap: 0.85rem; | |
| align-items: center; | |
| min-height: min(72vh, 560px); | |
| padding: 1.25rem; | |
| border-radius: 28px; | |
| background: | |
| linear-gradient( | |
| 145deg, | |
| #152822 0%, | |
| #1f3a32 48%, | |
| #2a4a40 100% | |
| ); | |
| box-shadow: 0 30px 70px rgba(11, 18, 16, 0.18); | |
| animation: sheet-in 0.95s var(--ease) 0.1s both; | |
| overflow: hidden; | |
| } | |
| .corpus-rail { | |
| position: relative; | |
| z-index: 2; | |
| padding: 0.35rem 0.15rem; | |
| color: rgba(232, 236, 232, 0.78); | |
| } | |
| .corpus-rail-label, | |
| .corpus-rail-meta { | |
| margin: 0; | |
| font-size: 0.68rem; | |
| letter-spacing: 0.1em; | |
| text-transform: uppercase; | |
| color: rgba(232, 236, 232, 0.45); | |
| } | |
| .corpus-rail ul { | |
| list-style: none; | |
| margin: 0.85rem 0 1rem; | |
| padding: 0; | |
| display: grid; | |
| gap: 0.4rem; | |
| } | |
| .corpus-rail li { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.4rem; | |
| font-size: 0.72rem; | |
| line-height: 1.25; | |
| padding: 0.45rem 0.5rem; | |
| border-radius: 8px; | |
| color: rgba(232, 236, 232, 0.62); | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| .corpus-rail li span { | |
| flex-shrink: 0; | |
| font-size: 0.58rem; | |
| font-weight: 700; | |
| letter-spacing: 0.04em; | |
| padding: 0.15rem 0.3rem; | |
| border-radius: 4px; | |
| background: rgba(255, 255, 255, 0.08); | |
| } | |
| .corpus-rail li.is-active { | |
| background: rgba(255, 255, 255, 0.1); | |
| color: #fff; | |
| } | |
| .stack { | |
| position: relative; | |
| height: min(58vh, 460px); | |
| display: grid; | |
| place-items: center; | |
| } | |
| .sheet { | |
| background: #fbfcf9; | |
| color: var(--ink); | |
| border-radius: 4px; | |
| box-shadow: 0 24px 50px rgba(0, 0, 0, 0.28); | |
| } | |
| .sheet-back { | |
| position: absolute; | |
| width: min(88%, 340px); | |
| height: 78%; | |
| } | |
| .sheet-c { | |
| transform: translate(18px, -18px) rotate(4deg); | |
| background: #e7ebe6; | |
| animation: stack-breathe 6.5s ease-in-out infinite; | |
| } | |
| .sheet-b { | |
| transform: translate(8px, -8px) rotate(1.8deg); | |
| background: #f1f4f0; | |
| animation: stack-breathe 6.5s ease-in-out 0.35s infinite; | |
| } | |
| .sheet-front { | |
| position: relative; | |
| z-index: 2; | |
| width: min(92%, 360px); | |
| min-height: 78%; | |
| padding: 1.25rem 1.35rem; | |
| display: flex; | |
| flex-direction: column; | |
| animation: sheet-float 7s ease-in-out 0.8s infinite; | |
| } | |
| .page-sheet-head { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 1rem; | |
| font-size: 0.65rem; | |
| font-weight: 650; | |
| letter-spacing: 0.08em; | |
| text-transform: uppercase; | |
| color: var(--ink-faint); | |
| margin-bottom: 1rem; | |
| padding-bottom: 0.7rem; | |
| border-bottom: 1px solid rgba(11, 18, 16, 0.1); | |
| } | |
| .sheet-front h2 { | |
| font-family: var(--font-display); | |
| font-size: 1.45rem; | |
| font-weight: 400; | |
| letter-spacing: -0.02em; | |
| margin: 0 0 1rem; | |
| line-height: 1.15; | |
| } | |
| .sheet-front .ghost { | |
| margin: 0; | |
| font-size: 0.88rem; | |
| line-height: 1.5; | |
| color: rgba(11, 18, 16, 0.4); | |
| } | |
| .sheet-front .marked { | |
| margin: 0 0 0.9rem; | |
| padding: 0.8rem 0.85rem; | |
| font-size: 0.92rem; | |
| line-height: 1.45; | |
| color: var(--ink); | |
| background: linear-gradient( | |
| 90deg, | |
| rgba(184, 146, 42, 0.3), | |
| rgba(184, 146, 42, 0.12) | |
| ); | |
| border-left: 3px solid var(--mark); | |
| animation: mark-in 0.9s var(--ease) 0.55s both; | |
| } | |
| .page-sheet-foot { | |
| margin-top: auto; | |
| padding-top: 0.85rem; | |
| border-top: 1px solid rgba(11, 18, 16, 0.08); | |
| font-size: 0.68rem; | |
| letter-spacing: 0.06em; | |
| text-transform: uppercase; | |
| color: var(--ink-faint); | |
| } | |
| .section.pitch, | |
| .section.demo-strip, | |
| .section.proof, | |
| .section.close-cta { | |
| width: min(1100px, calc(100% - 2.5rem)); | |
| margin-left: auto; | |
| margin-right: auto; | |
| } | |
| .pitch-grid { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 0; | |
| border-top: 1px solid var(--line-strong); | |
| } | |
| .pitch-grid article { | |
| padding: 1.6rem 1.35rem 1.6rem 0; | |
| border-right: 1px solid var(--line); | |
| animation: rise 0.65s var(--ease) both; | |
| } | |
| .pitch-grid article:nth-child(2) { | |
| padding-left: 1.35rem; | |
| animation-delay: 0.06s; | |
| } | |
| .pitch-grid article:nth-child(3) { | |
| padding-left: 1.35rem; | |
| border-right: 0; | |
| animation-delay: 0.12s; | |
| } | |
| .pitch-grid h3 { | |
| margin: 0 0 0.5rem; | |
| font-size: 1.05rem; | |
| font-weight: 650; | |
| } | |
| .pitch-grid p { | |
| margin: 0; | |
| color: var(--ink-soft); | |
| line-height: 1.5; | |
| font-size: 0.95rem; | |
| } | |
| .demo-flow { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 1rem; | |
| } | |
| .demo-step { | |
| padding: 1.25rem 1.15rem; | |
| border-radius: 16px; | |
| background: rgba(255, 255, 255, 0.55); | |
| border: 1px solid var(--line); | |
| animation: rise 0.6s var(--ease) both; | |
| } | |
| .demo-step:nth-child(2) { | |
| animation-delay: 0.06s; | |
| } | |
| .demo-step:nth-child(3) { | |
| animation-delay: 0.12s; | |
| } | |
| .demo-step span { | |
| display: block; | |
| margin-bottom: 0.55rem; | |
| font-size: 0.72rem; | |
| font-weight: 700; | |
| letter-spacing: 0.08em; | |
| text-transform: uppercase; | |
| color: var(--accent); | |
| } | |
| .demo-step p { | |
| margin: 0; | |
| font-family: var(--font-display); | |
| font-size: 1.2rem; | |
| line-height: 1.3; | |
| letter-spacing: -0.02em; | |
| } | |
| .demo-cta { | |
| margin-top: 1.5rem; | |
| } | |
| .close-cta { | |
| text-align: center; | |
| padding: 3.5rem 0 2rem; | |
| } | |
| .close-cta h2 { | |
| font-family: var(--font-display); | |
| font-size: clamp(2rem, 4vw, 2.8rem); | |
| font-weight: 400; | |
| letter-spacing: -0.03em; | |
| margin: 0 0 0.65rem; | |
| } | |
| .close-cta p { | |
| margin: 0 0 1.5rem; | |
| color: var(--ink-soft); | |
| } | |
| .close-cta .cta-row { | |
| justify-content: center; | |
| } | |
| .section.proof { | |
| padding-top: 2.5rem; | |
| } | |
| .hero { | |
| display: none; | |
| } | |
| @keyframes sheet-in { | |
| from { | |
| opacity: 0; | |
| transform: translateX(24px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateX(0); | |
| } | |
| } | |
| @keyframes sheet-float { | |
| 0%, | |
| 100% { | |
| transform: translateY(0); | |
| } | |
| 50% { | |
| transform: translateY(-6px); | |
| } | |
| } | |
| @keyframes stack-breathe { | |
| 0%, | |
| 100% { | |
| filter: brightness(1); | |
| } | |
| 50% { | |
| filter: brightness(1.03); | |
| } | |
| } | |
| @keyframes mark-in { | |
| from { | |
| opacity: 0; | |
| transform: translateY(6px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @media (max-width: 980px) { | |
| .landing { | |
| grid-template-columns: 1fr; | |
| min-height: auto; | |
| gap: 1.5rem; | |
| } | |
| .landing-copy { | |
| padding: 1.25rem 0 0; | |
| } | |
| .landing-visual { | |
| grid-template-columns: 1fr; | |
| min-height: auto; | |
| padding: 1rem; | |
| } | |
| .corpus-rail ul { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.4rem; | |
| } | |
| .corpus-rail li { | |
| max-width: 100%; | |
| } | |
| .stack { | |
| height: 380px; | |
| margin-top: 0.5rem; | |
| } | |
| .pitch-grid, | |
| .demo-flow { | |
| grid-template-columns: 1fr; | |
| } | |
| .pitch-grid article, | |
| .pitch-grid article:nth-child(2), | |
| .pitch-grid article:nth-child(3) { | |
| padding: 1.25rem 0; | |
| border-right: 0; | |
| border-bottom: 1px solid var(--line); | |
| } | |
| } | |
| /* βββ Section βββ */ | |
| .section { | |
| width: min(1240px, calc(100% - 2.5rem)); | |
| margin: 0 auto; | |
| padding: 4.5rem 0 2rem; | |
| } | |
| .section-head { | |
| max-width: 34rem; | |
| margin-bottom: 2.5rem; | |
| animation: rise 0.7s var(--ease) both; | |
| } | |
| .section-head h2 { | |
| font-family: var(--font-display); | |
| font-size: clamp(2rem, 4vw, 2.8rem); | |
| font-weight: 400; | |
| letter-spacing: -0.03em; | |
| margin: 0 0 0.65rem; | |
| } | |
| .section-head p { | |
| margin: 0; | |
| color: var(--ink-soft); | |
| font-size: 1.05rem; | |
| line-height: 1.55; | |
| } | |
| .flow { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 0; | |
| border-top: 1px solid var(--line-strong); | |
| } | |
| .flow-step { | |
| padding: 1.75rem 1.4rem 1.75rem 0; | |
| border-right: 1px solid var(--line); | |
| animation: rise 0.7s var(--ease) both; | |
| } | |
| .flow-step:nth-child(2) { | |
| padding-left: 1.4rem; | |
| animation-delay: 0.08s; | |
| } | |
| .flow-step:nth-child(3) { | |
| padding-left: 1.4rem; | |
| border-right: 0; | |
| animation-delay: 0.16s; | |
| } | |
| .flow-step .num { | |
| font-family: var(--font-display); | |
| font-style: italic; | |
| font-size: 1.4rem; | |
| color: var(--accent); | |
| display: block; | |
| margin-bottom: 0.75rem; | |
| } | |
| .flow-step h3 { | |
| margin: 0 0 0.45rem; | |
| font-size: 1.05rem; | |
| font-weight: 650; | |
| } | |
| .flow-step p { | |
| margin: 0; | |
| color: var(--ink-soft); | |
| line-height: 1.5; | |
| font-size: 0.95rem; | |
| } | |
| .site-footer { | |
| width: min(1240px, calc(100% - 2.5rem)); | |
| margin: 3rem auto 0; | |
| padding: 1.5rem 0 2rem; | |
| border-top: 1px solid var(--line); | |
| color: var(--ink-faint); | |
| font-size: 0.85rem; | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 1rem; | |
| flex-wrap: wrap; | |
| } | |
| /* βββ Ask workspace (chat-first) βββ */ | |
| .page-ask { | |
| min-height: 100vh; | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .ask-app { | |
| width: min(780px, calc(100% - 2rem)); | |
| margin: 0 auto; | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| min-height: 0; | |
| height: calc(100vh - var(--nav-h)); | |
| padding: 0.75rem 0 1rem; | |
| } | |
| .ask-toolbar { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 1rem; | |
| padding: 0.35rem 0 0.75rem; | |
| flex-shrink: 0; | |
| } | |
| .ask-toolbar-left { | |
| display: flex; | |
| align-items: baseline; | |
| gap: 0.75rem; | |
| min-width: 0; | |
| } | |
| .ask-title { | |
| font-family: var(--font-display); | |
| font-size: 1.35rem; | |
| letter-spacing: -0.02em; | |
| } | |
| .ask-corp { | |
| font-size: 0.82rem; | |
| color: var(--ink-faint); | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| #filters-toggle.is-on { | |
| background: var(--accent-wash); | |
| border-color: var(--accent); | |
| color: var(--accent-deep); | |
| } | |
| .ask-filters { | |
| display: grid; | |
| grid-template-columns: 1fr 1.4fr auto auto; | |
| gap: 0.5rem; | |
| padding: 0 0 0.85rem; | |
| flex-shrink: 0; | |
| animation: rise 0.25s var(--ease) both; | |
| } | |
| .ask-filters[hidden] { | |
| display: none ; | |
| } | |
| .ask-filters select, | |
| .ask-filters input { | |
| width: 100%; | |
| border: 1px solid var(--line-strong); | |
| background: rgba(255, 255, 255, 0.75); | |
| border-radius: 10px; | |
| padding: 0.55rem 0.65rem; | |
| font-size: 0.85rem; | |
| outline: none; | |
| } | |
| .ask-filters select:focus, | |
| .ask-filters input:focus { | |
| border-color: var(--accent); | |
| box-shadow: 0 0 0 3px var(--accent-wash); | |
| } | |
| .workspace { | |
| width: min(1240px, calc(100% - 2.5rem)); | |
| margin: 0 auto; | |
| padding: 1.25rem 0 3rem; | |
| display: grid; | |
| grid-template-columns: 260px minmax(0, 1fr); | |
| gap: 1.25rem; | |
| min-height: calc(100vh - var(--nav-h) - 2rem); | |
| } | |
| .rail { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 1.25rem; | |
| padding-top: 0.35rem; | |
| animation: rise 0.55s var(--ease) both; | |
| } | |
| .rail-block h2 { | |
| font-family: var(--font-display); | |
| font-size: 1.35rem; | |
| font-weight: 400; | |
| margin: 0 0 0.35rem; | |
| } | |
| .rail-block p { | |
| margin: 0 0 1rem; | |
| color: var(--ink-faint); | |
| font-size: 0.88rem; | |
| line-height: 1.45; | |
| } | |
| .field { | |
| display: grid; | |
| gap: 0.35rem; | |
| margin-bottom: 0.85rem; | |
| } | |
| .field label { | |
| font-size: 0.72rem; | |
| font-weight: 650; | |
| letter-spacing: 0.06em; | |
| text-transform: uppercase; | |
| color: var(--ink-faint); | |
| } | |
| .field select, | |
| .field input, | |
| .composer-box textarea, | |
| .library-form input[type="text"] { | |
| width: 100%; | |
| border: 1px solid var(--line-strong); | |
| background: rgba(255, 255, 255, 0.72); | |
| border-radius: var(--radius-sm); | |
| padding: 0.7rem 0.8rem; | |
| outline: none; | |
| transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease); | |
| } | |
| .field select:focus, | |
| .field input:focus, | |
| .composer-box textarea:focus, | |
| .library-form input[type="text"]:focus { | |
| border-color: var(--accent); | |
| box-shadow: 0 0 0 3px var(--accent-wash); | |
| } | |
| .rail-metrics { | |
| display: grid; | |
| gap: 0.55rem; | |
| } | |
| .metric { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: baseline; | |
| padding: 0.55rem 0; | |
| border-bottom: 1px solid var(--line); | |
| font-size: 0.9rem; | |
| } | |
| .metric b { | |
| font-family: var(--font-display); | |
| font-size: 1.25rem; | |
| font-weight: 400; | |
| } | |
| .stage { | |
| display: flex; | |
| flex-direction: column; | |
| min-height: 0; | |
| animation: rise 0.6s var(--ease) 0.05s both; | |
| } | |
| .stage-head { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: end; | |
| gap: 1rem; | |
| margin-bottom: 1rem; | |
| } | |
| .stage-head h1 { | |
| font-family: var(--font-display); | |
| font-size: clamp(1.8rem, 3vw, 2.4rem); | |
| font-weight: 400; | |
| letter-spacing: -0.03em; | |
| margin: 0; | |
| } | |
| .stage-head p { | |
| margin: 0.35rem 0 0; | |
| color: var(--ink-soft); | |
| max-width: 36rem; | |
| } | |
| .page-ask .thread { | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 1rem; | |
| overflow: auto; | |
| padding: 0.5rem 0.1rem 1.25rem; | |
| min-height: 0; | |
| max-height: none; | |
| } | |
| .thread { | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 1rem; | |
| overflow: auto; | |
| padding: 0.25rem 0.15rem 1rem; | |
| min-height: 42vh; | |
| max-height: calc(100vh - 22rem); | |
| } | |
| .thread-empty { | |
| margin: auto 0; | |
| max-width: 34rem; | |
| padding: 1.5rem 0 2rem; | |
| animation: rise 0.5s var(--ease) both; | |
| } | |
| .thread-empty h1, | |
| .thread-empty h3 { | |
| font-family: var(--font-display); | |
| font-size: clamp(1.8rem, 4vw, 2.4rem); | |
| font-weight: 400; | |
| margin: 0 0 0.55rem; | |
| letter-spacing: -0.03em; | |
| } | |
| .thread-empty p { | |
| margin: 0 0 1.35rem; | |
| color: var(--ink-soft); | |
| line-height: 1.5; | |
| } | |
| .prompt-list { | |
| display: grid; | |
| gap: 0.5rem; | |
| } | |
| .prompt-list button { | |
| text-align: left; | |
| background: rgba(255, 255, 255, 0.55); | |
| border: 1px solid var(--line); | |
| border-radius: 12px; | |
| padding: 0.85rem 1rem; | |
| cursor: pointer; | |
| font-size: 0.92rem; | |
| line-height: 1.35; | |
| color: var(--ink); | |
| transition: | |
| border-color 0.2s var(--ease), | |
| background 0.2s var(--ease), | |
| transform 0.2s var(--ease); | |
| } | |
| .prompt-list button:hover { | |
| border-color: var(--accent); | |
| background: #fff; | |
| transform: translateX(3px); | |
| } | |
| .prompt-list strong { | |
| display: block; | |
| font-size: 0.92rem; | |
| margin-bottom: 0.15rem; | |
| } | |
| .prompt-list span { | |
| font-size: 0.8rem; | |
| color: var(--ink-faint); | |
| } | |
| .msg { | |
| max-width: min(640px, 94%); | |
| animation: rise 0.35s var(--ease) both; | |
| } | |
| .msg.user { | |
| align-self: flex-end; | |
| } | |
| .msg.assistant { | |
| align-self: flex-start; | |
| width: min(640px, 100%); | |
| max-width: 100%; | |
| } | |
| .msg-body { | |
| padding: 1rem 1.15rem; | |
| border-radius: 16px; | |
| line-height: 1.55; | |
| white-space: pre-wrap; | |
| } | |
| .msg.user .msg-body { | |
| background: var(--ink); | |
| color: #f3f6f3; | |
| border-bottom-right-radius: 6px; | |
| } | |
| .msg.assistant .msg-body { | |
| background: rgba(255, 255, 255, 0.82); | |
| border: 1px solid var(--line); | |
| border-bottom-left-radius: 6px; | |
| } | |
| .msg-meta { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.45rem; | |
| align-items: center; | |
| margin-bottom: 0.55rem; | |
| font-size: 0.78rem; | |
| color: var(--ink-faint); | |
| } | |
| .pill { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.3rem; | |
| padding: 0.2rem 0.55rem; | |
| border-radius: 999px; | |
| font-weight: 650; | |
| font-size: 0.72rem; | |
| letter-spacing: 0.02em; | |
| } | |
| .pill-ok { | |
| background: var(--ok-bg); | |
| color: var(--ok); | |
| } | |
| .pill-warn { | |
| background: var(--warn-bg); | |
| color: var(--warn); | |
| } | |
| .citations { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.45rem; | |
| margin-top: 0.85rem; | |
| } | |
| .cite { | |
| display: grid; | |
| grid-template-columns: auto 1fr auto; | |
| gap: 0.65rem; | |
| align-items: start; | |
| text-align: left; | |
| width: 100%; | |
| border: 1px solid var(--line); | |
| background: #fff; | |
| border-radius: 12px; | |
| padding: 0.7rem 0.85rem; | |
| cursor: pointer; | |
| transition: | |
| border-color 0.2s var(--ease), | |
| transform 0.2s var(--ease); | |
| } | |
| .cite:hover { | |
| border-color: var(--accent); | |
| transform: translateY(-1px); | |
| } | |
| .cite-idx { | |
| font-family: var(--font-display); | |
| font-style: italic; | |
| color: var(--accent); | |
| font-size: 1.05rem; | |
| } | |
| .cite-main strong { | |
| display: block; | |
| font-size: 0.88rem; | |
| } | |
| .cite-main span { | |
| display: block; | |
| margin-top: 0.2rem; | |
| font-size: 0.78rem; | |
| color: var(--ink-faint); | |
| line-height: 1.35; | |
| } | |
| .cite-page { | |
| font-size: 0.72rem; | |
| font-weight: 700; | |
| letter-spacing: 0.04em; | |
| color: var(--mark); | |
| text-transform: uppercase; | |
| } | |
| .typing { | |
| display: inline-flex; | |
| gap: 0.28rem; | |
| padding: 0.35rem 0; | |
| } | |
| .typing i { | |
| width: 6px; | |
| height: 6px; | |
| border-radius: 50%; | |
| background: var(--ink-faint); | |
| animation: blink 1.1s infinite ease-in-out; | |
| } | |
| .typing i:nth-child(2) { | |
| animation-delay: 0.15s; | |
| } | |
| .typing i:nth-child(3) { | |
| animation-delay: 0.3s; | |
| } | |
| .page-ask .composer { | |
| margin-top: 0; | |
| position: relative; | |
| bottom: auto; | |
| flex-shrink: 0; | |
| padding-top: 0.25rem; | |
| } | |
| .composer { | |
| margin-top: auto; | |
| position: sticky; | |
| bottom: 0.5rem; | |
| } | |
| .page-ask .composer-box { | |
| display: grid; | |
| grid-template-columns: 1fr auto; | |
| gap: 0.75rem; | |
| align-items: end; | |
| padding: 0.85rem 0.9rem; | |
| } | |
| .composer-box { | |
| display: grid; | |
| gap: 0.75rem; | |
| padding: 0.9rem; | |
| background: rgba(255, 255, 255, 0.92); | |
| border: 1px solid var(--line-strong); | |
| border-radius: 18px; | |
| box-shadow: var(--shadow-soft); | |
| backdrop-filter: blur(10px); | |
| } | |
| .page-ask .composer-box textarea { | |
| border: 0; | |
| background: transparent; | |
| resize: none; | |
| min-height: 52px; | |
| max-height: 160px; | |
| padding: 0.35rem 0.15rem; | |
| box-shadow: none ; | |
| font-size: 1rem; | |
| } | |
| .composer-box textarea { | |
| border: 0; | |
| background: transparent; | |
| resize: none; | |
| min-height: 72px; | |
| padding: 0.35rem 0.25rem; | |
| box-shadow: none ; | |
| } | |
| .composer-actions { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| gap: 0.75rem; | |
| } | |
| .composer-hint { | |
| font-size: 0.78rem; | |
| color: var(--ink-faint); | |
| } | |
| /* βββ Library βββ */ | |
| .page-library { | |
| min-height: 100vh; | |
| } | |
| .lib { | |
| width: min(920px, calc(100% - 2.5rem)); | |
| margin: 0 auto; | |
| padding: 1.5rem 0 4rem; | |
| } | |
| .lib-head { | |
| display: flex; | |
| align-items: flex-start; | |
| justify-content: space-between; | |
| gap: 1.25rem; | |
| margin-bottom: 2rem; | |
| animation: rise 0.5s var(--ease) both; | |
| } | |
| .lib-head h1 { | |
| font-family: var(--font-display); | |
| font-size: clamp(2.4rem, 5vw, 3.4rem); | |
| font-weight: 400; | |
| letter-spacing: -0.04em; | |
| margin: 0; | |
| line-height: 1; | |
| } | |
| .lib-head p { | |
| margin: 0.55rem 0 0; | |
| color: var(--ink-faint); | |
| font-size: 0.92rem; | |
| } | |
| .lib-ask { | |
| margin-top: 0.55rem; | |
| font-size: 0.92rem; | |
| font-weight: 650; | |
| color: var(--accent-deep); | |
| white-space: nowrap; | |
| } | |
| .lib-ask:hover { | |
| color: var(--ink); | |
| } | |
| .lib-upload { | |
| display: grid; | |
| grid-template-columns: minmax(0, 1fr) 140px auto; | |
| gap: 0.65rem; | |
| align-items: stretch; | |
| margin-bottom: 0.35rem; | |
| animation: rise 0.55s var(--ease) 0.05s both; | |
| } | |
| .lib-drop { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.85rem; | |
| min-height: 64px; | |
| padding: 0.75rem 1rem; | |
| border: 1px dashed rgba(22, 90, 78, 0.35); | |
| border-radius: 14px; | |
| background: rgba(255, 255, 255, 0.55); | |
| cursor: pointer; | |
| transition: | |
| border-color 0.2s var(--ease), | |
| background 0.2s var(--ease), | |
| transform 0.2s var(--ease); | |
| } | |
| .lib-drop.drag, | |
| .lib-drop:hover { | |
| border-color: var(--accent); | |
| background: rgba(255, 255, 255, 0.9); | |
| } | |
| .lib-drop-icon { | |
| width: 36px; | |
| height: 36px; | |
| border-radius: 10px; | |
| display: grid; | |
| place-items: center; | |
| background: var(--ink); | |
| color: #f4f6f3; | |
| font-size: 1rem; | |
| flex-shrink: 0; | |
| } | |
| .lib-drop-copy { | |
| min-width: 0; | |
| } | |
| .lib-drop-copy strong { | |
| display: block; | |
| font-size: 0.92rem; | |
| font-weight: 650; | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| .lib-drop-copy span { | |
| display: block; | |
| margin-top: 0.15rem; | |
| font-size: 0.78rem; | |
| color: var(--ink-faint); | |
| } | |
| .lib-drop input { | |
| display: none; | |
| } | |
| .lib-upload > input[type="text"] { | |
| border: 1px solid var(--line-strong); | |
| background: rgba(255, 255, 255, 0.75); | |
| border-radius: 14px; | |
| padding: 0 0.9rem; | |
| outline: none; | |
| } | |
| .lib-upload > input[type="text"]:focus { | |
| border-color: var(--accent); | |
| box-shadow: 0 0 0 3px var(--accent-wash); | |
| } | |
| .lib-status { | |
| grid-column: 1 / -1; | |
| margin: 0.35rem 0 0; | |
| font-size: 0.85rem; | |
| color: var(--ink-soft); | |
| } | |
| .lib-status.is-error { | |
| color: var(--danger); | |
| } | |
| .lib-list { | |
| margin-top: 1.5rem; | |
| border-top: 1px solid var(--line-strong); | |
| animation: rise 0.55s var(--ease) 0.1s both; | |
| } | |
| .lib-row { | |
| display: grid; | |
| grid-template-columns: 52px minmax(0, 1fr) auto; | |
| gap: 1rem; | |
| align-items: center; | |
| padding: 1.1rem 0.15rem; | |
| border-bottom: 1px solid var(--line); | |
| transition: background 0.2s var(--ease); | |
| } | |
| .lib-row:hover { | |
| background: rgba(255, 255, 255, 0.35); | |
| } | |
| .lib-ext { | |
| width: 52px; | |
| height: 52px; | |
| border-radius: 12px; | |
| display: grid; | |
| place-items: center; | |
| background: #1a2e28; | |
| color: #d7e4de; | |
| font-size: 0.68rem; | |
| font-weight: 700; | |
| letter-spacing: 0.04em; | |
| } | |
| .lib-main h3 { | |
| margin: 0; | |
| font-size: 1rem; | |
| font-weight: 650; | |
| letter-spacing: -0.01em; | |
| } | |
| .lib-main p { | |
| margin: 0.35rem 0 0; | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| gap: 0.35rem 0.45rem; | |
| font-size: 0.8rem; | |
| color: var(--ink-faint); | |
| } | |
| .lib-main .dot { | |
| opacity: 0.55; | |
| } | |
| .lib-actions { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.85rem; | |
| } | |
| .lib-link { | |
| appearance: none; | |
| border: 0; | |
| background: none; | |
| padding: 0; | |
| font: inherit; | |
| font-size: 0.88rem; | |
| font-weight: 600; | |
| color: var(--accent-deep); | |
| cursor: pointer; | |
| text-decoration: none; | |
| } | |
| .lib-link:hover { | |
| color: var(--ink); | |
| } | |
| .lib-link.danger { | |
| color: var(--ink-faint); | |
| } | |
| .lib-link.danger:hover { | |
| color: var(--danger); | |
| } | |
| .lib-empty { | |
| padding: 3rem 0.25rem; | |
| text-align: left; | |
| } | |
| .lib-empty h2 { | |
| font-family: var(--font-display); | |
| font-size: 1.8rem; | |
| font-weight: 400; | |
| margin: 0 0 0.45rem; | |
| } | |
| .lib-empty p { | |
| margin: 0; | |
| color: var(--ink-soft); | |
| } | |
| @media (max-width: 720px) { | |
| .lib-upload { | |
| grid-template-columns: 1fr; | |
| } | |
| .lib-row { | |
| grid-template-columns: 44px minmax(0, 1fr); | |
| gap: 0.75rem; | |
| } | |
| .lib-actions { | |
| grid-column: 2; | |
| justify-content: flex-start; | |
| padding-top: 0.15rem; | |
| } | |
| } | |
| /* βββ Viewer βββ */ | |
| .viewer-layout { | |
| display: grid; | |
| grid-template-columns: minmax(0, 1fr) 320px; | |
| min-height: calc(100vh - var(--nav-h)); | |
| } | |
| #pdf-canvas-wrap { | |
| position: relative; | |
| background: | |
| radial-gradient( | |
| 800px 500px at 50% 0%, | |
| #1c2622 0%, | |
| #121816 70% | |
| ); | |
| display: grid; | |
| place-items: center; | |
| overflow: auto; | |
| padding: 1.5rem; | |
| } | |
| #pdf-canvas-wrap canvas { | |
| max-width: 100%; | |
| box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45); | |
| background: #fff; | |
| } | |
| #highlight-layer { | |
| position: absolute; | |
| pointer-events: none; | |
| z-index: 2; | |
| } | |
| .highlight-box { | |
| position: absolute; | |
| border: 2px solid var(--mark); | |
| background: var(--mark-wash); | |
| border-radius: 3px; | |
| mix-blend-mode: multiply; | |
| } | |
| .viewer-side { | |
| padding: 1.5rem 1.25rem; | |
| border-left: 1px solid rgba(255, 255, 255, 0.08); | |
| background: #161d1a; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 1rem; | |
| } | |
| .viewer-side h1 { | |
| font-family: var(--font-display); | |
| font-size: 1.55rem; | |
| font-weight: 400; | |
| margin: 0; | |
| line-height: 1.2; | |
| } | |
| .viewer-side .page-label { | |
| margin: 0; | |
| color: rgba(232, 236, 232, 0.55); | |
| font-size: 0.85rem; | |
| letter-spacing: 0.04em; | |
| text-transform: uppercase; | |
| } | |
| .viewer-side .excerpt { | |
| margin: 0; | |
| padding: 1rem; | |
| border-left: 3px solid var(--mark); | |
| background: rgba(184, 146, 42, 0.12); | |
| line-height: 1.5; | |
| color: rgba(232, 236, 232, 0.9); | |
| font-size: 0.95rem; | |
| } | |
| .viewer-nav { | |
| display: flex; | |
| gap: 0.55rem; | |
| margin-top: auto; | |
| } | |
| /* βββ Motion βββ */ | |
| @keyframes rise { | |
| from { | |
| opacity: 0; | |
| transform: translateY(14px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @keyframes plane-in { | |
| from { | |
| opacity: 0; | |
| } | |
| to { | |
| opacity: 1; | |
| } | |
| } | |
| @keyframes doc-rise { | |
| from { | |
| opacity: 0; | |
| transform: rotate(-1.5deg) translateY(36px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: rotate(-1.5deg) translateY(12px); | |
| } | |
| } | |
| @keyframes cite-in { | |
| from { | |
| opacity: 0; | |
| transform: translateX(-90%); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateX(-100%); | |
| } | |
| } | |
| @keyframes hl-pulse { | |
| 0%, | |
| 100% { | |
| box-shadow: 0 0 0 0 rgba(184, 146, 42, 0); | |
| } | |
| 50% { | |
| box-shadow: 0 0 0 6px rgba(184, 146, 42, 0.12); | |
| } | |
| } | |
| @keyframes blink { | |
| 0%, | |
| 80%, | |
| 100% { | |
| opacity: 0.25; | |
| transform: translateY(0); | |
| } | |
| 40% { | |
| opacity: 1; | |
| transform: translateY(-2px); | |
| } | |
| } | |
| /* βββ Responsive βββ */ | |
| @media (max-width: 980px) { | |
| .flow { | |
| grid-template-columns: 1fr; | |
| } | |
| .flow-step, | |
| .flow-step:nth-child(2), | |
| .flow-step:nth-child(3) { | |
| padding: 1.25rem 0; | |
| border-right: 0; | |
| border-bottom: 1px solid var(--line); | |
| } | |
| .viewer-layout { | |
| grid-template-columns: 1fr; | |
| } | |
| .ask-filters { | |
| grid-template-columns: 1fr 1fr; | |
| } | |
| .viewer-side { | |
| border-left: 0; | |
| border-top: 1px solid rgba(255, 255, 255, 0.08); | |
| } | |
| } | |
| @media (max-width: 640px) { | |
| .nav { | |
| gap: 0.85rem; | |
| } | |
| .nav .hide-sm { | |
| display: none; | |
| } | |
| .ask-filters { | |
| grid-template-columns: 1fr; | |
| } | |
| .page-ask .composer-box { | |
| grid-template-columns: 1fr; | |
| } | |
| .landing-copy .mark { | |
| font-size: clamp(3rem, 14vw, 4.2rem); | |
| } | |
| .corpus-rail { | |
| display: none; | |
| } | |
| .landing-visual { | |
| grid-template-columns: 1fr; | |
| } | |
| } | |