Download src/lib/styles/global.css from build-small-hackathon/field-guide: direct link, hf CLI and curl.
- Browser
- Download file 33 kB
-
https://huggingface.co/spaces/build-small-hackathon/field-guide/resolve/refs%2Fpr%2F1/src/lib/styles/global.css
- Command line
-
hf download hf://spaces/build-small-hackathon/field-guide@refs/pr/1/src/lib/styles/global.css
-
curl -L -o global.css https://huggingface.co/spaces/build-small-hackathon/field-guide/resolve/refs%2Fpr%2F1/src/lib/styles/global.css
33 kB
| /* ============================================================ | |
| Build Small Hackathon β base styles & design tokens | |
| Woodblock Press Β· square Β· 2px ink rules Β· hard stamp shadows | |
| ============================================================ */ | |
| :root { | |
| /* paper / neutrals (warm) */ | |
| --paper: #f4eee1; | |
| --paper-2: #efe7d4; | |
| --kraft: #e4d5b7; | |
| --kraft-deep: #d6c19a; | |
| --line: #cdbb95; | |
| /* ink */ | |
| --ink: #33312b; | |
| --ink-2: #4a4639; | |
| --ink-soft: rgba(51,49,43,.62); | |
| --ink-faint: rgba(51,49,43,.40); | |
| /* accents (share chroma/lightness, vary hue) */ | |
| --forest: #3d6a55; | |
| --forest-deep: #2b4d3d; | |
| --forest-ink: #20392d; | |
| --amber: #e0913a; | |
| --amber-deep: #c2762a; | |
| --clay: #bd5f37; | |
| /* mapped roles */ | |
| --bg: var(--paper); | |
| --accent: var(--forest); | |
| --accent-2: var(--amber); | |
| --font-display: 'Archivo', system-ui, sans-serif; | |
| --font-body: 'Archivo', system-ui, sans-serif; | |
| --font-mono: 'Spline Sans Mono', ui-monospace, monospace; | |
| --maxw: 1200px; | |
| /* Woodblock: square everything */ | |
| --radius: 0; | |
| --radius-sm: 0; | |
| /* hard offset stamp shadows */ | |
| --press: 4px 4px 0 var(--ink); | |
| --press-sm: 2px 2px 0 var(--ink); | |
| --paccent: var(--forest); | |
| } | |
| * { box-sizing: border-box; } | |
| html { scroll-behavior: smooth; scroll-padding-top: 84px; } | |
| body { | |
| margin: 0; | |
| font-family: var(--font-body); | |
| background: var(--bg); | |
| color: var(--ink); | |
| -webkit-font-smoothing: antialiased; | |
| text-rendering: optimizeLegibility; | |
| line-height: 1.55; | |
| } | |
| /* subtle canvas grain on the whole page */ | |
| body::before { | |
| content: ""; | |
| position: fixed; inset: 0; | |
| pointer-events: none; z-index: 0; | |
| opacity: var(--grain-op, .5); | |
| background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E"); | |
| } | |
| .app-root { position: relative; z-index: 1; } | |
| ::selection { background: var(--amber); color: #fff; } | |
| a { color: inherit; text-decoration: none; } | |
| h1,h2,h3,h4 { font-family: var(--font-display); margin: 0; line-height: 1.02; } | |
| /* ---------- layout ---------- */ | |
| .wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 28px; width: 100%; } | |
| .section { position: relative; padding: 92px 0; } | |
| .section--tight { padding: 64px 0; } | |
| /* ---------- type utilities ---------- */ | |
| .display { | |
| font-family: var(--font-display); | |
| font-weight: 800; | |
| font-stretch: 118%; | |
| letter-spacing: -0.015em; | |
| line-height: 0.98; | |
| } | |
| .mono { | |
| font-family: var(--font-mono); | |
| font-weight: 500; | |
| letter-spacing: 0.02em; | |
| } | |
| .eyebrow { | |
| font-family: var(--font-mono); | |
| font-size: 12px; | |
| font-weight: 500; | |
| letter-spacing: 0.18em; | |
| text-transform: uppercase; | |
| color: var(--ink-soft); | |
| display: inline-flex; align-items: center; gap: 9px; | |
| } | |
| .eyebrow::before { | |
| content: ""; width: 22px; height: 2px; background: var(--accent-2); | |
| display: inline-block; | |
| } | |
| .lede { font-size: clamp(17px, 1.5vw, 20px); color: var(--ink-2); max-width: 60ch; text-wrap: pretty; } | |
| /* ---------- coordinate tag (mono, map-like) ---------- */ | |
| .coord { | |
| font-family: var(--font-mono); | |
| font-size: 11px; letter-spacing: .08em; | |
| color: var(--ink-faint); | |
| } | |
| /* ---------- buttons (woodblock: square, 2px ink, stamp shadow) ---------- */ | |
| .btn { | |
| font-family: var(--font-display); | |
| font-weight: 800; font-stretch: 108%; | |
| font-size: 15px; letter-spacing: .01em; | |
| display: inline-flex; align-items: center; gap: 10px; | |
| padding: 13px 22px; | |
| border-radius: 0; | |
| border: 2px solid var(--ink); | |
| background: var(--ink); | |
| color: var(--paper); | |
| cursor: pointer; | |
| box-shadow: 4px 4px 0 var(--ink); | |
| transition: transform .1s ease, box-shadow .1s ease; | |
| position: relative; | |
| white-space: nowrap; | |
| } | |
| .btn:hover { transform: translate(2px,2px); box-shadow: 2px 2px 0 var(--ink); } | |
| .btn:active { transform: translate(4px,4px); box-shadow: 0 0 0 var(--ink); } | |
| .btn--accent { background: var(--accent); border-color: var(--forest-ink); color: #fff; | |
| box-shadow: 4px 4px 0 var(--forest-ink); } | |
| .btn--accent:hover { box-shadow: 2px 2px 0 var(--forest-ink); } | |
| .btn--accent:active { box-shadow: 0 0 0 var(--forest-ink); } | |
| .btn--ghost { background: var(--paper); color: var(--ink); } | |
| .btn--ghost:hover { background: var(--paper); color: var(--ink); } | |
| /* ---------- chips / filters ---------- */ | |
| .chip { | |
| font-family: var(--font-mono); font-size: 12.5px; font-weight: 600; | |
| letter-spacing: .02em; | |
| padding: 7px 13px; border-radius: 0; | |
| border: 2px solid var(--ink); | |
| background: var(--paper); color: var(--ink); | |
| cursor: pointer; | |
| display: inline-flex; align-items: center; gap: 7px; | |
| white-space: nowrap; | |
| box-shadow: 2px 2px 0 var(--ink); | |
| transition: transform .1s ease, box-shadow .1s ease, background .12s, color .12s; | |
| } | |
| .chip:hover { transform: translate(1px,1px); box-shadow: 1px 1px 0 var(--ink); } | |
| .chip[data-on="true"] { background: var(--ink); color: var(--paper); } | |
| .chip[data-on="true"].chip--forest { background: var(--forest); border-color: var(--forest-ink); color:#fff; } | |
| .chip[data-on="true"].chip--amber { background: var(--amber); border-color: var(--ink); color: var(--ink); } | |
| /* ---------- cards ---------- */ | |
| .card { | |
| background: var(--paper); | |
| border: 2px solid var(--ink); | |
| border-radius: 0; | |
| box-shadow: 5px 5px 0 var(--ink); | |
| position: relative; | |
| } | |
| .card--kraft { background: var(--kraft); } | |
| /* dashed map separator (stays dashed) */ | |
| .dash-rule { height: 0; border: none; border-top: 2px dashed var(--line); margin: 0; } | |
| /* ---------- external / social link pills (kept flat per earlier direction) ---------- */ | |
| .linkrow { display: flex; flex-wrap: wrap; gap: 2px; } | |
| .linkpill { | |
| display: inline-flex; align-items: center; gap: 7px; | |
| font-family: var(--font-mono); font-size: 12.5px; letter-spacing: .01em; | |
| padding: 6px 10px; border-radius: 0; | |
| border: none; background: transparent; color: var(--ink-soft); | |
| transition: color .15s ease, background .15s ease; | |
| white-space: nowrap; | |
| } | |
| .linkpill:hover { color: var(--lp); background: color-mix(in srgb, var(--lp) 10%, transparent); } | |
| .on-dark .linkpill { color: rgba(244,238,225,.7); } | |
| .on-dark .linkpill:hover { color: var(--paper); background: rgba(244,238,225,.1); } | |
| /* ---------- stamp badge (KEEP ROUND β brand mark) ---------- */ | |
| .stamp { | |
| position: relative; | |
| width: 132px; height: 132px; | |
| display: grid; place-items: center; | |
| flex: none; | |
| } | |
| .stamp__ring { position: absolute; inset: 0; } | |
| .stamp__face { | |
| position: relative; text-align: center; | |
| display: flex; flex-direction: column; align-items: center; justify-content: center; | |
| gap: 2px; | |
| } | |
| /* small motif: dotted route */ | |
| .route { stroke-dasharray: 1 7; stroke-linecap: round; } | |
| @media (prefers-reduced-motion: reduce) { | |
| html { scroll-behavior: auto; } | |
| } | |
| /* ---------- nav ---------- */ | |
| .nav { | |
| position: sticky; top: 0; z-index: 50; | |
| background: color-mix(in srgb, var(--bg) 82%, transparent); | |
| backdrop-filter: blur(12px) saturate(140%); | |
| border-bottom: 2px solid var(--ink); | |
| } | |
| .nav__inner { display: flex; align-items: center; gap: 20px; height: 64px; } | |
| .nav__brand { display: flex; align-items: center; gap: 10px; flex-shrink: 0; } | |
| .nav__brand-text { font-size: 19px; font-stretch: 112%; white-space: nowrap; } | |
| .nav__links { display: flex; gap: 4px; margin-left: auto; } | |
| .nav__link { | |
| font-family: var(--font-mono); font-size: 12.5px; letter-spacing: .02em; | |
| padding: 7px 12px; border-radius: 0; color: var(--ink-soft); | |
| white-space: nowrap; | |
| transition: all .15s ease; cursor: pointer; | |
| } | |
| .nav__link:hover { color: var(--ink); background: color-mix(in srgb, var(--kraft) 60%, transparent); } | |
| .nav__link[data-active="true"] { color: var(--ink); background: var(--kraft); } | |
| /* hamburger toggle β hidden until the inline links no longer fit */ | |
| .nav__toggle { | |
| display: none; | |
| margin-left: auto; | |
| align-items: center; justify-content: center; | |
| width: 40px; height: 40px; padding: 0; | |
| background: var(--paper); | |
| border: 2px solid var(--ink); | |
| box-shadow: var(--press-sm); | |
| cursor: pointer; | |
| transition: transform .1s ease, box-shadow .1s ease; | |
| } | |
| .nav__toggle:hover { transform: translate(2px,2px); box-shadow: 0 0 0 var(--ink); } | |
| .nav__toggle:active { transform: translate(2px,2px); box-shadow: 0 0 0 var(--ink); } | |
| /* submit button sized to match the toggle (40px tall, 2px stamp shadow) */ | |
| .nav__submit { | |
| height: 40px; padding: 0 16px; | |
| font-size: 13px; gap: 8px; | |
| box-shadow: 2px 2px 0 var(--forest-ink); | |
| } | |
| .nav__submit:hover { transform: translate(2px,2px); box-shadow: 0 0 0 var(--forest-ink); } | |
| .nav__submit:active { transform: translate(2px,2px); box-shadow: 0 0 0 var(--forest-ink); } | |
| /* click-away scrim behind the popout */ | |
| .nav__scrim { | |
| display: none; | |
| position: fixed; inset: 0; z-index: 40; | |
| background: transparent; border: 0; padding: 0; margin: 0; cursor: default; | |
| } | |
| /* popout menu panel */ | |
| .nav__menu { | |
| display: none; | |
| position: absolute; top: calc(100% + 8px); right: 28px; z-index: 60; | |
| flex-direction: column; | |
| width: min(260px, calc(100vw - 56px)); | |
| padding: 8px; | |
| background: var(--paper); | |
| border: 2px solid var(--ink); | |
| box-shadow: var(--press); | |
| } | |
| .nav__menu-link { | |
| font-family: var(--font-mono); font-size: 14px; letter-spacing: .02em; | |
| padding: 11px 14px; color: var(--ink-soft); | |
| transition: background .15s ease, color .15s ease; | |
| } | |
| .nav__menu-link:hover { color: var(--ink); background: color-mix(in srgb, var(--kraft) 60%, transparent); } | |
| .nav__menu-link[data-active="true"] { color: var(--ink); background: var(--kraft); } | |
| /* below ~1000px the eight inline links stop fitting β switch to the popout */ | |
| @media (max-width: 1000px){ | |
| .nav__links { display: none; } | |
| .nav__toggle { display: inline-flex; } | |
| .nav__menu { display: flex; } | |
| .nav__scrim { display: block; } | |
| } | |
| /* tiny screens: drop the wordmark, keep the stamp badge */ | |
| @media (max-width: 400px){ .nav__brand-text { display: none; } } | |
| /* dark section */ | |
| .on-dark { --bg: var(--forest-ink); background: var(--forest-ink); color: var(--paper); } | |
| .on-dark h1, .on-dark h2, .on-dark h3 { color: var(--paper); } | |
| .on-dark .eyebrow { color: rgba(244,238,225,.7); } | |
| .on-dark .lede { color: rgba(244,238,225,.82); } | |
| .on-dark .card { background: rgba(244,238,225,.05); border-color: rgba(244,238,225,.5); | |
| box-shadow: 5px 5px 0 rgba(244,238,225,.18); color: var(--paper); } | |
| /* generic grid helpers */ | |
| .grid { display: grid; gap: 20px; } | |
| /* placeholder image block */ | |
| .ph { | |
| position: relative; overflow: hidden; border-radius: 0; | |
| background: | |
| repeating-linear-gradient(135deg, var(--kraft) 0 10px, var(--kraft-deep) 10px 20px); | |
| border: 2px solid var(--ink); | |
| display: grid; place-items: center; color: var(--ink-soft); | |
| } | |
| .ph span { font-family: var(--font-mono); font-size: 11px; letter-spacing: .06em; | |
| background: var(--paper); padding: 5px 10px; border-radius: 0; border: 2px solid var(--ink); } | |
| .sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0; } | |
| /* ============ stamp ============ */ | |
| .stamp--spin svg.stamp__ring { transition: transform .9s cubic-bezier(.2,.7,.2,1); } | |
| .stamp--spin:hover svg.stamp__ring { transform: rotate(28deg); } | |
| /* ============ hero ============ */ | |
| .hero { position: relative; overflow: clip; padding: 48px 0 84px; } | |
| .hero__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 48px; align-items: center; } | |
| .hero h1 { font-size: clamp(58px, 11vw, 150px); } | |
| .hero__statline { display: flex; gap: 0; flex-wrap: wrap; border: 2px solid var(--ink); | |
| border-radius: 0; overflow: hidden; width: fit-content; background: var(--paper); | |
| box-shadow: 4px 4px 0 var(--ink); } | |
| .hero__stat { padding: 11px 22px; border-right: 2px solid var(--ink); white-space: nowrap; } | |
| .hero__stat:last-child { border-right: none; } | |
| .hero__stat b { font-family: var(--font-display); font-stretch: 115%; font-size: 17px; display: block; white-space: nowrap; line-height: 1.15; } | |
| .hero__stat span { font-family: var(--font-mono); font-size: 11px; letter-spacing: .04em; color: var(--ink-soft); line-height: 1.2; } | |
| .hero__card { | |
| position: relative; border: 2px solid var(--ink); border-radius: 0; | |
| background: var(--kraft); padding: 28px; overflow: hidden; | |
| box-shadow: 8px 8px 0 var(--ink); | |
| } | |
| /* countdown is the hero centrepiece β a full-width band under the headline */ | |
| .hero__countdown { width: 100%; margin-top: 30px; } | |
| .hero__aside { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; } | |
| @media (max-width: 900px){ | |
| .hero { padding-top: 32px; } | |
| .hero__grid { grid-template-columns: 1fr; gap: 28px; } | |
| .hero h1 { font-size: clamp(54px, 17vw, 96px); } | |
| .hero__countdown { margin-top: 24px; } | |
| } | |
| /* ============ tracks ============ */ | |
| .tracks { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; } | |
| .track { | |
| position: relative; overflow: hidden; | |
| border: 2px solid var(--ink); border-radius: 0; | |
| background: var(--paper); padding: 34px; | |
| box-shadow: 6px 6px 0 var(--ink); | |
| transition: transform .15s ease, box-shadow .15s ease; | |
| } | |
| .track:hover { transform: translate(-2px,-2px); box-shadow: 8px 8px 0 var(--ink); } | |
| .track__glyph { width: 60px; height: 60px; border-radius: 0; display: grid; place-items: center; | |
| border: 2px solid var(--ink); box-shadow: 3px 3px 0 var(--ink); margin-bottom: 22px; } | |
| .track__ex { display: flex; flex-direction: column; gap: 0; margin-top: 22px; padding: 0; } | |
| .track__ex li { list-style: none; padding: 11px 0; border-top: 1.5px dashed var(--line); | |
| display: flex; align-items: center; gap: 11px; font-size: 15px; } | |
| @media (max-width: 820px){ .tracks { grid-template-columns: 1fr; } } | |
| /* ============ rules ============ */ | |
| .rules { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; | |
| border: 2px solid var(--ink); border-radius: 0; overflow: hidden; background: var(--paper); | |
| box-shadow: 6px 6px 0 var(--ink); } | |
| .rule { padding: 26px; border-right: 2px solid var(--ink); border-bottom: 2px solid var(--ink); } | |
| .rule__n { font-family: var(--font-mono); font-size: 12px; color: var(--amber-deep); letter-spacing: .1em; } | |
| .rule__check { width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--forest); | |
| display: grid; place-items: center; color: var(--forest); margin-bottom: 14px; } | |
| @media (max-width: 820px){ .rules { grid-template-columns: 1fr; } } | |
| /* ============ prizes ============ */ | |
| .prize-tabs { display: flex; gap: 8px; flex-wrap: wrap; } | |
| .podium { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; } | |
| .podium__col { border: 2px solid var(--ink); border-radius: 0; overflow: hidden; background: var(--paper); | |
| box-shadow: 6px 6px 0 var(--ink); } | |
| .podium__head { padding: 18px 22px; color: #fff; display: flex; align-items: center; justify-content: space-between; } | |
| .podium__body { padding: 20px 22px; } | |
| .podium__body .sponsor-places { margin-top: 0; } | |
| .prow { display: flex; align-items: center; justify-content: space-between; gap: 14px; | |
| padding: 15px 22px; border-top: 1.5px dashed var(--line); } | |
| .prow:first-child { border-top: none; } | |
| .prow__place { font-family: var(--font-display); font-stretch: 112%; font-weight: 700; font-size: 17px; } | |
| .prow__award { font-family: var(--font-mono); font-weight: 600; font-size: 15px; } | |
| @media (max-width: 760px){ .podium { grid-template-columns: 1fr; } } | |
| .sponsor-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; grid-auto-rows: 1fr; } | |
| .sponsor-grid > div { display: grid; } | |
| .sponsor-card { position: relative; border: 2px solid var(--ink); border-radius: 0; | |
| background: var(--paper); padding: 24px; overflow: hidden; | |
| box-shadow: 6px 6px 0 var(--ink); | |
| transition: transform .15s ease, box-shadow .15s ease; } | |
| .sponsor-card:hover { transform: translate(-2px,-2px); box-shadow: 8px 8px 0 var(--ink); } | |
| @media (max-width: 760px){ .sponsor-grid { grid-template-columns: 1fr; } } | |
| /* sponsor placement list */ | |
| .sponsor-places { margin-top: 16px; display: grid; gap: 9px; } | |
| .sponsor-place { display: flex; align-items: baseline; gap: 8px; } | |
| .sponsor-place__rank { font-family: var(--font-display); font-stretch: 110%; font-weight: 700; | |
| font-size: 15px; color: var(--ink); white-space: nowrap; } | |
| .dotfill { flex: 1; border-bottom: 1.5px dotted var(--line); transform: translateY(-3px); min-width: 14px; } | |
| /* expandable clarifications */ | |
| .clarify-toggle { display: inline-flex; align-items: center; gap: 7px; margin-top: 14px; | |
| padding: 0; background: none; border: none; cursor: pointer; | |
| font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; | |
| color: var(--ink-soft); transition: color .16s ease; } | |
| .clarify-toggle:hover { color: var(--ink); } | |
| .clarify-toggle__chev { transform: rotate(90deg); transition: transform .22s ease; } | |
| .clarify-toggle[data-on="true"] .clarify-toggle__chev { transform: rotate(-90deg); } | |
| .clarify-body { max-height: 0; overflow: hidden; transition: max-height .3s ease; } | |
| .clarify-body[data-open="true"] { max-height: 400px; } | |
| .clarify-list { list-style: none; margin: 14px 0 0; padding: 14px 0 0; display: grid; gap: 11px; | |
| border-top: 1.5px dashed var(--line); } | |
| .clarify-list li { position: relative; padding-left: 18px; font-size: 13.5px; line-height: 1.5; | |
| color: var(--ink-2); text-wrap: pretty; } | |
| .clarify-dot { position: absolute; left: 0; top: 8px; width: 6px; height: 6px; border-radius: 50%; } | |
| /* bonus badge grid */ | |
| .badge-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; grid-auto-rows: 1fr; } | |
| .badge-grid > div { display: grid; } | |
| @media (max-width: 700px){ .badge-grid { grid-template-columns: repeat(2,1fr); } } | |
| @media (max-width: 460px){ .badge-grid { grid-template-columns: 1fr; } } | |
| .bonus-card { border: 2px solid var(--ink); border-radius: 0; background: var(--paper); | |
| padding: 20px; display: flex; flex-direction: column; | |
| box-shadow: 4px 4px 0 var(--ink); | |
| transition: transform .15s ease, box-shadow .15s ease; } | |
| .bonus-card:hover { transform: translate(-2px,-2px); box-shadow: 6px 6px 0 var(--ink); } | |
| .bonus-card__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; } | |
| .bonus-card__blurb { margin: 8px 0 0; font-size: 14px; line-height: 1.5; color: var(--ink-2); text-wrap: pretty; } | |
| .bonus-card__note { margin: 14px 0 0; padding: 14px 0 0; border-top: 1.5px dashed var(--line); | |
| font-size: 13.5px; line-height: 1.55; color: var(--ink-2); text-wrap: pretty; } | |
| .flip__name { font-family: var(--font-display); font-stretch: 110%; font-weight: 700; font-size: 16px; } | |
| /* ============ recommender β pressed cards ============ */ | |
| /* container is no longer a frame β just a stack */ | |
| .rec { background: transparent; border: none; box-shadow: none; } | |
| /* picker β five separated pressed cards */ | |
| .rec__needs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; } | |
| .rec__need { | |
| position: relative; | |
| display: flex; flex-direction: column; | |
| min-height: 158px; | |
| padding: 20px 16px 18px; | |
| border: 2px solid var(--ink); | |
| background: var(--paper); | |
| box-shadow: 5px 5px 0 var(--ink); | |
| text-align: left; cursor: pointer; color: var(--ink); | |
| transition: transform .1s ease, box-shadow .1s ease, background .12s ease; | |
| } | |
| .rec__need:hover { transform: translate(2px,2px); box-shadow: 3px 3px 0 var(--ink); } | |
| /* number β top-right corner stamp */ | |
| .rec__need .coord { position: absolute; top: 14px; right: 14px; } | |
| /* glyph plate β square, top; margin-bottom:auto bottom-aligns the label */ | |
| .rec__needglyph { | |
| width: 46px; height: 46px; | |
| border: 2px solid var(--ink); border-radius: 0; | |
| background: var(--kraft); | |
| display: grid; place-items: center; | |
| margin: 0 0 auto; opacity: 1; | |
| } | |
| .rec__need > .display { margin-top: 18px; line-height: 1.12; } | |
| /* SELECTED β forest fill, amber plate, pressed flush into its shadow */ | |
| .rec__need[data-on="true"] { | |
| background: var(--forest); color: #fff; border-color: var(--forest-ink); | |
| transform: translate(5px,5px); | |
| box-shadow: 0 0 0 var(--forest-ink); | |
| } | |
| .rec__need[data-on="true"] .coord { color: rgba(255,255,255,.7); } | |
| .rec__need[data-on="true"] .rec__needglyph { background: var(--amber); border-color: var(--forest-ink); color: var(--ink); } | |
| /* result panel β now its own framed card below the picker */ | |
| .rec__result { | |
| margin-top: 26px; | |
| padding: 24px; | |
| border: 2px solid var(--ink); border-radius: 0; | |
| box-shadow: 6px 6px 0 var(--ink); | |
| background: var(--kraft); | |
| } | |
| .rec__resulthead { display: flex; align-items: center; gap: 12px; margin-bottom: 4px; flex-wrap: wrap; } | |
| .rec__resulttitle { font-size: 18px; font-stretch: 106%; font-weight: 700; } | |
| .rec__resultlede { color: var(--ink-soft); margin: 0 0 4px; font-size: 14px; } | |
| /* result match rows β fixed logo rail so names align */ | |
| .rec__match { display: grid; grid-template-columns: 168px 1fr auto; align-items: center; gap: 18px; | |
| padding: 16px 0; border-top: 1.5px dashed var(--kraft-deep); } | |
| .rec__match:first-child { border-top: none; } | |
| .rec__match .partner-logo { width: 100%; height: 40px; margin: 0; } | |
| .rec__matchmeta { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; } | |
| .rec__matchname { font-size: 16.5px; font-stretch: 106%; font-weight: 700; } | |
| .rec__matchwhy { margin: 3px 0 0; color: var(--ink-2); font-size: 14px; text-wrap: pretty; } | |
| /* below the 5-up grid β one horizontal scroll strip so the result stays | |
| visible alongside the picker (avoids tall multi-row full-size cards) */ | |
| @media (max-width: 820px){ | |
| .rec__needs { | |
| grid-template-columns: none; | |
| display: flex; flex-wrap: nowrap; overflow-x: auto; | |
| gap: 10px; padding-bottom: 8px; | |
| scroll-snap-type: x proximity; | |
| -webkit-overflow-scrolling: touch; | |
| } | |
| .rec__need { | |
| flex: 0 0 auto; scroll-snap-align: start; | |
| flex-direction: row; align-items: center; gap: 10px; | |
| min-height: 0; padding: 11px 14px; white-space: nowrap; | |
| box-shadow: 3px 3px 0 var(--ink); | |
| } | |
| .rec__need:hover { transform: none; box-shadow: 3px 3px 0 var(--ink); } | |
| .rec__need[data-on="true"] { transform: translate(3px,3px); box-shadow: 0 0 0 var(--forest-ink); } | |
| .rec__needglyph { width: 32px; height: 32px; margin: 0; flex: none; } | |
| .rec__need > .display { margin-top: 0; font-size: 15px; } | |
| .rec__need .coord { display: none; } /* drop the number to keep chips tight */ | |
| } | |
| @media (max-width: 560px){ | |
| .rec__match { grid-template-columns: 1fr auto; } | |
| .rec__match .partner-logo { grid-column: 1 / -1; width: fit-content; } | |
| .rec__result { margin-top: 18px; padding: 18px; } | |
| } | |
| /* ============ partners overview ============ */ | |
| .partner-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; } | |
| .partner-card { border: 2px solid var(--ink); border-radius: 0; background: var(--paper); | |
| padding: 22px; box-shadow: 6px 6px 0 var(--ink); | |
| transition: transform .15s ease, box-shadow .15s ease; display: block; } | |
| .partner-card:hover { transform: translate(-2px,-2px); box-shadow: 8px 8px 0 var(--ink); } | |
| .partner-logo { height: 38px; border-radius: 0; display: inline-flex; align-items: center; justify-content: center; | |
| padding: 7px 12px; background: #fff; border: 2px solid var(--ink); width: fit-content; } | |
| .partner-logo img { max-height: 100%; max-width: 100%; width: auto; object-fit: contain; display: block; } | |
| .partner-logo--sm { height: 30px; padding: 5px 10px; } | |
| /* OpenAI wordmark has a descending βpβ β nudge down so the caps optically centre */ | |
| .partner-logo img[src*="openai"], | |
| .plogo img[src*="openai"] { transform: translateY(8%); } | |
| /* Cohere lockup reads heavier/larger than the others β shrink for even visual weight */ | |
| .partner-logo img[src*="cohere"], | |
| .plogo img[src*="cohere"] { max-height: 74%; } | |
| @media (max-width: 900px){ .partner-grid { grid-template-columns: repeat(2,1fr); } } | |
| @media (max-width: 480px){ .partner-grid { grid-template-columns: 1fr; } } | |
| /* ============ submit trail (KEEP round dots + dashed connector) ============ */ | |
| .trail { position: relative; display: grid; gap: 0; } | |
| .trail__step { display: grid; grid-template-columns: 56px 1fr; gap: 22px; padding: 0 0 34px; position: relative; } | |
| .trail__dot { width: 56px; height: 56px; border-radius: 50%; border: 2px solid var(--ink); background: var(--paper); | |
| display: grid; place-items: center; font-family: var(--font-display); font-weight: 800; font-size: 20px; z-index: 2; } | |
| .trail__step::before { content: ""; position: absolute; left: 27px; top: 56px; bottom: -4px; width: 0; | |
| border-left: 2.5px dashed var(--line); } | |
| .trail__step:last-child::before { display: none; } | |
| /* ============ faq ============ */ | |
| .faq-item { border-top: 2px solid var(--ink); } | |
| .faq-item:last-child { border-bottom: 2px solid var(--ink); } | |
| .faq-q { display: flex; align-items: center; justify-content: space-between; gap: 20px; width: 100%; | |
| background: transparent; border: 0; cursor: pointer; padding: 24px 4px; text-align: left; | |
| font-family: var(--font-display); font-stretch: 106%; font-weight: 600; font-size: clamp(18px,2.2vw,22px); color: var(--ink); } | |
| .faq-plus { flex: none; width: 32px; height: 32px; border-radius: 0; border: 2px solid var(--ink); | |
| background: var(--paper); box-shadow: 2px 2px 0 var(--ink); color: var(--ink); | |
| display: grid; place-items: center; | |
| transition: transform .15s ease, box-shadow .15s ease, background .2s ease, color .2s ease; } | |
| .faq-plus svg { transition: transform .25s ease; } | |
| .faq-q:hover .faq-plus { transform: translate(1px,1px); box-shadow: 1px 1px 0 var(--ink); } | |
| .faq-q[aria-expanded="true"] .faq-plus { background: var(--amber); color: var(--ink); | |
| transform: translate(1px,1px); box-shadow: 1px 1px 0 var(--ink); } | |
| .faq-q[aria-expanded="true"] .faq-plus svg { transform: rotate(45deg); } | |
| .faq-a { overflow: hidden; max-height: 0; transition: max-height .35s ease; } | |
| .faq-a__inner { padding: 0 4px 26px; max-width: 70ch; color: var(--ink-2); font-size: 16.5px; } | |
| /* ============ footer ============ */ | |
| .footer { background: var(--ink); color: var(--paper); padding: 72px 0 40px; position: relative; overflow: clip; } | |
| .footer a:hover { color: var(--amber); } | |
| /* keyframes */ | |
| @keyframes floaty { 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-7px); } } | |
| .floaty { animation: floaty 6s ease-in-out infinite; } | |
| @media (prefers-reduced-motion: reduce){ .floaty { animation: none; } } | |
| /* ============================================================ | |
| partner-page template styles β themed per partner via --paccent | |
| ============================================================ */ | |
| /* ---- top bar / breadcrumb ---- */ | |
| .pbar { position: sticky; top: 0; z-index: 50; | |
| background: color-mix(in srgb, var(--bg) 84%, transparent); | |
| backdrop-filter: blur(12px) saturate(140%); | |
| border-bottom: 2px solid var(--ink); } | |
| .pbar__inner { display: flex; align-items: center; gap: 14px; height: 60px; } | |
| .crumb { font-family: var(--font-mono); font-size: 12.5px; color: var(--ink-soft); | |
| display: flex; align-items: center; gap: 9px; flex-wrap: wrap; } | |
| .crumb a:hover { color: var(--ink); } | |
| .crumb b { color: var(--ink); font-weight: 600; } | |
| .crumb__sep { color: var(--ink-faint); } | |
| /* ---- header ---- */ | |
| .phead { position: relative; overflow: clip; padding: 56px 0 48px; | |
| border-bottom: 2px solid var(--ink); | |
| background: | |
| linear-gradient(180deg, color-mix(in srgb, var(--paccent) 9%, var(--bg)) 0%, var(--bg) 78%); } | |
| .phead__grid { display: grid; grid-template-columns: 1fr auto; gap: 36px; align-items: center; } | |
| .plogo { display: inline-flex; align-items: center; justify-content: center; height: 52px; | |
| padding: 10px 18px; background: #fff; border: 2px solid var(--ink); border-radius: 0; | |
| width: fit-content; box-shadow: 3px 3px 0 var(--ink); } | |
| .plogo img { max-height: 100%; max-width: 220px; width: auto; object-fit: contain; display: block; } | |
| .psize-chip { font-family: var(--font-mono); font-size: 12px; letter-spacing: .04em; | |
| border: 2px solid var(--ink); color: var(--paccent); padding: 6px 13px; | |
| border-radius: 0; box-shadow: 2px 2px 0 var(--ink); | |
| display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; } | |
| @media (max-width: 760px){ .phead__grid { grid-template-columns: 1fr; } } | |
| /* ---- model / capability cards ---- */ | |
| .pcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px,1fr)); gap: 18px; } | |
| .pcard { border: 2px solid var(--ink); border-radius: 0; background: var(--paper); | |
| padding: 22px; box-shadow: 5px 5px 0 var(--ink); | |
| transition: transform .15s ease, box-shadow .15s ease; } | |
| .pcard:hover { transform: translate(-2px,-2px); box-shadow: 7px 7px 0 var(--ink); } | |
| .pcard__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; } | |
| .pcard__name { font-family: var(--font-display); font-weight: 700; font-stretch: 108%; font-size: 21px; } | |
| .tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; padding: 0; } | |
| .tag { font-family: var(--font-mono); font-size: 11px; letter-spacing: .02em; | |
| background: color-mix(in srgb, var(--paccent) 12%, transparent); | |
| color: color-mix(in srgb, var(--paccent) 75%, var(--ink)); | |
| padding: 4px 9px; border-radius: 0; list-style: none; } | |
| /* size-vs-cap bar (under-32B story) */ | |
| .sizebar { margin-top: 16px; } | |
| .sizebar__track { height: 8px; border-radius: 0; background: var(--kraft); | |
| border: 2px solid var(--ink); overflow: hidden; } | |
| .sizebar__fill { height: 100%; background: var(--paccent); border-radius: 0; } | |
| .sizebar__lbl { display: flex; justify-content: space-between; margin-top: 7px; | |
| font-family: var(--font-mono); font-size: 11px; color: var(--ink-soft); } | |
| /* capability card (infra) β colored plate gets a stamp */ | |
| .capglyph { width: 46px; height: 46px; border-radius: 0; display: grid; place-items: center; | |
| background: var(--paccent); color: #fff; margin-bottom: 16px; box-shadow: 3px 3px 0 var(--ink); } | |
| /* ---- selection guide table ---- */ | |
| .guide { border: 2px solid var(--ink); border-radius: 0; overflow: hidden; background: var(--paper); } | |
| .guide__row { display: grid; grid-template-columns: 1fr auto 1fr; gap: 20px; align-items: center; | |
| padding: 20px 26px; border-top: 1.5px dashed var(--line); } | |
| .guide__row:first-child { border-top: none; } | |
| .guide__want { font-size: 16.5px; color: var(--ink-2); } | |
| .guide__want b { font-family: var(--font-display); color: var(--ink); font-weight: 600; } | |
| .guide__arrow { color: var(--paccent); display: grid; place-items: center; } | |
| .guide__use { text-align: right; } | |
| .guide__use b { font-family: var(--font-display); font-stretch: 106%; font-weight: 700; font-size: 18px; | |
| color: var(--paccent); display: block; } | |
| @media (max-width: 680px){ | |
| .guide__row { grid-template-columns: 1fr; gap: 8px; text-align: left; padding: 18px 20px; } | |
| .guide__use { text-align: left; } .guide__arrow { display: none; } | |
| } | |
| /* ---- resources ---- */ | |
| .reslist { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px,1fr)); gap: 12px; } | |
| .resitem { display: flex; align-items: center; gap: 14px; padding: 16px 18px; | |
| border: 2px solid var(--ink); border-radius: 0; background: var(--paper); | |
| box-shadow: 2px 2px 0 var(--ink); | |
| transition: transform .15s ease, box-shadow .15s ease; } | |
| .resitem:hover { transform: translate(1px,1px); box-shadow: 1px 1px 0 var(--ink); } | |
| .resitem__glyph { width: 38px; height: 38px; border-radius: 0; flex: none; display: grid; place-items: center; | |
| border: 2px solid var(--ink); color: var(--paccent); } | |
| .resitem__arrow { margin-left: auto; color: var(--ink-faint); } | |
| /* starter space callout (keep the dashed paccent frame β it's a callout, not a control) */ | |
| .starter { display: flex; align-items: center; gap: 20px; padding: 24px 26px; | |
| border: 2px dashed var(--paccent); border-radius: 0; background: color-mix(in srgb, var(--paccent) 6%, var(--paper)); } | |
| /* ---- prize callout ---- */ | |
| .pprize { display: grid; grid-template-columns: auto 1fr auto; gap: 28px; align-items: center; | |
| border: 2px solid var(--ink); border-radius: 0; padding: 30px 32px; | |
| box-shadow: 6px 6px 0 var(--ink); | |
| background: var(--kraft); position: relative; overflow: hidden; } | |
| @media (max-width: 720px){ .pprize { grid-template-columns: 1fr; text-align: center; justify-items: center; } } | |
| /* ---- support ---- */ | |
| .support { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); gap: 14px; } | |
| .supitem { display: flex; align-items: center; gap: 15px; padding: 20px; | |
| border: 2px solid var(--ink); border-radius: 0; background: var(--paper); } | |
| .supitem__glyph { width: 44px; height: 44px; border-radius: 0; flex: none; display: grid; place-items: center; | |
| background: var(--paccent); color: #fff; box-shadow: 3px 3px 0 var(--ink); } | |
| .supitem__handle { font-family: var(--font-mono); font-size: 13px; color: var(--ink-soft); } | |
| .section-label { display: flex; align-items: baseline; gap: 14px; margin-bottom: 28px; } | |
| @media (max-width: 760px){ .starter { flex-direction: column; align-items: flex-start; } } | |