|
20 | 20 | .cm-scroller { font-family: inherit; line-height: 1.5; } |
21 | 21 | .cm-content { padding: 0; } |
22 | 22 | .cm-line { padding: 0; } |
23 | | - .cm-gutters { display: none; } |
| 23 | + .cm-gutters { background: transparent; border-right: 1px solid var(--hairline-soft); color: var(--muted); font-variant-numeric: tabular-nums; } |
| 24 | + .cm-lineNumbers .cm-gutterElement { padding: 0 var(--space-2) 0 0; min-width: 2ch; text-align: right; font-size: .85em; } |
24 | 25 | .cm-activeLine, .cm-activeLineGutter { background: transparent; } |
25 | 26 | .cm-selectionBackground, .cm-focused .cm-selectionBackground { background: rgba(255, 72, 1, 0.18) !important; } |
26 | 27 | code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-variant-numeric: tabular-nums; } |
27 | 28 | .syntax-inline { padding: .08rem .25rem; border-radius: .25rem; background: var(--accent-soft); color: var(--text); font-size: .94em; } |
28 | 29 | .brand { font-weight: 800; } |
29 | 30 | .nav-links { display: flex; gap: .35rem; } |
30 | 31 | .nav-links a { padding: 0 .9rem; color: var(--muted); } |
31 | | - .hero { overflow: hidden; border: 1px solid var(--hairline); border-radius: 1rem; padding: clamp(1.5rem, 5vw, 4rem); margin-bottom: 1.25rem; background: linear-gradient(135deg, var(--surface), var(--surface-3)); box-shadow: 0 1px 3px rgba(82, 16, 0, 0.04), 0 4px 12px rgba(82, 16, 0, 0.02); } |
32 | | - .hero p { max-width: 66ch; color: var(--muted); font-size: 1.08rem; } |
| 32 | + .hero { overflow: hidden; border: 1px solid var(--hairline); border-radius: 1rem; padding: clamp(1.25rem, 3.5vw, 2.5rem); margin-bottom: 1.25rem; background: linear-gradient(135deg, var(--surface), var(--surface-3)); box-shadow: 0 1px 3px rgba(82, 16, 0, 0.04), 0 4px 12px rgba(82, 16, 0, 0.02); transform-origin: top left; } |
| 33 | + .hero h1 { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: var(--space-3); transform-origin: top left; } |
| 34 | + .hero p { max-width: 60ch; color: var(--muted); font-size: 1rem; } |
| 35 | + @supports (animation-timeline: scroll()) { |
| 36 | + @media (prefers-reduced-motion: no-preference) { |
| 37 | + .hero { animation: hero-fade linear forwards; animation-timeline: scroll(root); animation-range: 0 280px; } |
| 38 | + .hero h1 { animation: hero-h1-morph linear forwards; animation-timeline: scroll(root); animation-range: 0 240px; } |
| 39 | + .hero p { animation: hero-p-fade linear forwards; animation-timeline: scroll(root); animation-range: 0 140px; } |
| 40 | + body:has(.hero) { padding-top: var(--space-2); } |
| 41 | + body:has(.hero) header { opacity: 0; background: rgba(245, 241, 235, 0); box-shadow: none; margin-bottom: var(--space-2); animation: header-emerge linear forwards; animation-timeline: scroll(root); animation-range: 40px 240px; } |
| 42 | + body:has(.hero) header .brand { filter: blur(4px); transform: scale(0.88); animation: brand-focus linear forwards; animation-timeline: scroll(root); animation-range: 80px 240px; } |
| 43 | + } |
| 44 | + } |
| 45 | + @keyframes hero-fade { |
| 46 | + to { opacity: 0; transform: scale(0.92) translateY(-8px); } |
| 47 | + } |
| 48 | + @keyframes hero-h1-morph { |
| 49 | + to { transform: scale(0.32) translate(-32%, -50%); opacity: 0; } |
| 50 | + } |
| 51 | + @keyframes hero-p-fade { |
| 52 | + to { opacity: 0; transform: translateY(-4px); } |
| 53 | + } |
| 54 | + @keyframes brand-focus { |
| 55 | + to { filter: blur(0); transform: scale(1); } |
| 56 | + } |
| 57 | + @keyframes header-emerge { |
| 58 | + to { opacity: 1; background: rgba(245, 241, 235, 0.95); box-shadow: 0 1px 8px rgba(82, 16, 0, 0.06); } |
| 59 | + } |
33 | 60 | .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(--space-3); } |
| 61 | + .home-section { margin-top: var(--space-6); } |
| 62 | + .home-section:first-of-type { margin-top: 0; } |
| 63 | + .home-section .eyebrow { margin: 0 0 var(--space-2); } |
34 | 64 | .card { display: block; min-height: 10rem; border: 1px solid var(--hairline); border-radius: .75rem; padding: var(--space-3); background: var(--surface-2); color: inherit; text-decoration: none; box-shadow: 0 1px 3px rgba(82, 16, 0, 0.04), 0 4px 12px rgba(82, 16, 0, 0.02); transition-property: transform, background-color, border-color; transition-duration: 200ms; transition-timing-function: cubic-bezier(0, 0, 0.2, 1); } |
35 | 65 | .card:hover { transform: translateY(-2px); background: var(--surface-3); border-color: var(--accent); } |
36 | 66 | .card h2 { text-decoration: underline; text-decoration-color: var(--hairline); text-underline-offset: .18em; } |
|
81 | 111 | .playground { margin-top: var(--space-6); padding-top: var(--space-4); border-top: 1px solid var(--hairline); } |
82 | 112 | .playground > h2 { font-size: clamp(1.5rem, 2.5vw, 2rem); letter-spacing: -0.03em; margin-bottom: var(--space-3); } |
83 | 113 | .runner-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .75fr); gap: var(--space-4); align-items: stretch; } |
| 114 | + @media (max-width: 980px) { .runner-grid { grid-template-columns: 1fr; } } |
84 | 115 | .runner-panel { min-height: 18rem; display: flex; flex-direction: column; border: 1px dashed var(--hairline); border-radius: .75rem; padding: var(--space-3); background: var(--surface); } |
85 | | - .runner-panel h2 { margin: 0 0 var(--space-3); padding-bottom: var(--space-2); border-bottom: 1px solid var(--hairline-soft); font-size: 1.05rem; letter-spacing: -0.02em; } |
| 116 | + .runner-panel h3 { margin: 0 0 var(--space-3); padding-bottom: var(--space-2); border-bottom: 1px solid var(--hairline-soft); font-size: 1.05rem; letter-spacing: -0.02em; } |
86 | 117 | .runner-panel pre { flex: 1; min-height: 0; overflow: visible; white-space: pre-wrap; overflow-wrap: anywhere; margin: 0; } |
| 118 | + .runner-editor { border-style: solid; background: var(--surface-2); cursor: text; box-shadow: inset 0 1px 2px rgba(82, 16, 0, 0.04); transition: box-shadow 160ms cubic-bezier(0.2, 0, 0, 1); } |
| 119 | + .runner-editor:focus-within { box-shadow: inset 0 1px 2px rgba(82, 16, 0, 0.04), 0 0 0 3px rgba(255, 72, 1, 0.12); } |
87 | 120 | .execution-time { min-height: 1.5rem; margin: var(--space-2) 0 0; padding-top: var(--space-2); border-top: 1px solid var(--hairline-soft); color: var(--muted); font-size: .88rem; font-variant-numeric: tabular-nums; } |
88 | 121 | .playground-toolbar { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; margin: .8rem 0 1rem; } |
89 | 122 | .tool-button { min-height: 40px; border: 1px solid var(--hairline); border-radius: 9999px; padding: .62rem .9rem; background: var(--surface-2); color: var(--text); cursor: pointer; transition-property: transform, background-color, border-style; transition-duration: 150ms; } |
|
0 commit comments