diff --git a/assets/images/backdrop.jpg b/assets/images/backdrop.jpg deleted file mode 100644 index 3114eae..0000000 Binary files a/assets/images/backdrop.jpg and /dev/null differ diff --git a/assets/images/logo-transparent.png b/assets/images/logo-transparent.png deleted file mode 100644 index 5a57b05..0000000 Binary files a/assets/images/logo-transparent.png and /dev/null differ diff --git a/index.html b/index.html index 5c509d3..dd56235 100644 --- a/index.html +++ b/index.html @@ -5,28 +5,19 @@ - Cedarline Digital | Independent Software Business + Cedarline Digital - + - - - - - - - - -
-
-
-

- Software. Infrastructure. - Digital tools. -

-

- Cedarline Digital develops practical software products, web applications, and digital tools. -

- -
-
- -
-
-

About

-

A focused software studio, built around useful products.

-

- Cedarline Digital is an independent software business for building, supporting, and maintaining practical digital products from British Columbia. -

-
-
-
-
- Operating model - 2026 -
-
-
- 01 -

Build

-

Focused tools and services with practical scope.

-
-
- 02 -

Support

-

Clear product support, policies, and contact paths.

-
-
- 03 -

Maintain

-

Stable foundations that can keep improving over time.

-
-
-
- -
-
- -
-
-

Work

-

Software built with a clear purpose.

-

- The work spans independent products, web applications, business systems, support resources, and selected client projects where the scope and long-term value are clear. -

-
-
-
-
- -

Products

-
-

Independent software

-

Apps, web tools, and SaaS projects developed under the Cedarline Digital name.

-
-
-
- -

Resources

-
-

Support and policies

-

Customer support, privacy policies, terms, and release information for active Cedarline Digital projects.

-
-
-
- -

Systems

-
-

Web infrastructure

-

Frontend, backend, API, dashboard, automation, and deployment work where the requirements are concrete.

-
-
-
- -

Advisory

-
-

Selected client work

-

Practical development support when the technical fit, scope, and long-term maintenance path are clear.

-
-
-
- -
-
-

Principles

-

Professional does not have to feel sterile.

-

- Cedarline Digital values steady execution, clear communication, and software that can be understood, supported, and improved after it ships. -

-
-
-
- Foundation -

Reliable foundations

-

Software should be built on clear, dependable technical choices.

-
-
- Execution -

Practical engineering

-

Tools and frameworks should serve the project, not complicate it.

-
-
- Experience -

Clear interfaces

-

Good software should feel calm, direct, and understandable.

-
-
- Lifecycle -

Maintainable systems

-

Projects should leave room for updates, support, and future growth.

-
-
-
- -
-
-

Resources

-

Product policies and support.

-
- -
- -
-
-
-

Contact

-

A clear line for support and business inquiries.

-

- For general contact, support, or business inquiries, use the following email. -

-
- -

- Messages are reviewed directly and independently. -

-
-
-
- - +
+
+

British Columbia, Canada

+

Independent software,
built to stay.

+

+ Cedarline Digital is a small software company that builds and maintains + its own web and mobile projects, along with the policies and support + behind them. +

+
+ +
+

Projects

+

Products developed and operated under Cedarline Digital.

+
+
+

myboker.org

+

Buy-ins, cashouts, standings, and settlement history for private poker groups.

+ +
+
+

reforgermods.net

+

A live server browser, mod index, and public API for Arma Reforger.

+ +
+
+
+ +
+

The company

+

+ Privately held and self-funded. Every project is run in-house, from the + first commit to the support inbox. +

+
+
+
Based in
+
British Columbia, Canada
+
+
+
Focus
+
Web & mobile software
+
+
+
Contact
+
hello@cedarline.digital
+
+
+
+
+ + + diff --git a/privacy/index.html b/privacy/index.html index f24a264..18622c3 100644 --- a/privacy/index.html +++ b/privacy/index.html @@ -3,136 +3,70 @@ - - - Cedarline Digital Privacy + + Privacy · Cedarline Digital - - + + - - - - - - - -
-
-

Cedarline Digital

-

Privacy

-

- Privacy information for Cedarline Digital products, apps, and digital tools. -

-
- -
-
-
- -

Available policies

- -

Additional product policies will be added here as new projects are released.

-
-
+ + + - -
-
+
+

Questions

+

+ Questions about how a project handles your data? Email support@cedarline.digital. +

+
+ - + + diff --git a/privacy/left-unsaid/index.html b/privacy/left-unsaid/index.html deleted file mode 100644 index 0e281f4..0000000 --- a/privacy/left-unsaid/index.html +++ /dev/null @@ -1,242 +0,0 @@ - - - - - - - - Left Unsaid Privacy Policy | Cedarline Digital - - - - - - - - - - - - - - - - -
-
- - -

Product Policy

-

Left Unsaid Privacy Policy

-
-
-
Effective Date
-
June 2026
-
-
-
Developer
-
Cedarline Digital
-
-
-
Contact
-
support@cedarline.digital
-
-
- -

- Left Unsaid is designed as a private space for writing thoughts, feelings, and notes that you do not want to share elsewhere. -

- -
-

Summary

-

Left Unsaid does not require an account.

-

Left Unsaid does not sync your thoughts to the cloud.

-

Left Unsaid does not store your written thoughts on Cedarline Digital servers.

-

Left Unsaid does not sell your personal information.

-

Left Unsaid does not use advertising tracking.

-

Your thoughts are stored locally on your device.

-
- -
-

Information You Create in the App

-

- When you write a thought in Left Unsaid, that content is stored locally on your device. Cedarline Digital does not receive, read, store, or access the thoughts you write in the app. -

-

- If you delete the app, reset your device, or lose access to your device, your locally stored thoughts may be lost unless your device backup settings preserve app data. -

-
- -
-

Accounts

-

- Left Unsaid does not currently use user accounts. You do not need to create an account or provide a name, email address, or password to use the app. -

-
- -
-

Cloud Storage and Sync

-

- Left Unsaid does not currently provide cloud sync. Your written thoughts are not uploaded to Cedarline Digital servers. -

-
- -
-

App Lock and Face ID

-

- Left Unsaid may allow you to lock the app using Face ID or your device's authentication features. Biometric authentication is handled by iOS. Left Unsaid does not receive or store your Face ID data. -

-

- App lock is intended to add a layer of privacy within the app. Left Unsaid does not currently provide separate app-level encryption for saved thoughts. -

-
- -
-

Support Messages

-

- If you contact Cedarline Digital for support, we may receive the information you choose to send, such as your email address, message content, device details, screenshots, or other information you include. We use this information only to respond to your request and improve support. -

-

Please do not send private thoughts or sensitive personal content in support messages.

-
- -
-

Analytics and Tracking

-

Left Unsaid does not use advertising tracking. Left Unsaid does not sell personal information.

-

- If analytics, crash reporting, or similar tools are added in the future, this policy will be updated to explain what is collected and why. -

-
- -
-

Children's Privacy

-

- Left Unsaid is not intended to collect personal information from children. The app does not require an account and does not ask users to provide personal profile information. -

-
- -
-

Data Retention

-

- Thoughts written in Left Unsaid remain on your device until they fade, are deleted, or are otherwise removed based on the app's features and your settings. -

-

- Support messages may be retained for as long as needed to respond to your request and keep appropriate business records. -

-
- -
-

Your Choices

-

You can delete thoughts inside the app where the app provides that option.

-

You can delete the app from your device to remove locally stored app data from that device.

-

You can contact Cedarline Digital with privacy questions at: support@cedarline.digital

-
- -
-

Third-Party Services

-

Left Unsaid may use the following third-party services:

-
    -
  • Apple App Store, for app distribution
  • -
-

These services process information according to their own privacy policies and terms.

-
- -
-

Changes to This Policy

-

- Cedarline Digital may update this Privacy Policy from time to time. If changes are made, the updated policy will be posted at this page with a new effective date. -

-
- -
-

Contact

-

For privacy questions about Left Unsaid, contact:

-

- Cedarline Digital
- Email: support@cedarline.digital
- Website: https://cedarline.digital -

-
- - -
-
- - - - - - diff --git a/script.js b/script.js index 217e4db..980477d 100644 --- a/script.js +++ b/script.js @@ -1,31 +1,5 @@ -const header = document.querySelector("[data-header]"); -const nav = document.querySelector("[data-nav]"); -const navToggle = document.querySelector("[data-nav-toggle]"); const year = document.querySelector("[data-year]"); if (year) { year.textContent = new Date().getFullYear(); } - -if (header) { - const updateHeader = () => { - header.classList.toggle("is-scrolled", window.scrollY > 16); - }; - - updateHeader(); - window.addEventListener("scroll", updateHeader, { passive: true }); -} - -if (nav && navToggle) { - navToggle.addEventListener("click", () => { - const isOpen = nav.classList.toggle("is-open"); - navToggle.setAttribute("aria-expanded", String(isOpen)); - }); - - nav.addEventListener("click", (event) => { - if (event.target instanceof HTMLAnchorElement) { - nav.classList.remove("is-open"); - navToggle.setAttribute("aria-expanded", "false"); - } - }); -} diff --git a/styles.css b/styles.css index d9a7063..5188d8f 100644 --- a/styles.css +++ b/styles.css @@ -1,4115 +1,361 @@ :root { - --bg: #0f1111; - --surface: #171c1a; - --surface-light: #1f2924; - --evergreen: #2a5e3e; - --accent: #4f8a6b; - --soft: #86b38f; - --text: #e6e8e6; - --muted: #9ca3a0; - --border: rgba(255, 255, 255, 0.08); - --border-strong: rgba(134, 179, 143, 0.22); - --shadow: rgba(0, 0, 0, 0.4); - --max-width: 1240px; - --radius: 8px; + /* Surfaces */ + --bg: #111413; + --surface: #181c1a; + --surface-hover: #1d2220; + + /* Text ladder, brightest to dimmest */ + --text-1: #ecefed; + --text-2: #d8dcda; + --text-3: #bcc2bf; + --text-4: #a2a9a5; + --text-5: #878e8a; + --text-6: #6b716d; + + /* Green */ + --accent: #7cb496; + --accent-hover: #9bcdb1; + --accent-dim: #4f8a6b; + + /* Edges */ + --edge: rgba(255, 255, 255, 0.06); + --edge-hover: rgba(255, 255, 255, 0.1); + --line: rgba(255, 255, 255, 0.08); + + --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, + "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; + + --max-width: 50rem; + --radius: 0.7rem; + --radius-small: 0.3rem; + --ease: 0.25s ease; } -* { +*, +*::before, +*::after { box-sizing: border-box; } html { - scroll-behavior: smooth; + -webkit-text-size-adjust: 100%; } body { margin: 0; - min-width: 320px; - color: var(--text); - font-family: - Manrope, - Inter, - ui-sans-serif, - system-ui, - -apple-system, - BlinkMacSystemFont, - "Segoe UI", - sans-serif; + background-color: var(--bg); + color: var(--text-4); + font-family: var(--font-sans); + font-size: 1rem; line-height: 1.6; - background: - linear-gradient(180deg, rgba(15, 17, 17, 0.56), var(--bg) 760px), - linear-gradient( - 90deg, - rgba(15, 17, 17, 0.94), - rgba(15, 17, 17, 0.72) 45%, - rgba(15, 17, 17, 0.9) - ), - radial-gradient( - circle at 72% 6%, - rgba(79, 138, 107, 0.18), - transparent 34rem - ), - radial-gradient( - circle at 12% 18%, - rgba(42, 94, 62, 0.18), - transparent 30rem - ), - linear-gradient(rgba(255, 255, 255, 0.014) 1px, transparent 1px), - linear-gradient(90deg, rgba(255, 255, 255, 0.014) 1px, transparent 1px), - url("assets/images/backdrop.jpg"), var(--bg); - background-attachment: - scroll, scroll, scroll, scroll, scroll, scroll, fixed, scroll; - background-position: - center top, - center top, - center top, - center top, - center top, - center top, - center top, - center top; - background-repeat: - no-repeat, no-repeat, no-repeat, no-repeat, repeat, repeat, no-repeat, - no-repeat; - background-size: - auto, - auto, - auto, - auto, - 88px 88px, - 88px 88px, - cover, - auto; -} - -body::before, -body::after { - position: fixed; - inset: 0; - z-index: -2; - pointer-events: none; - content: ""; -} - -body::before { - background: - linear-gradient( - 135deg, - transparent 0 56%, - rgba(134, 179, 143, 0.035) 56% 56.4%, - transparent 56.4% - ), - linear-gradient( - 28deg, - transparent 0 66%, - rgba(79, 138, 107, 0.045) 66% 66.4%, - transparent 66.4% - ); -} - -body::after { - top: auto; - height: 44vh; - background: - linear-gradient( - 155deg, - transparent 0 36%, - rgba(31, 41, 36, 0.82) 36% 37%, - transparent 37% - ), - linear-gradient( - 18deg, - transparent 0 43%, - rgba(23, 28, 26, 0.9) 43% 44%, - transparent 44% - ), - linear-gradient(0deg, rgba(15, 17, 17, 0.94), transparent); - opacity: 0.46; } a { - color: inherit; + color: var(--accent); text-decoration: none; + transition: color var(--ease); } -p, -h1, -h2, -h3, -dl { - margin-top: 0; +a:hover { + color: var(--accent-hover); } -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border: 0; +a:focus-visible { + outline: 1px solid var(--accent-dim); + outline-offset: 3px; + border-radius: 2px; } -.digital-word { - transform: translateX(3px); +.page { + max-width: var(--max-width); + margin: 0 auto; + padding: 0 2rem; } -.site-header { - position: sticky; - top: 16px; - z-index: 20; +/* Header */ + +.header { display: flex; align-items: center; justify-content: space-between; - width: min(100% - 32px, var(--max-width)); - min-height: 68px; - margin: 0 auto; - padding: 10px 12px; - border: 1px solid var(--border); - border-radius: var(--radius); - background: rgba(15, 17, 17, 0.68); - box-shadow: 0 18px 54px rgba(0, 0, 0, 0.24); - backdrop-filter: blur(22px); -} - -.site-header.is-scrolled { - background: rgba(15, 17, 17, 0.86); - border-color: rgba(255, 255, 255, 0.12); -} - -.brand, -.site-nav, -.hero-actions, -.panel-top, -.panel-metrics, -.site-footer, -.site-footer div, -.site-footer nav { - display: flex; - align-items: center; + gap: 1rem 2rem; + flex-wrap: wrap; + padding: 1.25rem 0; + border-bottom: 1px solid var(--line); } .brand { - gap: 12px; - padding-right: 10px; - font-weight: 800; - letter-spacing: 0; + font-size: 0.95rem; + font-weight: 600; + letter-spacing: -0.01em; + color: var(--text-2); } -.brand-mark, -.panel-mark { - display: grid; - place-items: center; - border: 1px solid var(--border-strong); - border-radius: var(--radius); - background: - linear-gradient(150deg, rgba(31, 41, 36, 0.96), rgba(15, 17, 17, 0.82)), - radial-gradient( - circle at 50% 18%, - rgba(134, 179, 143, 0.18), - transparent 70% - ); - box-shadow: - inset 0 1px 0 rgba(255, 255, 255, 0.05), - 0 16px 34px var(--shadow); +.brand span { + font-weight: 400; + color: var(--text-6); } -.brand-mark { - width: 42px; - height: 42px; +.brand:hover { + color: var(--text-1); } -.brand-mark svg { - width: 28px; - height: 28px; +.nav { + display: flex; + gap: 1.5rem; + font-size: 0.875rem; } -.mark-tree { - fill: rgba(134, 179, 143, 0.94); +.nav a { + color: var(--text-5); } -.mark-root { - fill: none; - stroke: var(--accent); - stroke-linecap: round; - stroke-width: 2.2; +.nav a:hover, +.nav a[aria-current="page"] { + color: var(--text-2); } -.site-nav { - gap: 4px; - color: var(--muted); - font-size: 0.92rem; - font-weight: 800; -} - -.site-nav a { - padding: 10px 13px; - border-radius: var(--radius); - transition: - color 160ms ease, - background-color 160ms ease, - border-color 160ms ease; -} - -.site-nav a:hover, -.site-nav a:focus-visible { - color: var(--text); - background: rgba(255, 255, 255, 0.045); - outline: none; -} - -.site-nav .nav-cta { - margin-left: 8px; - border: 1px solid rgba(134, 179, 143, 0.28); - color: #f5fff7; - background: linear-gradient( - 180deg, - rgba(79, 138, 107, 0.92), - rgba(42, 94, 62, 0.92) - ); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08); -} - -.site-nav .nav-cta:hover, -.site-nav .nav-cta:focus-visible { - background: linear-gradient( - 180deg, - rgba(89, 154, 119, 0.96), - rgba(47, 106, 70, 0.96) - ); -} - -.nav-toggle { - display: none; - width: 44px; - height: 44px; - padding: 0; - border: 1px solid var(--border); - border-radius: var(--radius); - background: rgba(23, 28, 26, 0.9); - color: var(--text); -} - -.nav-toggle span:not(.sr-only) { - display: block; - width: 18px; - height: 2px; - margin: 5px auto; - background: currentColor; -} - -.section { - width: min(100% - 40px, var(--max-width)); - margin: 0 auto; - padding: 104px 0; -} +/* Hero */ .hero { - display: grid; - grid-template-columns: minmax(0, 0.98fr) minmax(390px, 0.82fr); - gap: clamp(36px, 5vw, 76px); - align-items: center; - min-height: calc(100vh - 92px); - padding-top: 86px; - padding-bottom: 74px; -} - -.hero-content { - max-width: 760px; + padding: 5rem 0 0; + text-align: center; } .eyebrow { - margin-bottom: 14px; - color: var(--soft); - font-size: 0.76rem; - font-weight: 800; - letter-spacing: 0.12em; + margin: 0 0 1.25rem; + font-family: var(--font-mono); + font-size: 0.7rem; + letter-spacing: 0.14em; text-transform: uppercase; -} - -h1, -h2, -h3 { - line-height: 1.08; - letter-spacing: 0; + color: var(--accent-dim); } h1 { - max-width: 760px; - margin-bottom: 22px; - font-size: clamp(2.8rem, 5.2vw, 5.05rem); + margin: 0; + font-size: 2.4rem; + font-weight: 700; + line-height: 1.1; + letter-spacing: -0.025em; + color: var(--text-1); +} + +.subtitle { + margin: 1.25rem auto 0; + max-width: 34rem; + color: var(--text-4); +} + +/* Sections */ + +.section { + padding: 5rem 0 0; } h2 { - margin-bottom: 18px; - font-size: clamp(2rem, 3.4vw, 3.1rem); -} - -h3 { - margin-bottom: 12px; - font-size: 1.07rem; -} - -.hero-copy, -.section-copy, -.contact-panel p { - color: var(--muted); - font-size: 1.07rem; -} - -.hero-copy { - max-width: 620px; - margin-bottom: 32px; -} - -.hero-actions { - flex-wrap: wrap; - gap: 14px; -} - -.button, -.contact-link { - display: inline-flex; - align-items: center; - justify-content: center; - min-height: 48px; - padding: 0 18px; - border-radius: var(--radius); - font-weight: 800; - transition: - transform 160ms ease, - border-color 160ms ease, - background-color 160ms ease; -} - -.button:hover, -.button:focus-visible, -.contact-link:hover, -.contact-link:focus-visible { - transform: translateY(-2px); - outline: none; -} - -.button-primary, -.contact-link { - border: 1px solid rgba(134, 179, 143, 0.35); - color: #f5fff7; - background: linear-gradient( - 180deg, - rgba(79, 138, 107, 0.95), - rgba(42, 94, 62, 0.95) - ); -} - -.button-secondary { - border: 1px solid var(--border); - color: var(--text); - background: rgba(255, 255, 255, 0.035); -} - -.hero-visual { - position: relative; - min-height: 540px; -} - -.mountain-field { - position: absolute; - inset: 34px -18px auto; - height: 240px; - opacity: 0.44; - background: - linear-gradient( - 145deg, - transparent 0 42%, - rgba(79, 138, 107, 0.2) 42% 43%, - transparent 43% - ), - linear-gradient( - 28deg, - transparent 0 49%, - rgba(134, 179, 143, 0.18) 49% 50%, - transparent 50% - ), - linear-gradient( - 153deg, - transparent 0 58%, - rgba(31, 41, 36, 0.88) 58% 68%, - transparent 68% - ); - filter: blur(0.2px); -} - -.hero-panel { - position: relative; - min-height: 510px; - overflow: hidden; - padding: 26px; - border: 1px solid var(--border); - border-radius: var(--radius); - background: - radial-gradient( - circle at 64% 32%, - rgba(79, 138, 107, 0.22), - transparent 18rem - ), - linear-gradient(160deg, rgba(31, 41, 36, 0.76), rgba(15, 17, 17, 0.86)), - repeating-linear-gradient( - 90deg, - transparent 0 42px, - rgba(255, 255, 255, 0.018) 42px 43px - ); - box-shadow: - 0 28px 90px rgba(0, 0, 0, 0.42), - inset 0 1px 0 rgba(255, 255, 255, 0.04); - backdrop-filter: blur(18px); -} - -.hero-panel::before, -.hero-panel::after { - position: absolute; - content: ""; -} - -.hero-panel::before { - inset: auto -26% -36% -26%; - height: 320px; - background: radial-gradient( - circle, - rgba(79, 138, 107, 0.36), - transparent 70% - ); -} - -.hero-panel::after { - right: 34px; - bottom: 118px; - left: 34px; - height: 170px; - opacity: 0.46; - background: - linear-gradient( - 143deg, - transparent 0 41%, - rgba(134, 179, 143, 0.16) 41% 42%, - transparent 42% - ), - linear-gradient( - 24deg, - transparent 0 52%, - rgba(42, 94, 62, 0.42) 52% 68%, - transparent 68% - ), - linear-gradient( - 156deg, - transparent 0 48%, - rgba(31, 41, 36, 0.9) 48% 65%, - transparent 65% - ); -} - -.panel-top { - position: relative; - z-index: 2; - gap: 16px; -} - -.panel-mark { - width: 78px; - height: 78px; -} - -.panel-mark svg { - width: 52px; - height: 52px; -} - -.panel-top p { - margin: 0 0 3px; - font-size: 1.05rem; - font-weight: 800; -} - -.panel-top span { - color: var(--muted); - font-size: 0.9rem; -} - -.circuit-board { - position: absolute; - inset: 142px 42px 132px; - z-index: 2; -} - -.circuit-board span { - position: absolute; - display: block; - border-color: rgba(134, 179, 143, 0.28); -} - -.circuit-board span:nth-child(1) { - top: 10px; - left: 8%; - width: 72%; - height: 1px; - border-top: 1px solid; -} - -.circuit-board span:nth-child(2) { - top: 10px; - left: 8%; - width: 1px; - height: 78%; - border-left: 1px solid; -} - -.circuit-board span:nth-child(3) { - right: 12%; - bottom: 16%; - left: 8%; - height: 1px; - border-top: 1px solid; -} - -.circuit-board span:nth-child(4) { - right: 12%; - bottom: 16%; - width: 1px; - height: 48%; - border-left: 1px solid; -} - -.circuit-board span:nth-child(5), -.circuit-board span:nth-child(6) { - width: 10px; - height: 10px; - border: 1px solid rgba(134, 179, 143, 0.5); - border-radius: 50%; - background: var(--surface-light); - box-shadow: 0 0 22px rgba(134, 179, 143, 0.42); -} - -.circuit-board span:nth-child(5) { - top: 5px; - left: calc(8% - 5px); -} - -.circuit-board span:nth-child(6) { - right: calc(12% - 5px); - bottom: calc(16% - 5px); -} - -.panel-metrics { - position: absolute; - right: 24px; - bottom: 24px; - left: 24px; - z-index: 3; - gap: 10px; -} - -.panel-metrics div { - flex: 1; - min-height: 86px; - padding: 14px; - border: 1px solid var(--border); - border-radius: var(--radius); - background: rgba(15, 17, 17, 0.62); - backdrop-filter: blur(12px); -} - -.panel-metrics span { - display: block; - margin-bottom: 10px; - color: var(--soft); - font-size: 0.74rem; - font-weight: 800; -} - -.panel-metrics strong { - display: block; - font-size: 0.92rem; -} - -.section-heading { - max-width: 780px; - margin-bottom: 34px; -} - -.section-heading.centered { - max-width: 760px; - margin-right: auto; - margin-left: auto; - text-align: center; -} - -.about-section, -.brand-section { - border-top: 1px solid var(--border); -} - -.about-grid { - display: grid; - grid-template-columns: minmax(0, 1fr) minmax(320px, 0.62fr); - gap: 28px; - align-items: start; -} - -.section-copy { - max-width: 760px; -} - -.section-copy p:last-child, -.contact-panel p:last-of-type, -.service-card p, -.principle-list p, -.site-footer p { - margin-bottom: 0; -} - -.studio-panel, -.service-card, -.principle-list article, -.contact-panel { - border: 1px solid var(--border); - border-radius: var(--radius); - background: - linear-gradient(180deg, rgba(31, 41, 36, 0.72), rgba(23, 28, 26, 0.78)), - rgba(23, 28, 26, 0.8); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035); -} - -.studio-panel { - padding: 22px; -} - -.studio-panel dl { - margin-bottom: 0; -} - -.studio-panel div { - display: grid; - grid-template-columns: 92px minmax(0, 1fr); - gap: 18px; - padding: 15px 0; - border-bottom: 1px solid var(--border); -} - -.studio-panel div:first-child { - padding-top: 0; -} - -.studio-panel div:last-child { - padding-bottom: 0; - border-bottom: 0; -} - -.studio-panel dt { - color: var(--soft); - font-size: 0.78rem; - font-weight: 800; - text-transform: uppercase; -} - -.studio-panel dd { margin: 0; - color: var(--text); - font-weight: 700; -} - -.card-grid, -.principle-list { - display: grid; - grid-template-columns: repeat(4, minmax(0, 1fr)); - gap: 16px; -} - -.service-card, -.principle-list article { - min-height: 270px; - padding: 24px; - transition: - transform 180ms ease, - border-color 180ms ease, - background-color 180ms ease, - box-shadow 180ms ease; -} - -.service-card:hover, -.principle-list article:hover { - transform: translateY(-5px); - border-color: rgba(134, 179, 143, 0.28); - background: - linear-gradient(180deg, rgba(31, 41, 36, 0.94), rgba(23, 28, 26, 0.86)), - rgba(23, 28, 26, 0.88); - box-shadow: 0 18px 44px rgba(0, 0, 0, 0.2); -} - -.card-icon, -.line-icon { - display: block; - width: 38px; - height: 38px; - margin-bottom: 24px; - border: 1px solid rgba(134, 179, 143, 0.28); - border-radius: var(--radius); - background-color: rgba(42, 94, 62, 0.2); - background-repeat: no-repeat; - background-position: center; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); -} - -.software-icon, -.foundation-icon { - background-image: - linear-gradient( - 90deg, - transparent 10px, - var(--soft) 10px 12px, - transparent 12px - ), - linear-gradient( - transparent 10px, - var(--accent) 10px 12px, - transparent 12px - ); -} - -.web-icon, -.experience-icon { - background-image: - linear-gradient(var(--soft), var(--soft)), - linear-gradient(var(--accent), var(--accent)), - linear-gradient(var(--accent), var(--accent)); - background-size: - 20px 2px, - 14px 2px, - 8px 2px; - background-position: - 9px 12px, - 9px 19px, - 9px 26px; -} - -.mobile-icon, -.maintain-icon { - background-image: - linear-gradient(var(--soft), var(--soft)), - linear-gradient(var(--accent), var(--accent)); - background-size: - 14px 2px, - 2px 18px; - background-position: - 11px 12px, - 18px 13px; -} - -.backend-icon, -.engineering-icon { - background-image: - radial-gradient(circle, var(--soft) 0 3px, transparent 4px), - radial-gradient(circle, var(--accent) 0 3px, transparent 4px), - linear-gradient(90deg, var(--accent), var(--accent)); - background-size: - 100% 100%, - 100% 100%, - 18px 1px; - background-position: - -8px -7px, - 8px 9px, - 11px 19px; -} - -.service-card p, -.principle-list p { - color: var(--muted); -} - -.brand-section { - padding-top: 92px; -} - -.contact-section { - padding-top: 74px; -} - -.contact-panel { - position: relative; - overflow: hidden; - padding: clamp(30px, 5vw, 58px); - background: - radial-gradient( - circle at 88% 24%, - rgba(79, 138, 107, 0.24), - transparent 24rem - ), - linear-gradient(135deg, rgba(31, 41, 36, 0.94), rgba(15, 17, 17, 0.9)); - box-shadow: - 0 24px 70px rgba(0, 0, 0, 0.22), - inset 0 1px 0 rgba(255, 255, 255, 0.04); -} - -.contact-panel::after { - position: absolute; - right: -100px; - bottom: -140px; - width: 340px; - height: 340px; - border: 1px solid rgba(134, 179, 143, 0.14); - border-radius: 50%; - content: ""; -} - -.contact-panel h2, -.contact-panel p, -.contact-panel .eyebrow, -.contact-link { - position: relative; - z-index: 1; -} - -.contact-panel h2 { - max-width: 850px; -} - -.contact-panel p { - max-width: 700px; -} - -.contact-link { - margin-top: 22px; -} - -.contact-note { - margin-top: 24px; - font-size: 0.96rem; -} - -.site-footer { - justify-content: space-between; - gap: 22px; - width: min(100% - 40px, var(--max-width)); - margin: 0 auto; - padding: 30px 0 42px; - border-top: 1px solid var(--border); - color: var(--muted); - font-size: 0.9rem; -} - -.site-footer div { - flex-direction: column; - align-items: flex-start; - gap: 2px; -} - -.site-footer strong { - color: var(--text); -} - -.site-footer nav { - gap: 14px; -} - -.site-footer a:hover, -.site-footer a:focus-visible { - color: var(--text); - outline: none; -} - -@media (max-width: 1040px) { - .hero, - .about-grid { - grid-template-columns: 1fr; - } - - .hero { - gap: 40px; - min-height: auto; - } - - .hero-visual { - min-height: 460px; - } - - .hero-panel { - min-height: 460px; - } - - .card-grid, - .principle-list { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } -} - -@media (max-width: 720px) { - .site-header { - top: 10px; - width: min(100% - 24px, var(--max-width)); - } - - .nav-toggle { - display: block; - } - - .site-nav { - position: absolute; - top: calc(100% + 8px); - right: 0; - left: 0; - display: none; - flex-direction: column; - align-items: stretch; - padding: 12px; - border: 1px solid var(--border); - border-radius: var(--radius); - background: rgba(15, 17, 17, 0.96); - box-shadow: 0 20px 42px var(--shadow); - } - - .site-nav.is-open { - display: flex; - } - - .site-nav a { - width: 100%; - } - - .site-nav .nav-cta { - margin-left: 0; - text-align: center; - } - - .section { - width: min(100% - 24px, var(--max-width)); - padding: 68px 0; - } - - .hero { - padding-top: 54px; - } - - h1 { - font-size: clamp(2.35rem, 11vw, 3.55rem); - } - - h2 { - font-size: clamp(1.9rem, 8vw, 2.55rem); - } - - .hero-copy, - .section-copy, - .contact-panel p { - font-size: 1rem; - } - - .hero-visual, - .hero-panel { - min-height: 390px; - } - - .hero-panel { - padding: 18px; - } - - .panel-mark { - width: 64px; - height: 64px; - } - - .panel-mark svg { - width: 44px; - height: 44px; - } - - .circuit-board { - inset: 120px 24px 122px; - } - - .panel-metrics { - right: 16px; - bottom: 16px; - left: 16px; - display: grid; - grid-template-columns: 1fr; - } - - .panel-metrics div { - min-height: auto; - padding: 11px 12px; - } - - .panel-metrics span { - margin-bottom: 4px; - } - - .card-grid, - .principle-list, - .site-footer { - grid-template-columns: 1fr; - } - - .service-card, - .principle-list article { - min-height: auto; - } - - .studio-panel div { - grid-template-columns: 1fr; - gap: 3px; - } - - .site-footer { - display: grid; - justify-items: start; - width: min(100% - 24px, var(--max-width)); - } -} - -/* Prototype direction: cinematic forest landing page. */ -body { - background: var(--bg); -} - -body::before { - z-index: -3; - background: - linear-gradient(180deg, rgba(15, 17, 17, 0.34), #0f1111 86%), - linear-gradient( - 90deg, - rgba(15, 17, 17, 0.96), - rgba(15, 17, 17, 0.56) 54%, - rgba(15, 17, 17, 0.88) - ), - url("assets/images/backdrop.jpg") center top / cover no-repeat; -} - -body::after { - z-index: -2; - height: auto; - opacity: 1; - background: - radial-gradient( - circle at 16% 20%, - rgba(134, 179, 143, 0.09), - transparent 28rem - ), - radial-gradient( - circle at 72% 34%, - rgba(42, 94, 62, 0.18), - transparent 34rem - ), - linear-gradient(rgba(255, 255, 255, 0.012) 1px, transparent 1px), - linear-gradient(90deg, rgba(255, 255, 255, 0.012) 1px, transparent 1px); - background-size: - auto, - auto, - 92px 92px, - 92px 92px; -} - -.site-header { - position: fixed; - top: 28px; - right: 5vw; - left: 5vw; - width: min(90vw, var(--max-width)); - min-height: auto; - padding: 0; - border: 0; - background: transparent; - box-shadow: none; - backdrop-filter: none; -} - -.site-header.is-scrolled { - border-color: transparent; - background: transparent; -} - -.brand { - gap: 14px; -} - -.brand-mark { - width: 56px; - height: 56px; - border: 0; - background: transparent; - box-shadow: none; -} - -.brand-mark svg { - width: 54px; - height: 54px; -} - -.mark-branch { - fill: none; - stroke: var(--accent); - stroke-linejoin: round; - stroke-width: 1.8; -} - -.mark-trunk, -.mark-root { - fill: none; - stroke: var(--soft); - stroke-linecap: round; - stroke-width: 1.7; -} - -.brand-text { - display: grid; - gap: 2px; - text-transform: uppercase; -} - -.brand-text strong { - color: var(--text); - font-size: clamp(1.25rem, 2.2vw, 2rem); - font-weight: 800; - line-height: 1; - letter-spacing: 0.16em; - text-shadow: 0 0 12px rgba(230, 232, 230, 0.22); -} - -.brand-text span { - color: var(--soft); - font-size: clamp(0.74rem, 1.2vw, 1.03rem); - font-weight: 800; - line-height: 1; - letter-spacing: 0.42em; -} - -.site-nav { - gap: clamp(18px, 3vw, 44px); - color: var(--text); - font-size: 0.86rem; - font-weight: 800; - letter-spacing: 0.08em; - text-transform: uppercase; -} - -.site-nav a { - padding: 10px 0; - text-shadow: 0 0 12px rgba(230, 232, 230, 0.18); -} - -.site-nav a:hover, -.site-nav a:focus-visible { - color: var(--soft); - background: transparent; -} - -.site-nav .nav-cta { - padding: 10px 18px; - border: 1px solid rgba(134, 179, 143, 0.32); - border-radius: var(--radius); - color: var(--soft); - background: rgba(15, 17, 17, 0.28); - box-shadow: inset 0 0 18px rgba(134, 179, 143, 0.06); -} - -.site-nav .nav-cta:hover, -.site-nav .nav-cta:focus-visible { - border-color: rgba(134, 179, 143, 0.5); - background: rgba(42, 94, 62, 0.18); -} - -.hero { - position: relative; - display: block; - width: auto; - max-width: none; - min-height: 100vh; - overflow: hidden; - margin: 0; - padding: 160px max(5vw, 24px) 44px; - border: 1px solid rgba(255, 255, 255, 0.12); - border-radius: 0 0 28px 28px; - background: - linear-gradient( - 180deg, - rgba(15, 17, 17, 0.06), - rgba(15, 17, 17, 0.38) 48%, - rgba(15, 17, 17, 0.96) 100% - ), - linear-gradient( - 90deg, - rgba(15, 17, 17, 0.82), - rgba(15, 17, 17, 0.36) 58%, - rgba(15, 17, 17, 0.8) - ), - url("assets/images/backdrop.jpg") center top / cover no-repeat; - box-shadow: - inset 0 0 0 1px rgba(255, 255, 255, 0.03), - 0 28px 90px rgba(0, 0, 0, 0.55); -} - -.hero::before, -.hero::after { - position: absolute; - pointer-events: none; - content: ""; -} - -.hero::before { - inset: 0; - background: - radial-gradient( - circle at 23% 25%, - rgba(230, 232, 230, 0.08), - transparent 16rem - ), - radial-gradient( - circle at 72% 54%, - rgba(42, 94, 62, 0.24), - transparent 28rem - ); - mix-blend-mode: screen; -} - -.hero::after { - inset: 0; - border-radius: inherit; - box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.78); -} - -.hero-content, -.products-preview { - position: relative; - z-index: 2; - width: min(100%, var(--max-width)); - margin: 0 auto; -} - -.hero-content { - max-width: var(--max-width); -} - -h1 { - max-width: 620px; - margin-bottom: 24px; - font-size: clamp(2.4rem, 4.3vw, 4.1rem); - font-weight: 500; - line-height: 1.18; - letter-spacing: 0.03em; - text-transform: uppercase; - text-shadow: - 0 0 18px rgba(230, 232, 230, 0.22), - 0 2px 18px rgba(0, 0, 0, 0.8); -} - -h1 span, -h1 em { - display: block; -} - -h1 em { - color: var(--accent); - font-style: normal; - font-weight: 800; - letter-spacing: 0.08em; -} - -.hero-copy { - max-width: 510px; - margin-bottom: 34px; - color: rgba(230, 232, 230, 0.78); - font-size: clamp(1.02rem, 1.8vw, 1.22rem); - font-weight: 500; - text-shadow: 0 2px 16px rgba(0, 0, 0, 0.85); -} - -.button, -.contact-link { - min-height: 50px; - padding: 0 22px; - letter-spacing: 0.04em; - text-transform: uppercase; -} - -.button-primary, -.contact-link { - border: 1px solid rgba(134, 179, 143, 0.42); - background: linear-gradient( - 180deg, - rgba(79, 138, 107, 0.92), - rgba(42, 94, 62, 0.88) - ); - box-shadow: - 0 14px 30px rgba(0, 0, 0, 0.34), - inset 0 1px 0 rgba(255, 255, 255, 0.1); -} - -.button span { - margin-left: 12px; - font-size: 1.45rem; - line-height: 1; -} - -.products-preview { - margin-top: clamp(72px, 12vh, 132px); -} - -.section-kicker { - margin-bottom: 24px; - color: var(--soft); - font-size: 0.9rem; - font-weight: 800; - letter-spacing: 0.12em; - text-align: center; - text-transform: uppercase; -} - -.product-grid { - display: grid; - grid-template-columns: repeat(3, minmax(0, 1fr)); - gap: 24px; -} - -.product-card { - display: grid; - grid-template-columns: 82px minmax(0, 1fr); - gap: 20px; - min-height: 198px; - padding: 34px 32px; - border: 1px solid rgba(255, 255, 255, 0.1); - border-radius: var(--radius); - background: - radial-gradient( - circle at 20% 10%, - rgba(134, 179, 143, 0.08), - transparent 12rem - ), - rgba(15, 17, 17, 0.56); - box-shadow: - inset 0 1px 0 rgba(255, 255, 255, 0.03), - 0 20px 44px rgba(0, 0, 0, 0.28); - backdrop-filter: blur(12px); - transition: - transform 180ms ease, - border-color 180ms ease, - background-color 180ms ease; -} - -.product-card:hover { - transform: translateY(-5px); - border-color: rgba(134, 179, 143, 0.3); - background-color: rgba(23, 28, 26, 0.7); -} - -.product-card h2 { - margin-bottom: 14px; - color: var(--text); - font-size: 1.1rem; - font-weight: 800; - letter-spacing: 0.04em; - text-transform: uppercase; -} - -.product-card p { - margin-bottom: 24px; - color: rgba(230, 232, 230, 0.7); + font-size: 1.4rem; font-weight: 600; + line-height: 1.2; + letter-spacing: -0.015em; + color: var(--text-2); + text-align: center; } -.product-card a { - color: var(--soft); - font-size: 0.84rem; - font-weight: 800; - letter-spacing: 0.06em; - text-transform: uppercase; +.section-note { + margin: 0.75rem auto 0; + max-width: 32rem; + font-size: 0.9rem; + color: var(--text-5); + text-align: center; } -.product-icon { - position: relative; - display: block; - width: 58px; - height: 68px; - opacity: 0.9; - background-repeat: no-repeat; - background-position: center; -} +/* Cards */ -.phone-icon { - border: 3px solid var(--accent); - border-radius: 8px; - box-shadow: - inset 0 0 0 1px rgba(134, 179, 143, 0.18), - 0 0 22px rgba(79, 138, 107, 0.18); -} - -.phone-icon::before { - position: absolute; - top: 8px; - left: 50%; - width: 22px; - height: 3px; - border-radius: 999px; - background: var(--accent); - content: ""; - transform: translateX(-50%); -} - -.server-icon { - height: 58px; - background: - linear-gradient(var(--accent), var(--accent)) 16px 14px / 7px 3px - no-repeat, - linear-gradient(var(--accent), var(--accent)) 28px 14px / 13px 3px - no-repeat, - linear-gradient(var(--accent), var(--accent)) 16px 30px / 7px 3px - no-repeat, - linear-gradient(var(--accent), var(--accent)) 28px 30px / 13px 3px - no-repeat, - linear-gradient(var(--accent), var(--accent)) 16px 46px / 7px 3px - no-repeat, - linear-gradient(var(--accent), var(--accent)) 28px 46px / 13px 3px - no-repeat; -} - -.server-icon::before { - position: absolute; - top: 4px; - left: 0; - width: 58px; - height: 13px; - border: 3px solid var(--accent); - border-radius: 5px; - box-shadow: - 0 18px 0 0 rgba(79, 138, 107, 0.8), - 0 36px 0 0 rgba(79, 138, 107, 0.8); - content: ""; -} - -.code-icon { - width: 74px; - height: 60px; - background: linear-gradient( - 105deg, - transparent 41%, - var(--accent) 42% 48%, - transparent 49% - ); -} - -.code-icon::before, -.code-icon::after { - position: absolute; - top: 11px; - width: 24px; - height: 24px; - border-color: var(--accent); - border-style: solid; - content: ""; - transform: rotate(45deg); -} - -.code-icon::before { - left: 4px; - border-width: 0 0 4px 4px; -} - -.code-icon::after { - right: 4px; - border-width: 4px 4px 0 0; -} - -@media (max-width: 1040px) { - .product-grid { - grid-template-columns: 1fr; - } -} - -@media (max-width: 760px) { - body::before { - background: - linear-gradient(180deg, rgba(15, 17, 17, 0.42), #0f1111 82%), - linear-gradient( - 90deg, - rgba(15, 17, 17, 0.92), - rgba(15, 17, 17, 0.72) - ), - url("assets/images/backdrop.jpg") center top / cover no-repeat; - } - - .site-header { - top: 16px; - right: 16px; - left: 16px; - width: auto; - } - - .brand-mark { - width: 46px; - height: 46px; - } - - .brand-mark svg { - width: 44px; - height: 44px; - } - - .brand-text strong { - font-size: 1.1rem; - } - - .brand-text span { - font-size: 0.66rem; - } - - .site-nav { - background: rgba(15, 17, 17, 0.94); - backdrop-filter: blur(16px); - } - - .site-nav a, - .site-nav .nav-cta { - width: 100%; - margin-left: 0; - padding: 11px 12px; - text-align: left; - } - - .hero { - padding: 132px 20px 36px; - border-radius: 0 0 20px 20px; - } - - h1 { - font-size: clamp(2.2rem, 10vw, 3.4rem); - } - - .products-preview { - margin-top: 58px; - } - - .product-card { - grid-template-columns: 58px minmax(0, 1fr); - padding: 24px 20px; - } -} - -@media (max-width: 920px) { - .nav-toggle { - display: block; - } - - .site-nav { - position: absolute; - top: calc(100% + 8px); - right: 14px; - left: 14px; - display: none; - flex-direction: column; - align-items: stretch; - gap: 0; - padding: 12px; - border: 1px solid var(--border); - border-radius: var(--radius); - background: rgba(15, 17, 17, 0.96); - box-shadow: 0 20px 42px var(--shadow); - backdrop-filter: blur(16px); - } - - .site-nav.is-open { - display: flex; - } - - .site-nav a, - .site-nav .nav-cta { - width: 100%; - margin-left: 0; - padding: 11px 12px; - text-align: left; - } -} - -/* Keep the supplied forest image scoped to the hero only. */ -body { - background: - radial-gradient( - circle at 80% 12%, - rgba(79, 138, 107, 0.12), - transparent 30rem - ), - linear-gradient(rgba(255, 255, 255, 0.012) 1px, transparent 1px), - linear-gradient(90deg, rgba(255, 255, 255, 0.012) 1px, transparent 1px), - var(--bg); - background-size: - auto, - 92px 92px, - 92px 92px, - auto; -} - -body::before { - background: none; -} - -body::after { - background: - radial-gradient( - circle at 18% 22%, - rgba(42, 94, 62, 0.14), - transparent 26rem - ), - linear-gradient(180deg, transparent, rgba(15, 17, 17, 0.8)); -} - -.hero { - min-height: 100vh; - padding-bottom: clamp(96px, 16vh, 170px); -} - -.hero-content { - padding-top: clamp(24px, 5vh, 72px); -} - -.hero-content, -.products-preview { - width: min(100%, var(--max-width)); -} - -.products-preview, -.product-grid, -.product-card, -.product-icon { - display: none; -} - -.about-section { - margin-top: 0; -} - -@media (max-width: 760px) { - body::before { - background: none; - } - - .hero { - min-height: 100vh; - padding-bottom: 84px; - } -} - -/* Add quiet visual variety below the hero. */ -main { - position: relative; - overflow: hidden; -} - -main::before { - position: absolute; - top: 100vh; - right: 0; - left: 0; - z-index: -1; - height: calc(100% - 100vh); - pointer-events: none; - content: ""; - background: - linear-gradient( - 90deg, - transparent 0 18%, - rgba(134, 179, 143, 0.08) 18% 18.08%, - transparent 18.08% 100% - ), - linear-gradient( - 90deg, - transparent 0 66%, - rgba(79, 138, 107, 0.07) 66% 66.08%, - transparent 66.08% 100% - ), - linear-gradient( - 180deg, - transparent 0 22%, - rgba(134, 179, 143, 0.06) 22% 22.08%, - transparent 22.08% 100% - ), - radial-gradient( - circle at 84% 24%, - rgba(79, 138, 107, 0.16), - transparent 24rem - ); -} - -.about-section { - position: relative; -} - -.about-section::after { - position: absolute; - right: max(20px, calc((100vw - var(--max-width)) / 2)); - bottom: 42px; - width: 180px; - height: 180px; - border: 1px solid rgba(134, 179, 143, 0.12); - border-radius: 50%; - pointer-events: none; - content: ""; -} - -#work { - position: relative; - padding-top: 72px; - padding-bottom: 112px; -} - -#work .section-heading { - max-width: 540px; - margin-bottom: 28px; -} - -#work .card-grid { - grid-template-columns: repeat(2, minmax(0, 1fr)); - gap: 18px; -} - -#work .service-card { - position: relative; +.cards { display: grid; - grid-template-columns: 48px minmax(0, 1fr); - gap: 18px; - min-height: 172px; - padding: 24px; - overflow: hidden; - background: - linear-gradient(135deg, rgba(31, 41, 36, 0.82), rgba(15, 17, 17, 0.72)), - rgba(23, 28, 26, 0.8); + grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); + gap: 1rem; + margin-top: 2.25rem; } -#work .service-card:nth-child(even) { - transform: translateY(28px); -} - -#work .service-card:hover { - transform: translateY(-3px); -} - -#work .service-card:nth-child(even):hover { - transform: translateY(23px); -} - -#work .service-card::after { - position: absolute; - right: -40px; - bottom: -40px; - width: 130px; - height: 130px; - border: 1px solid rgba(134, 179, 143, 0.12); - border-radius: 50%; - content: ""; -} - -#work .card-icon { - margin-bottom: 0; -} - -#work .service-card h3 { - margin-bottom: 8px; -} - -.brand-section { - position: relative; - width: min(100% - 40px, var(--max-width)); - padding: 46px; - border: 1px solid var(--border); - border-radius: var(--radius); - background: - linear-gradient(180deg, rgba(23, 28, 26, 0.78), rgba(15, 17, 17, 0.82)), - rgba(15, 17, 17, 0.72); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035); -} - -.brand-section::before { - position: absolute; - top: 50%; - right: 46px; - left: 46px; - height: 1px; - background: linear-gradient( - 90deg, - transparent, - rgba(134, 179, 143, 0.22), - transparent - ); - content: ""; -} - -.brand-section .section-heading { - max-width: 620px; - margin-right: 0; - margin-left: 0; - text-align: left; -} - -.principle-list { - position: relative; - grid-template-columns: repeat(4, minmax(0, 1fr)); - gap: 12px; -} - -.principle-list article { - min-height: 210px; - padding: 22px; - background: rgba(15, 17, 17, 0.58); - backdrop-filter: blur(10px); -} - -.principle-list article:nth-child(2), -.principle-list article:nth-child(4) { - margin-top: 34px; -} - -.principle-list article:hover { - transform: translateY(-3px); -} - -@media (max-width: 1040px) { - #work .card-grid, - .principle-list { - grid-template-columns: 1fr 1fr; - } - - #work .service-card:nth-child(even), - #work .service-card:nth-child(even):hover, - .principle-list article:nth-child(2), - .principle-list article:nth-child(4) { - margin-top: 0; - transform: none; - } - - .brand-section::before { - display: none; - } -} - -@media (max-width: 760px) { - #work .card-grid, - .principle-list { - grid-template-columns: 1fr; - } - - #work .service-card { - grid-template-columns: 1fr; - } - - .brand-section { - width: min(100% - 24px, var(--max-width)); - padding: 28px 20px; - } -} - -/* Fixed header with supplied logo asset. */ -.site-header { - position: fixed; - top: 22px; - right: 5vw; - left: 5vw; - width: min(90vw, var(--max-width)); - min-height: 70px; - padding: 10px 14px; - border: 1px solid rgba(255, 255, 255, 0.1); - border-radius: var(--radius); - background: rgba(15, 17, 17, 0.52); - box-shadow: - 0 18px 54px rgba(0, 0, 0, 0.28), - inset 0 1px 0 rgba(255, 255, 255, 0.04); - backdrop-filter: blur(18px); -} - -.site-header.is-scrolled { - border-color: rgba(134, 179, 143, 0.18); - background: rgba(15, 17, 17, 0.82); -} - -.brand-mark { - width: 50px; - height: 50px; - overflow: hidden; - border: 0; - border-radius: 6px; - background: transparent; - box-shadow: none; -} - -.brand-mark img { - display: block; - width: 100%; - height: 100%; - object-fit: contain; -} - -@media (max-width: 760px) { - .site-header { - top: 14px; - right: 12px; - left: 12px; - width: auto; - min-height: 64px; - padding: 9px 10px; - } - - .brand-mark { - width: 44px; - height: 44px; - } -} - -/* Final header and below-hero polish. */ -.site-header { - position: fixed; - top: 0; - right: 0; - left: 0; - width: 100%; - min-height: 82px; - padding: 12px max(5vw, 22px); - border: 0; - border-radius: 0; - background: linear-gradient( - 180deg, - rgba(15, 17, 17, 0.86), - rgba(15, 17, 17, 0.5) 72%, - transparent - ); - box-shadow: none; - backdrop-filter: blur(14px); -} - -.site-header.is-scrolled { - border: 0; - background: rgba(15, 17, 17, 0.9); -} - -.site-nav .nav-cta { - border: 0; - background: rgba(42, 94, 62, 0.28); -} - -.brand-mark { - width: 64px; - height: 64px; - overflow: visible; -} - -.brand-mark img { - transform: none; - transform-origin: center; -} - -.hero { - padding-top: 176px; -} - -.section { - position: relative; -} - -.about-section { - display: grid; - grid-template-columns: minmax(0, 0.72fr) minmax(0, 1fr); - gap: clamp(34px, 6vw, 86px); - align-items: start; - padding-top: 118px; -} - -.about-section .section-heading { - position: sticky; - top: 112px; - margin-bottom: 0; -} - -.about-grid { - grid-template-columns: 1fr; - gap: 24px; -} - -.section-copy { - max-width: 760px; - padding: 30px; - border-left: 1px solid rgba(134, 179, 143, 0.28); - background: - linear-gradient(90deg, rgba(42, 94, 62, 0.08), transparent 42%), - rgba(15, 17, 17, 0.18); -} - -.studio-panel { - max-width: 760px; - background: rgba(15, 17, 17, 0.42); -} - -#work { - padding-top: 92px; -} - -#work::before { - position: absolute; - top: 52px; - right: 0; - left: 0; - height: 1px; - background: linear-gradient( - 90deg, - transparent, - rgba(134, 179, 143, 0.24), - transparent - ); - content: ""; -} - -#work .section-heading { - display: grid; - grid-template-columns: minmax(0, 0.6fr) minmax(0, 1fr); - gap: 28px; - max-width: none; - align-items: end; -} - -#work .section-heading .eyebrow { - text-align: left; -} - -#work .section-heading h2 { - max-width: 520px; - margin-bottom: 0; -} - -#work .card-grid { - display: grid; - grid-template-columns: 1fr; - gap: 0; - border-top: 1px solid var(--border); -} - -#work .service-card { - display: grid; - grid-template-columns: 56px minmax(220px, 0.42fr) minmax(0, 1fr); - gap: 22px; - min-height: auto; - padding: 26px 0; - border: 0; - border-bottom: 1px solid var(--border); - border-radius: 0; - background: transparent; - box-shadow: none; -} - -#work .service-card:nth-child(even), -#work .service-card:nth-child(even):hover, -#work .service-card:hover { - transform: none; -} - -#work .service-card::after { - display: none; -} - -#work .card-icon { - width: 10px; - height: 10px; - margin: 12px 0 0 14px; - border-color: rgba(134, 179, 143, 0.42); - border-radius: 50%; - background-color: var(--soft); - background-image: none; - box-shadow: 0 0 0 6px rgba(42, 94, 62, 0.18); - opacity: 0.82; -} - -#work .service-card h3 { - margin: 5px 0 0; - font-size: 1.15rem; -} - -#work .service-card p { - max-width: 620px; -} - -.brand-section { - display: grid; - grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr); - gap: clamp(28px, 5vw, 64px); - align-items: start; - padding: 54px; -} - -.brand-section .section-heading { - margin-bottom: 0; -} - -.brand-section .section-heading h2 { - font-size: clamp(1.8rem, 2.4vw, 2.5rem); -} - -.brand-section::before { - top: auto; - right: 54px; - bottom: 54px; - left: 54px; -} - -.principle-list { - grid-template-columns: 1fr 1fr; -} - -.principle-list article, -.principle-list article:nth-child(2), -.principle-list article:nth-child(4) { - min-height: 190px; - margin-top: 0; -} - -.contact-panel { - display: grid; - grid-template-columns: minmax(0, 1fr) minmax(290px, auto); - gap: clamp(28px, 6vw, 84px); - align-items: start; -} - -.resources-section { - padding-top: 84px; - padding-bottom: 28px; -} - -.resources-section .section-heading { - max-width: 600px; - margin-bottom: 22px; -} - -.resources-section .section-heading h2 { - font-size: clamp(1.65rem, 2.5vw, 2.35rem); -} - -.resource-links { - display: grid; - grid-template-columns: repeat(3, minmax(0, 1fr)); - border-top: 1px solid var(--border); -} - -.resource-links a { - position: relative; - display: block; - padding: 24px 22px 24px 0; - border-bottom: 1px solid var(--border); - transition: - background-color 160ms ease, - border-color 160ms ease, - padding-left 160ms ease; -} - -.resource-links a + a { - padding-left: 22px; - border-left: 1px solid var(--border); -} - -.resource-links a::after { - position: absolute; - top: 28px; - right: 22px; - color: var(--soft); - content: "›"; - font-size: 1.3rem; - line-height: 1; - opacity: 0.68; - transition: - opacity 160ms ease, - transform 160ms ease; -} - -.resource-links a:hover, -.resource-links a:focus-visible { - padding-left: 12px; - border-color: rgba(134, 179, 143, 0.24); - background: rgba(255, 255, 255, 0.026); - outline: none; -} - -.resource-links a:hover::after, -.resource-links a:focus-visible::after { - opacity: 1; - transform: translateX(4px); -} - -.resource-links span { - display: block; - margin-bottom: 8px; - color: var(--text); - font-weight: 800; -} - -.resource-links p { - max-width: 420px; - margin: 0; - color: var(--muted); -} - -.contact-copy { - max-width: 650px; -} - -.contact-action { +.card { display: flex; - justify-content: flex-end; - align-self: center; -} - -.contact-note { - grid-column: 1 / -1; - max-width: none; - margin-top: 8px; - padding-top: 24px; - border-top: 1px solid rgba(255, 255, 255, 0.08); -} - -@media (max-width: 920px) { - .about-section, - #work .section-heading, - .brand-section, - .contact-panel { - grid-template-columns: 1fr; - } - - .about-section .section-heading { - position: static; - } - - #work .service-card { - grid-template-columns: 48px minmax(0, 1fr); - } - - #work .service-card p { - grid-column: 2; - } - - .contact-action { - justify-self: start; - justify-content: flex-start; - } -} - -@media (max-width: 760px) { - .site-header { - top: 0; - right: 0; - left: 0; - width: 100%; - min-height: 72px; - padding: 9px 14px; - } - - .brand-mark { - width: 54px; - height: 54px; - } - - .hero { - padding-top: 142px; - } - - .section-copy, - .brand-section { - padding: 24px 18px; - } - - #work .service-card { - grid-template-columns: 1fr; - } - - #work .service-card p { - grid-column: auto; - } - - .principle-list { - grid-template-columns: 1fr; - } -} - -/* Footer refresh and compact logo sizing. */ -.site-header { - min-height: 74px; - padding-top: 10px; - padding-bottom: 10px; -} - -.brand { - gap: 12px; -} - -.brand-mark { - width: 48px; - height: 64px; - padding: 3px 2px; - overflow: visible; -} - -.brand-mark img, -.footer-mark img { - display: block; - width: 100%; - height: 100%; - object-fit: contain; -} - -.brand-mark img { - transform: scale(1.22); - transform-origin: center; -} - -.contact-link { - gap: 12px; - min-height: 58px; - padding: 0 26px; - border: 1px solid rgba(255, 255, 255, 0.12); + flex-direction: column; + padding: 1.5rem; + background-color: var(--surface); + border: 1px solid var(--edge); border-radius: var(--radius); - color: #f4f7f4; - font-family: - "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, - monospace; - font-size: 0.96rem; - font-weight: 700; - letter-spacing: 0; - text-transform: lowercase; - background: rgba(15, 17, 17, 0.34); - box-shadow: none; + transition: + background-color var(--ease), + border-color var(--ease); } -.contact-panel { - grid-template-columns: minmax(0, 1fr) minmax(290px, auto); - align-items: start; - padding: clamp(34px, 5vw, 62px); +.card:hover { + background-color: var(--surface-hover); + border-color: var(--edge-hover); } -.contact-copy, -.contact-action, -.contact-note { - position: relative; - z-index: 1; +.card h3 { + margin: 0; + font-family: var(--font-mono); + font-size: 0.95rem; + font-weight: 500; + color: var(--text-2); } -.contact-copy .eyebrow { - margin-bottom: 18px; -} - -.contact-copy h2 { - max-width: 560px; - margin-bottom: 22px; - font-size: clamp(2.4rem, 4vw, 4rem); -} - -.contact-copy p { - max-width: 650px; -} - -.contact-action { - justify-self: end; - padding-top: 72px; -} - -.contact-panel .contact-note { - grid-column: 1 / -1; - max-width: none; - margin: 8px 0 0; - padding-top: 24px; - border-top: 1px solid rgba(255, 255, 255, 0.08); - font-size: 0.96rem; -} - -.contact-link:hover, -.contact-link:focus-visible { - border-color: rgba(134, 179, 143, 0.34); - background: rgba(15, 17, 17, 0.54); -} - -.email-icon { - position: relative; - width: 16px; - height: 12px; - border: 1.5px solid var(--accent); - border-radius: 2px; - flex: 0 0 auto; -} - -.email-icon::before, -.email-icon::after { - position: absolute; - top: 2px; - width: 8px; - height: 1.5px; - background: var(--accent); - content: ""; -} - -.email-icon::before { - left: 1px; - transform: rotate(35deg); - transform-origin: left center; -} - -.email-icon::after { - right: 1px; - transform: rotate(-35deg); - transform-origin: right center; -} - -.site-footer { - display: block; - width: 100%; - margin: 44px 0 0; - padding: 56px max(2.5vw, 18px) 40px; - border-top: 1px solid rgba(255, 255, 255, 0.08); - color: var(--muted); - background: rgba(10, 12, 12, 0.44); +.card p:not(.card-links) { + margin: 0.625rem 0 1.25rem; font-size: 0.9rem; + color: var(--text-5); } -.site-footer .footer-inner, -.site-footer .footer-bottom { - width: min(100%, 1320px); - margin: 0 auto; +.card-links { + display: flex; + flex-wrap: wrap; + gap: 0.25rem 1.25rem; + font-size: 0.85rem; } -.site-footer .footer-inner { +.card .card-links { + margin-top: auto; + padding-top: 1.25rem; + border-top: 1px solid var(--edge); +} + +/* Fact panel */ + +.facts { display: grid; - grid-template-columns: minmax(300px, 1fr) auto; - gap: clamp(72px, 18vw, 260px); - align-items: start; + grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); + gap: 1px; + margin-top: 2.25rem; + background-color: var(--edge); + border: 1px solid var(--edge); + border-radius: var(--radius); + overflow: hidden; } -.site-footer .footer-brand { - display: block; - max-width: 330px; +.facts > div { + padding: 1.5rem; + background-color: var(--bg); } -.footer-logo { - display: inline-flex; +.facts dt { + font-family: var(--font-mono); + font-size: 0.7rem; + letter-spacing: 0.14em; + text-transform: uppercase; + color: var(--text-6); +} + +.facts dd { + margin: 0.5rem 0 0; + font-size: 0.95rem; + color: var(--text-3); +} + +/* Document list */ + +.docs { + margin: 2.25rem 0 0; + padding: 0; + list-style: none; + border: 1px solid var(--edge); + border-radius: var(--radius); + overflow: hidden; +} + +.docs li { + border-top: 1px solid var(--edge); +} + +.docs li:first-child { + border-top: 0; +} + +.docs a { + display: flex; + flex-wrap: wrap; + align-items: baseline; + gap: 0.25rem 1rem; + padding: 1.125rem 1.5rem; + background-color: var(--surface); + transition: background-color var(--ease); +} + +.docs a:hover { + background-color: var(--surface-hover); +} + +.docs strong { + font-family: var(--font-mono); + font-size: 0.95rem; + font-weight: 500; + color: var(--accent); + transition: color var(--ease); +} + +.docs a:hover strong { + color: var(--accent-hover); +} + +.docs span { + font-size: 0.875rem; + color: var(--text-5); +} + +/* Footer */ + +.footer { + margin-top: 6rem; + padding: 1.75rem 0 3rem; + border-top: 1px solid var(--line); + display: flex; + flex-wrap: wrap; + gap: 0.5rem 2rem; + justify-content: space-between; align-items: center; - gap: 16px; - margin-bottom: 24px; + font-size: 0.8rem; + color: var(--text-6); } -.footer-mark { - display: block; - width: 52px; - height: 68px; -} - -.footer-wordmark, -.brand-text { - display: grid; - gap: 2px; - text-transform: uppercase; -} - -.footer-wordmark strong { - color: var(--text); - font-size: 1.12rem; - font-weight: 800; - line-height: 1; - letter-spacing: 0.34em; -} - -.footer-wordmark span { - color: var(--soft); - font-size: 0.66rem; - font-weight: 800; - line-height: 1; - letter-spacing: 0.54em; -} - -.footer-brand p { - margin-bottom: 18px; - color: rgba(230, 232, 230, 0.7); - line-height: 1.7; -} - -.footer-location, -.footer-bottom span { - font-family: - "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, - monospace; - letter-spacing: 0.08em; -} - -.footer-location { - position: relative; - display: inline-block; - padding-left: 18px; - color: rgba(230, 232, 230, 0.76); - font-size: 0.82rem; - font-weight: 600; -} - -.footer-location::before { - position: absolute; - top: 0.55em; - left: 0; - width: 7px; - height: 7px; - border: 1px solid var(--muted); - border-radius: 50% 50% 50% 0; - content: ""; - transform: translateY(-50%) rotate(-45deg); -} - -.footer-location::after { - position: absolute; - top: 0.55em; - left: 3px; - width: 2px; - height: 2px; - border-radius: 50%; - background: var(--muted); - content: ""; - transform: translateY(-50%); -} - -.site-footer .footer-links { - display: grid; - grid-template-columns: repeat(2, minmax(90px, 1fr)); - gap: clamp(44px, 6vw, 84px); - align-items: start; - justify-self: end; - min-width: min(100%, 440px); - justify-items: end; - text-align: right; -} - -.site-footer .footer-links div { - display: grid; - gap: 14px; - justify-items: end; -} - -.footer-links h2 { - margin: 0 0 12px; - color: var(--text); - font-family: - "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, - monospace; - font-size: 0.68rem; - font-weight: 700; - letter-spacing: 0.34em; - line-height: 1; - text-transform: uppercase; +.footer-links { + display: flex; + gap: 1.25rem; } .footer-links a { - color: rgba(230, 232, 230, 0.74); - font-size: 0.9rem; + color: var(--text-5); } -.footer-links a:hover, -.footer-links a:focus-visible { - color: var(--text); - outline: none; +.footer-links a:hover { + color: var(--text-2); } -.site-footer .footer-bottom { - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; - gap: 24px; - margin-top: 50px; - padding-top: 26px; - border-top: 1px solid rgba(255, 255, 255, 0.08); -} +@media (max-width: 36rem) { + .page { + padding: 0 1.25rem; + } -.footer-bottom p, -.footer-bottom span { - margin: 0; - color: rgba(230, 232, 230, 0.68); - font-size: 0.78rem; -} + .hero { + padding-top: 3.5rem; + } -@media (max-width: 920px) { - .contact-panel { + h1 { + font-size: 1.9rem; + } + + .section { + padding-top: 3.5rem; + } + + .facts { grid-template-columns: 1fr; } - .contact-action { - justify-self: start; - padding-top: 0; - } - - .resource-links { - grid-template-columns: 1fr; - } - - .resource-links a, - .resource-links a + a { - padding-right: 0; - padding-left: 0; - border-left: 0; - } - - .resource-links a::after { - right: 4px; - } - - .resource-links a:hover, - .resource-links a:focus-visible { - padding-left: 10px; + .footer { + margin-top: 4rem; } } - -@media (max-width: 760px) { - .site-header { - min-height: 66px; - } - - .brand-mark { - width: 40px; - height: 54px; - } - - .contact-link { - justify-self: start; - width: auto; - max-width: 100%; - min-height: 52px; - padding: 0 18px; - font-size: clamp(0.78rem, 3.4vw, 0.94rem); - } - - .contact-panel { - grid-template-columns: 1fr; - } - - .contact-action { - justify-self: start; - padding-top: 0; - } - - .site-footer { - padding: 46px 24px 36px; - } - - .site-footer .footer-inner, - .site-footer .footer-bottom { - width: 100%; - } - - .site-footer .footer-inner, - .site-footer .footer-bottom { - grid-template-columns: 1fr; - } - - .site-footer .footer-inner { - gap: 42px; - } - - .site-footer .footer-links { - grid-template-columns: 1fr 1fr; - gap: 24px; - justify-self: stretch; - min-width: 0; - justify-items: start; - text-align: left; - } - - .site-footer .footer-links div { - justify-items: start; - min-width: 0; - text-align: left; - } - - .site-footer .footer-bottom { - display: grid; - gap: 16px; - } -} - -/* Public privacy and support pages. */ -.content-page { - min-height: 100vh; - background: - radial-gradient( - circle at 82% 8%, - rgba(79, 138, 107, 0.11), - transparent 28rem - ), - radial-gradient( - circle at 14% 24%, - rgba(184, 137, 185, 0.08), - transparent 24rem - ), - linear-gradient(rgba(255, 255, 255, 0.012) 1px, transparent 1px), - linear-gradient(90deg, rgba(255, 255, 255, 0.012) 1px, transparent 1px), - #0f100d; - background-size: - auto, - auto, - 92px 92px, - 92px 92px, - auto; -} - -.content-page main::before { - display: none; -} - -.content-main { - width: min(100% - 48px, 1040px); - margin: 0 auto; - padding: 150px 0 64px; -} - -.content-shell { - padding: clamp(26px, 5vw, 44px); - border: 1px solid rgba(255, 255, 255, 0.08); - border-radius: var(--radius); - background: - linear-gradient(180deg, rgba(23, 28, 26, 0.72), rgba(15, 16, 13, 0.88)), - rgba(15, 16, 13, 0.84); - box-shadow: - 0 24px 70px rgba(0, 0, 0, 0.26), - inset 0 1px 0 rgba(255, 255, 255, 0.035); -} - -.content-shell h1 { - max-width: none; - margin-bottom: 20px; - font-size: clamp(1.95rem, 4.8vw, 3rem); - font-weight: 700; - line-height: 1.12; - letter-spacing: 0; - text-transform: none; -} - -.content-shell h2 { - margin: 38px 0 14px; - color: var(--text); - font-size: clamp(1.18rem, 2.6vw, 1.48rem); - letter-spacing: 0; -} - -.content-shell p, -.content-shell li, -.content-shell dd { - color: rgba(244, 239, 231, 0.78); - font-size: 1rem; - line-height: 1.75; -} - -.content-shell .lead { - color: #f4efe7; - font-size: clamp(1.08rem, 2.8vw, 1.22rem); -} - -.content-shell p { - margin-bottom: 16px; -} - -.content-shell ul { - margin: 0 0 20px; - padding-left: 1.2rem; -} - -.content-shell li + li { - margin-top: 8px; -} - -.content-shell a { - color: #a9d6b2; - text-decoration: underline; - text-decoration-color: rgba(169, 214, 178, 0.34); - text-underline-offset: 0.22em; -} - -.content-shell a:hover, -.content-shell a:focus-visible { - color: #f4efe7; - outline: 2px solid rgba(169, 214, 178, 0.52); - outline-offset: 4px; -} - -.breadcrumb, -.related-links { - display: flex; - flex-wrap: wrap; - gap: 10px; - align-items: center; - margin-bottom: 26px; - color: var(--muted); - font-size: 0.9rem; -} - -.related-links { - margin: 42px 0 0; - padding-top: 24px; - border-top: 1px solid rgba(255, 255, 255, 0.08); -} - -.link-list { - list-style: none; - padding-left: 0; -} - -.link-list li { - padding: 14px 0; - border-top: 1px solid rgba(255, 255, 255, 0.08); -} - -.link-list li:last-child { - border-bottom: 1px solid rgba(255, 255, 255, 0.08); -} - -.policy-meta { - display: grid; - gap: 0; - margin: 0 0 28px; - border-top: 1px solid rgba(255, 255, 255, 0.08); - border-bottom: 1px solid rgba(255, 255, 255, 0.08); -} - -.policy-meta div { - display: grid; - grid-template-columns: minmax(130px, 0.32fr) minmax(0, 1fr); - gap: 18px; - padding: 13px 0; - border-bottom: 1px solid rgba(255, 255, 255, 0.08); -} - -.policy-meta div:last-child { - border-bottom: 0; -} - -.policy-meta dt { - color: var(--soft); - font-family: - "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, - monospace; - font-size: 0.72rem; - font-weight: 700; - letter-spacing: 0.12em; - text-transform: uppercase; -} - -.policy-meta dd { - margin: 0; -} - -@media (max-width: 760px) { - .content-main { - width: min(100% - 24px, 1040px); - } - - .content-main { - padding-top: 112px; - padding-bottom: 42px; - } - - .content-shell { - padding: 24px 18px; - } - - .policy-meta div { - grid-template-columns: 1fr; - gap: 4px; - } -} - -/* Below-hero redesign: quieter, more editorial, less decorative. */ -body { - background: #0f1111; -} - -body::before, -body::after, -main::before, -.about-section::after, -#work::before, -.brand-section::before, -.contact-panel::after { - display: none; -} - -main { - overflow: visible; - background: - linear-gradient(180deg, rgba(15, 17, 17, 0) 0, #0f1111 8rem), - #0f1111; -} - -.section { - width: min(100% - 40px, 1180px); - padding: clamp(76px, 10vw, 128px) 0; -} - -.section-heading { - max-width: 680px; - margin-bottom: 36px; -} - -.section-heading.centered { - text-align: left; -} - -.eyebrow { - color: #9fc7a6; - font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; - font-size: 0.72rem; - letter-spacing: 0.18em; -} - -.section h2 { - color: #f1f3ef; - font-size: clamp(2rem, 3.1vw, 3.35rem); - letter-spacing: 0; -} - -.content-band { - border-top: 1px solid rgba(255, 255, 255, 0.08); -} - -.about-section { - display: grid; - grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr); - gap: clamp(34px, 6vw, 82px); - align-items: start; - padding-top: clamp(86px, 10vw, 132px); -} - -.about-section .section-heading { - position: sticky; - top: 108px; - margin-bottom: 0; -} - -.about-grid { - display: grid; - grid-template-columns: 1fr; - gap: 22px; -} - -.section-copy { - max-width: none; - padding: 0 0 0 28px; - border-left: 2px solid rgba(159, 199, 166, 0.36); - background: transparent; -} - -.section-copy p { - color: rgba(230, 232, 230, 0.76); - font-size: clamp(1rem, 1.45vw, 1.16rem); -} - -.studio-panel { - max-width: none; - padding: 0; - border: 1px solid rgba(255, 255, 255, 0.09); - border-radius: 8px; - background: rgba(23, 28, 26, 0.72); - box-shadow: none; -} - -.panel-label { - margin: 0; - padding: 18px 20px; - border-bottom: 1px solid rgba(255, 255, 255, 0.08); - color: rgba(230, 232, 230, 0.92); - font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; - font-size: 0.72rem; - font-weight: 700; - letter-spacing: 0.14em; - text-transform: uppercase; -} - -.studio-panel dl { - margin: 0; -} - -.studio-panel div { - grid-template-columns: 118px minmax(0, 1fr); - gap: 22px; - padding: 18px 20px; - border-bottom: 1px solid rgba(255, 255, 255, 0.07); -} - -.studio-panel div:last-child { - border-bottom: 0; -} - -.studio-panel dt { - color: rgba(159, 199, 166, 0.86); - font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; - font-size: 0.68rem; - letter-spacing: 0.1em; -} - -.studio-panel dd { - color: rgba(241, 243, 239, 0.9); - font-weight: 650; -} - -#work { - display: grid; - grid-template-columns: minmax(0, 0.72fr) minmax(0, 1fr); - gap: clamp(34px, 6vw, 86px); - align-items: start; - padding-top: clamp(74px, 9vw, 116px); - padding-bottom: clamp(74px, 9vw, 116px); - border-top: 1px solid rgba(255, 255, 255, 0.08); -} - -#work .section-heading { - display: block; - max-width: 520px; - margin-bottom: 0; -} - -#work .section-heading h2 { - max-width: none; - margin-bottom: 0; -} - -.work-intro { - grid-column: 2; - margin-bottom: 22px; - color: rgba(230, 232, 230, 0.72); - font-size: 1.02rem; -} - -.work-intro p { - max-width: 620px; - margin: 0; -} - -#work .work-list { - grid-column: 2; - display: grid; - grid-template-columns: 1fr; - gap: 0; - border-top: 1px solid rgba(255, 255, 255, 0.1); -} - -#work .service-card { - display: grid; - grid-template-columns: 64px minmax(180px, 0.4fr) minmax(0, 1fr); - gap: 24px; - align-items: start; - min-height: auto; - padding: 24px 0; - border: 0; - border-bottom: 1px solid rgba(255, 255, 255, 0.1); - border-radius: 0; - background: transparent; - box-shadow: none; - transition: border-color 160ms ease; -} - -#work .service-card:hover, -#work .service-card:nth-child(even), -#work .service-card:nth-child(even):hover { - transform: none; - background: transparent; - box-shadow: none; -} - -#work .service-card:hover { - border-color: rgba(159, 199, 166, 0.34); -} - -#work .service-card::after { - display: none; -} - -.work-index { - color: rgba(159, 199, 166, 0.8); - font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; - font-size: 0.78rem; - font-weight: 700; - letter-spacing: 0.12em; -} - -#work .service-card h3 { - margin: 0; - color: #f1f3ef; - font-size: 1.08rem; -} - -#work .service-card p { - max-width: 600px; - margin: 0; - color: rgba(230, 232, 230, 0.68); -} - -.brand-section { - display: grid; - grid-template-columns: minmax(0, 0.7fr) minmax(0, 1fr); - gap: clamp(34px, 6vw, 82px); - align-items: start; - width: min(100% - 40px, 1180px); - padding: clamp(68px, 8vw, 104px) 0; - border-right: 0; - border-bottom: 0; - border-left: 0; - border-radius: 0; - background: transparent; - box-shadow: none; -} - -.brand-section .section-heading { - margin: 0; -} - -.brand-section .section-heading h2 { - font-size: clamp(2rem, 3.1vw, 3.35rem); -} - -.principle-list { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 12px; -} - -.principle-list article, -.principle-list article:nth-child(2), -.principle-list article:nth-child(4) { - min-height: 170px; - margin-top: 0; - padding: 22px; - border: 1px solid rgba(255, 255, 255, 0.09); - border-radius: 8px; - background: rgba(23, 28, 26, 0.58); - box-shadow: none; - backdrop-filter: none; -} - -.principle-list article:hover { - transform: none; - border-color: rgba(159, 199, 166, 0.28); - background: rgba(31, 41, 36, 0.68); - box-shadow: none; -} - -.principle-list h3 { - color: #f1f3ef; -} - -.principle-list p { - color: rgba(230, 232, 230, 0.68); -} - -.contact-section { - padding-top: clamp(34px, 5vw, 70px); -} - -.contact-panel { - display: grid; - grid-template-columns: minmax(0, 1fr) minmax(280px, auto); - gap: clamp(30px, 6vw, 76px); - align-items: center; - overflow: visible; - padding: clamp(30px, 5vw, 54px); - border: 1px solid rgba(255, 255, 255, 0.1); - border-radius: 8px; - background: #151a18; - box-shadow: none; -} - -.contact-copy h2 { - max-width: 660px; - font-size: clamp(2rem, 3.1vw, 3.35rem); -} - -.contact-copy p, -.contact-panel .contact-note { - color: rgba(230, 232, 230, 0.7); -} - -.contact-action { - justify-self: end; - padding-top: 0; -} - -.contact-link { - min-height: 54px; - border-color: rgba(159, 199, 166, 0.26); - background: rgba(15, 17, 17, 0.5); -} - -.contact-note { - grid-column: 1 / -1; - margin: 0; - padding-top: 22px; - border-top: 1px solid rgba(255, 255, 255, 0.08); -} - -@media (max-width: 920px) { - .about-section, - #work, - .brand-section, - .contact-panel { - grid-template-columns: 1fr; - } - - .about-section .section-heading { - position: static; - } - - .work-intro, - #work .work-list { - grid-column: auto; - } - - #work .service-card { - grid-template-columns: 54px minmax(0, 1fr); - } - - #work .service-card p { - grid-column: 2; - } - - .contact-action { - justify-self: start; - } -} - -@media (max-width: 760px) { - .section, - .brand-section { - width: min(100% - 24px, 1180px); - } - - .section-copy { - padding-left: 18px; - } - - .studio-panel div { - grid-template-columns: 1fr; - gap: 5px; - } - - #work .service-card, - .principle-list { - grid-template-columns: 1fr; - } - - #work .service-card p { - grid-column: auto; - } - - .contact-panel { - padding: 26px 18px; - } -} - -/* Third-pass layout: more business polish without novelty decoration. */ -main { - background: - linear-gradient(180deg, rgba(15, 17, 17, 0) 0, #0f1111 7rem), - linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px) center top / min(18vw, 220px) 100%, - #0f1111; -} - -.section-heading p:not(.eyebrow) { - max-width: 620px; - margin: 18px 0 0; - color: rgba(230, 232, 230, 0.7); - font-size: clamp(1rem, 1.35vw, 1.12rem); -} - -.about-section { - grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr); -} - -.operations-preview { - overflow: hidden; - border: 1px solid rgba(255, 255, 255, 0.11); - border-radius: 8px; - background: - linear-gradient(135deg, rgba(31, 41, 36, 0.94), rgba(15, 17, 17, 0.74)), - #171c1a; - box-shadow: 0 24px 68px rgba(0, 0, 0, 0.22); -} - -.preview-header { - display: flex; - align-items: center; - justify-content: space-between; - min-height: 58px; - padding: 0 20px; - border-bottom: 1px solid rgba(255, 255, 255, 0.09); - color: rgba(230, 232, 230, 0.78); - font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; - font-size: 0.72rem; - font-weight: 700; - letter-spacing: 0.12em; - text-transform: uppercase; -} - -.preview-header strong { - color: #d7f2dc; - font-size: 0.78rem; -} - -.preview-grid { - display: grid; - grid-template-columns: repeat(3, minmax(0, 1fr)); -} - -.preview-grid article { - min-height: 188px; - padding: 22px; - border-right: 1px solid rgba(255, 255, 255, 0.08); -} - -.preview-grid article:last-child { - border-right: 0; -} - -.preview-grid span, -.principle-list span, -.service-type { - color: rgba(159, 199, 166, 0.78); - font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; - font-size: 0.68rem; - font-weight: 700; - letter-spacing: 0.12em; - text-transform: uppercase; -} - -.preview-grid h3 { - margin: 34px 0 10px; - color: #f1f3ef; - font-size: 1.28rem; -} - -.preview-grid p { - margin: 0; - color: rgba(230, 232, 230, 0.68); - font-size: 0.96rem; -} - -.studio-panel { - background: rgba(13, 16, 15, 0.72); -} - -#work { - grid-template-columns: minmax(260px, 0.38fr) minmax(0, 1fr); -} - -#work .work-list { - gap: 16px; - border-top: 0; -} - -#work .service-card { - grid-template-columns: minmax(120px, 0.24fr) minmax(210px, 0.34fr) minmax(0, 1fr); - gap: 24px; - min-height: 158px; - padding: 24px; - border: 1px solid rgba(255, 255, 255, 0.09); - border-radius: 8px; - background: rgba(23, 28, 26, 0.5); -} - -#work .service-card:nth-child(2), -#work .service-card:nth-child(4) { - margin-left: clamp(0px, 4vw, 54px); -} - -#work .service-card:hover { - border-color: rgba(159, 199, 166, 0.36); - background: rgba(31, 41, 36, 0.66); -} - -.work-index { - display: block; - margin-bottom: 12px; -} - -.service-type { - margin: 0; -} - -#work .service-card h3 { - font-size: clamp(1.25rem, 1.8vw, 1.7rem); - line-height: 1.12; -} - -#work .service-card p:not(.service-type) { - align-self: start; - color: rgba(230, 232, 230, 0.72); - font-size: 1rem; -} - -.brand-section { - grid-template-columns: minmax(280px, 0.42fr) minmax(0, 1fr); -} - -.principle-list { - gap: 14px; -} - -.principle-list article, -.principle-list article:nth-child(2), -.principle-list article:nth-child(4) { - display: flex; - flex-direction: column; - min-height: 224px; - padding: 24px; -} - -.principle-list article:nth-child(1), -.principle-list article:nth-child(4) { - background: rgba(31, 41, 36, 0.72); -} - -.principle-list h3 { - margin-top: auto; - font-size: 1.2rem; -} - -.principle-list p { - margin-top: 2px; -} - -.contact-section { - padding-bottom: clamp(78px, 10vw, 132px); -} - -.contact-panel { - position: relative; - overflow: hidden; - background: - linear-gradient(135deg, rgba(31, 41, 36, 0.92), rgba(13, 16, 15, 0.96)), - #151a18; -} - -.contact-panel::before { - position: absolute; - top: 0; - right: 0; - bottom: 0; - width: min(34%, 340px); - background: rgba(159, 199, 166, 0.06); - content: ""; -} - -.contact-copy, -.contact-action, -.contact-note { - position: relative; - z-index: 1; -} - -.contact-copy h2 { - margin-bottom: 16px; -} - -@media (max-width: 1040px) { - .preview-grid { - grid-template-columns: 1fr; - } - - .preview-grid article { - min-height: auto; - border-right: 0; - border-bottom: 1px solid rgba(255, 255, 255, 0.08); - } - - .preview-grid article:last-child { - border-bottom: 0; - } - - .preview-grid h3 { - margin-top: 22px; - } - - #work .service-card, - #work .service-card:nth-child(2), - #work .service-card:nth-child(4) { - margin-left: 0; - } -} - -@media (max-width: 920px) { - .about-section, - #work, - .brand-section { - grid-template-columns: 1fr; - } - - #work .service-card { - grid-template-columns: minmax(86px, 0.22fr) minmax(0, 1fr); - } - - #work .service-card p:not(.service-type) { - grid-column: 2; - } -} - -@media (max-width: 760px) { - main { - background: #0f1111; - } - - .operations-preview, - #work .service-card, - .principle-list article, - .contact-panel { - border-radius: 8px; - } - - #work .service-card { - grid-template-columns: 1fr; - padding: 22px; - } - - #work .service-card p:not(.service-type) { - grid-column: auto; - } - - .principle-list article, - .principle-list article:nth-child(2), - .principle-list article:nth-child(4) { - min-height: 190px; - } - - .contact-panel::before { - display: none; - } -} - -/* Studio profile and background refinement. */ -body { - background: - linear-gradient(180deg, rgba(15, 17, 17, 0.18), #0f1111 820px), - linear-gradient(90deg, rgba(15, 17, 17, 0.94), rgba(15, 17, 17, 0.74) 48%, rgba(15, 17, 17, 0.92)), - url("assets/images/backdrop.jpg") center top / cover no-repeat fixed, - #0f1111; -} - -main { - background: - linear-gradient(180deg, rgba(15, 17, 17, 0) 0, #0f1111 7rem), - linear-gradient(90deg, rgba(255, 255, 255, 0.024) 1px, transparent 1px) center top / min(18vw, 220px) 100%, - linear-gradient(180deg, transparent 0 34%, rgba(159, 199, 166, 0.035) 34% 34.12%, transparent 34.12%), - #0f1111; -} - -.studio-panel { - min-height: 310px; - background: rgba(13, 16, 15, 0.84); -} - -.panel-label { - padding: 22px 28px; -} - -.studio-panel div { - grid-template-columns: minmax(112px, 0.22fr) minmax(0, 1fr); - min-height: 72px; - padding: 20px 28px; -} - -.studio-panel dd { - font-size: clamp(1rem, 1.5vw, 1.14rem); - line-height: 1.45; -} - -.about-grid { - gap: 24px; -} - -.operations-preview { - min-height: 250px; -} - -@media (max-width: 760px) { - body, - main { - background: #0f1111; - } - - .panel-label, - .studio-panel div { - padding-right: 20px; - padding-left: 20px; - } - - .studio-panel { - min-height: auto; - } -} - -/* Alternative background and resource page system. */ -body { - background: - linear-gradient(180deg, rgba(15, 17, 17, 0.42), #0f1111 760px), - linear-gradient(120deg, rgba(159, 199, 166, 0.075) 0 1px, transparent 1px 120px), - linear-gradient(90deg, rgba(255, 255, 255, 0.022) 1px, transparent 1px) center top / min(18vw, 220px) 100%, - #0f1111; -} - -body::before { - display: block; - z-index: -3; - background: - linear-gradient(135deg, transparent 0 34%, rgba(159, 199, 166, 0.055) 34% 34.12%, transparent 34.12%), - linear-gradient(28deg, transparent 0 72%, rgba(79, 138, 107, 0.045) 72% 72.12%, transparent 72.12%); - opacity: 0.78; -} - -body::after { - display: block; - z-index: -3; - background: - linear-gradient(180deg, rgba(15, 17, 17, 0), rgba(15, 17, 17, 0.84)), - linear-gradient(90deg, transparent 0 12%, rgba(31, 41, 36, 0.18) 12% 12.08%, transparent 12.08% 100%); - opacity: 1; -} - -main, -.content-page { - background: - linear-gradient(180deg, rgba(15, 17, 17, 0) 0, #0f1111 7rem), - linear-gradient(90deg, rgba(255, 255, 255, 0.024) 1px, transparent 1px) center top / min(18vw, 220px) 100%, - #0f1111; -} - -.content-page main { - background: transparent; -} - -.content-main { - width: min(100% - 40px, 1180px); - padding: 142px 0 74px; -} - -.hub-main { - display: grid; - gap: 34px; -} - -.content-hero { - display: grid; - grid-template-columns: minmax(0, 0.64fr) minmax(280px, 0.36fr); - gap: clamp(30px, 6vw, 78px); - align-items: end; - padding-bottom: 30px; - border-bottom: 1px solid rgba(255, 255, 255, 0.1); -} - -.content-hero h1 { - max-width: 760px; - margin-bottom: 0; - color: #f1f3ef; - font-size: clamp(2.6rem, 6vw, 5.2rem); - font-weight: 700; - letter-spacing: 0; - text-transform: none; -} - -.content-hero p:not(.eyebrow) { - max-width: 430px; - margin: 0; - color: rgba(230, 232, 230, 0.72); - font-size: 1.08rem; -} - -.content-layout { - display: grid; - grid-template-columns: minmax(0, 1fr) minmax(280px, 0.34fr); - gap: clamp(20px, 4vw, 36px); - align-items: start; -} - -.content-shell { - border: 1px solid rgba(255, 255, 255, 0.1); - background: rgba(13, 16, 15, 0.76); - box-shadow: none; -} - -.hub-shell { - min-height: 360px; -} - -.content-shell h2 { - color: #f1f3ef; -} - -.section-label { - margin: 0 0 14px; - color: rgba(159, 199, 166, 0.78); - font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; - font-size: 0.68rem; - font-weight: 700; - letter-spacing: 0.12em; - text-transform: uppercase; -} - -.document-links { - display: grid; - gap: 12px; - margin: 24px 0; -} - -.document-links a { - position: relative; - display: grid; - gap: 8px; - padding: 22px 58px 22px 22px; - border: 1px solid rgba(255, 255, 255, 0.09); - border-radius: 8px; - background: rgba(23, 28, 26, 0.62); - text-decoration: none; -} - -.document-links a::after { - position: absolute; - top: 22px; - right: 22px; - color: rgba(159, 199, 166, 0.82); - content: "›"; - font-size: 1.45rem; - line-height: 1; -} - -.document-links a:hover, -.document-links a:focus-visible { - border-color: rgba(159, 199, 166, 0.3); - background: rgba(31, 41, 36, 0.68); - outline: none; -} - -.document-links span { - color: rgba(159, 199, 166, 0.78); - font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; - font-size: 0.68rem; - font-weight: 700; - letter-spacing: 0.12em; - text-transform: uppercase; -} - -.document-links strong { - color: #f1f3ef; - font-size: 1.22rem; -} - -.document-links p { - max-width: 620px; - margin: 0; - color: rgba(230, 232, 230, 0.68); -} - -.content-aside { - position: sticky; - top: 106px; - padding: 24px; - border: 1px solid rgba(255, 255, 255, 0.1); - border-radius: 8px; - background: rgba(23, 28, 26, 0.72); -} - -.content-aside h2 { - margin: 0 0 14px; - color: #f1f3ef; - font-size: 1.25rem; -} - -.content-aside p { - margin: 0 0 20px; - color: rgba(230, 232, 230, 0.68); -} - -.aside-link { - display: inline-flex; - max-width: 100%; - color: #d7f2dc; - font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; - font-size: clamp(0.78rem, 1.3vw, 0.9rem); - overflow-wrap: anywhere; -} - -.document-main { - width: min(100% - 40px, 980px); -} - -.document-shell { - padding: clamp(28px, 5vw, 56px); -} - -.document-shell h1 { - max-width: 780px; - margin-bottom: 26px; - color: #f1f3ef; - font-size: clamp(2.3rem, 5vw, 4.4rem); - font-weight: 700; - letter-spacing: 0; - text-transform: none; -} - -.document-shell .lead { - max-width: 760px; - margin-bottom: 32px; - color: rgba(241, 243, 239, 0.86); -} - -.document-shell section { - padding-top: 26px; - margin-top: 26px; - border-top: 1px solid rgba(255, 255, 255, 0.08); -} - -.document-shell section:first-of-type { - margin-top: 0; -} - -.document-shell h2 { - margin-top: 0; -} - -.document-meta { - margin-bottom: 34px; - border-color: rgba(255, 255, 255, 0.1); -} - -.breadcrumb, -.related-links { - font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; - font-size: 0.78rem; -} - -.related-links { - align-items: stretch; -} - -.related-links a { - display: inline-flex; - align-items: center; - min-height: 40px; - padding: 0 12px; - border: 1px solid rgba(255, 255, 255, 0.09); - border-radius: 8px; - text-decoration: none; -} - -@media (max-width: 920px) { - .content-hero, - .content-layout { - grid-template-columns: 1fr; - } - - .content-aside { - position: static; - } -} - -@media (max-width: 760px) { - body, - body::before, - body::after, - main, - .content-page { - background: #0f1111; - } - - .content-main, - .document-main { - width: min(100% - 24px, 1180px); - padding-top: 112px; - } - - .content-hero { - gap: 18px; - } - - .document-links a { - padding-right: 22px; - } - - .document-links a::after { - display: none; - } -} - -/* Structured background option: texture and contour, no glow. */ -body { - background: - linear-gradient(180deg, #0d100f 0, #0f1111 48rem), - repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.018) 0 1px, transparent 1px 14rem), - #0f1111; -} - -body::before, -body::after { - display: none; -} - -main { - position: relative; - isolation: isolate; - overflow: hidden; - background: - linear-gradient(180deg, rgba(15, 17, 17, 0) 0, #0f1111 7rem), - #0f1111; -} - -main::before { - position: absolute; - top: 100vh; - right: 0; - bottom: 0; - left: 0; - z-index: -1; - display: block; - pointer-events: none; - content: ""; - background: - linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px) center top / min(18vw, 220px) 100%, - repeating-linear-gradient(135deg, transparent 0 46px, rgba(159, 199, 166, 0.035) 46px 47px, transparent 47px 132px), - repeating-radial-gradient(ellipse at 82% 18%, transparent 0 44px, rgba(159, 199, 166, 0.05) 45px 46px, transparent 47px 94px), - repeating-radial-gradient(ellipse at 12% 76%, transparent 0 54px, rgba(255, 255, 255, 0.035) 55px 56px, transparent 57px 116px), - linear-gradient(180deg, #0f1111 0, #121815 42%, #0f1111 100%); -} - -.hero, -.section, -.site-footer { - position: relative; - z-index: 1; -} - -.content-page { - background: - repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.02) 0 1px, transparent 1px 13rem), - repeating-linear-gradient(135deg, transparent 0 42px, rgba(159, 199, 166, 0.035) 42px 43px, transparent 43px 128px), - #0f1111; -} - -.content-page main { - overflow: hidden; - background: - linear-gradient(180deg, rgba(13, 16, 15, 0.92), rgba(15, 17, 17, 0.98)), - #0f1111; -} - -.content-page main::before { - top: 0; - background: - linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px) center top / min(18vw, 220px) 100%, - repeating-radial-gradient(ellipse at 88% 10%, transparent 0 48px, rgba(159, 199, 166, 0.052) 49px 50px, transparent 51px 108px), - repeating-radial-gradient(ellipse at 8% 82%, transparent 0 58px, rgba(255, 255, 255, 0.035) 59px 60px, transparent 61px 128px), - linear-gradient(180deg, #101412 0, #0f1111 100%); -} - -.content-shell, -.content-aside, -.studio-panel, -.operations-preview, -#work .service-card, -.principle-list article, -.contact-panel { - backdrop-filter: none; - background-color: rgba(13, 16, 15, 0.82); -} - -@media (max-width: 760px) { - body, - main, - .content-page, - .content-page main { - background: - repeating-linear-gradient(135deg, transparent 0 44px, rgba(159, 199, 166, 0.028) 44px 45px, transparent 45px 124px), - #0f1111; - } - - main::before, - .content-page main::before { - display: none; - } -} - -/* Landing page background restraint; keep resource pages more textured. */ -body:not(.content-page) { - background: - linear-gradient(180deg, #0d100f 0, #0f1111 48rem), - #0f1111; -} - -body:not(.content-page) main::before { - background: - linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px) center top / min(22vw, 280px) 100%, - linear-gradient(180deg, #0f1111 0, #111613 44%, #0f1111 100%); -} - -@media (max-width: 760px) { - body:not(.content-page), - body:not(.content-page) main { - background: #0f1111; - } -} - -/* Resource page hero cleanup. */ -.content-page { - background: - linear-gradient(180deg, #0d100f 0, #0f1111 44rem), - repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.018) 0 1px, transparent 1px 16rem), - #0f1111; -} - -.content-page main { - background: - linear-gradient(180deg, rgba(15, 17, 17, 0.18) 0, rgba(15, 17, 17, 0.92) 22rem, #0f1111 100%), - #0f1111; -} - -.content-page main::before { - background: - linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px) center top / min(20vw, 260px) 100%, - linear-gradient(180deg, #101412 0, #0f1111 100%); -} - -.content-hero { - display: block; - max-width: 820px; - padding: clamp(26px, 5vw, 46px) 0 34px; -} - -.content-hero h1 { - margin-bottom: 22px; - font-size: clamp(3rem, 6.4vw, 5.4rem); - line-height: 0.98; -} - -.content-hero p:not(.eyebrow) { - max-width: 560px; - color: rgba(230, 232, 230, 0.76); -} - -.hub-main { - gap: 34px; -} - -.document-links strong { - font-size: clamp(1.35rem, 2.2vw, 1.75rem); -} - -.document-links span { - order: 2; -} - -.document-links p { - order: 3; -} - -@media (max-width: 760px) { - .content-page, - .content-page main { - background: - linear-gradient(180deg, #0d100f 0, #0f1111 26rem), - #0f1111; - } - - .content-hero { - padding-top: 12px; - } -} diff --git a/support/index.html b/support/index.html index e0d7f50..a305f6e 100644 --- a/support/index.html +++ b/support/index.html @@ -3,131 +3,64 @@ - - - Cedarline Digital Support + + Support · Cedarline Digital - - + + - - - - - - - -
-
-

Cedarline Digital

-

Support

-

- Support information for Cedarline Digital software, apps, and released projects. -

-
- -
- + + + - -
-
+
+

Questions

+

+ Need help with a project that has no support page? Email support@cedarline.digital. +

+
+ - + + diff --git a/support/left-unsaid/index.html b/support/left-unsaid/index.html deleted file mode 100644 index b0664c2..0000000 --- a/support/left-unsaid/index.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - Left Unsaid Support | Cedarline Digital - - - - - - - - - - - - - - - - -
-
- - -

Product Support

-

Left Unsaid Support

-
-
-
Product
-
Left Unsaid
-
-
-
Support
-
support@cedarline.digital
-
-
-

- Left Unsaid is a private writing app for thoughts, feelings, and notes you want to let out quietly. -

- -
-

Contact

-

For help with Left Unsaid, contact:

-

Email: support@cedarline.digital

-

When contacting support, include:

-
    -
  • The app name: Left Unsaid
  • -
  • Your device model
  • -
  • Your iOS version
  • -
  • A short description of the issue
  • -
  • Screenshots if helpful
  • -
-

Please do not send private thoughts, journal entries, or sensitive personal content in support messages.

-
- -
-

Privacy

-

Read the Left Unsaid Privacy Policy:

-

https://cedarline.digital/privacy/left-unsaid

-
- - -
-
- - - - - - diff --git a/terms/index.html b/terms/index.html index a9128de..867a65b 100644 --- a/terms/index.html +++ b/terms/index.html @@ -3,131 +3,70 @@ - - - Cedarline Digital Terms + + Terms · Cedarline Digital - - + + - - - - - - - -
-
-

Cedarline Digital

-

Terms

-

- Terms of service for Cedarline Digital products, apps, and digital tools. -

-
- -
- + + + - -
-
+
+

Questions

+

+ Questions about these terms? Email support@cedarline.digital. +

+
+ - + +