        :root {
            --bg-color: #ffffff;
            --text-main: #0a0a0a;
            --text-muted: #666666;
            --line-color: #e5e5e5;
            --accent: #0a0a0a;
            --accent-soft: rgba(10, 10, 10, 0.06);
            --surface: rgba(255, 255, 255, 0.92);
            --surface-strong: rgba(255, 255, 255, 0.98);
            --shadow-lg: 0 24px 64px rgba(0, 0, 0, 0.08);
        }

        * { margin: 0; padding: 0; box-sizing: border-box; }
        
        body {
            font-family: 'Inter', sans-serif;
            background:
                radial-gradient(circle at top left, rgba(10, 10, 10, 0.04), transparent 28%),
                radial-gradient(circle at 85% 10%, rgba(10, 10, 10, 0.03), transparent 22%),
                linear-gradient(180deg, #ffffff 0%, #fbfbfb 100%);
            background-color: var(--bg-color);
            color: var(--text-main);
            overflow-x: hidden;
            line-height: 1.5;
            -webkit-font-smoothing: antialiased;
            text-rendering: optimizeLegibility;
            scrollbar-color: rgba(10, 10, 10, 0.35) rgba(10, 10, 10, 0.06);
            scrollbar-width: thin;
        }

        ::selection {
            background: rgba(10, 10, 10, 0.12);
            color: var(--text-main);
        }

        /* Architectural Grid Background */
        .grid-bg {
            position: fixed;
            top: 0; left: 0; width: 100vw; height: 100vh;
            z-index: -1;
            background-image: 
                linear-gradient(to right, rgba(0,0,0,0.025) 1px, transparent 1px),
                linear-gradient(to bottom, rgba(0,0,0,0.025) 1px, transparent 1px);
            background-size: 50px 50px;
            pointer-events: none;
            opacity: 0.75;
        }

        /* Typography */
        h1, h2, h3, .logo, .badge, .btn {
            font-family: 'Space Grotesk', sans-serif;
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }

        .container {
            width: 100%;
            max-width: none;
            margin: 0 auto;
            padding: 0 1rem;
            position: relative;
        }

        /* Navigation */
        nav {
            display: flex;
            justify-content: flex-start;
            align-items: center;
            padding: 0.5rem 0;
            margin: 0;
            border-bottom: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 0;
            position: sticky;
            top: 0;
            z-index: 1000;
            background: rgba(255,255,255,0.92);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            box-shadow: 0 8px 24px rgba(0,0,0,0.04);
        }

        .logo {
            font-size: 1.25rem;
            font-weight: 700;
            color: var(--text-main);
            text-decoration: none;
            letter-spacing: 0.2em;
        }

        /* Hero Section */
        .hero {
            min-height: 75vh;
            display: grid;
            grid-template-columns: 1fr 1fr;
            align-items: center;
            gap: 5rem;
            position: relative;
            padding: 5rem 0 4.5rem;
        }

        .hero-content {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: 0.25rem;
        }

        .hero-metrics {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 1rem;
            width: 100%;
            max-width: 560px;
            margin-top: 0.5rem;
        }

        .metric {
            padding: 1rem 1rem 1.1rem;
            border: 1px solid var(--line-color);
            background: rgba(255,255,255,0.78);
            backdrop-filter: blur(6px);
            -webkit-backdrop-filter: blur(6px);
        }

        .metric-value {
            display: block;
            font-family: 'Space Grotesk', sans-serif;
            font-size: 1.2rem;
            font-weight: 700;
            margin-bottom: 0.35rem;
            color: var(--text-main);
        }

        .metric-label {
            display: block;
            color: var(--text-muted);
            font-size: 0.78rem;
            letter-spacing: 0.05em;
            text-transform: uppercase;
        }

        .hero-image-wrapper {
            overflow: hidden;
            position: relative;
            width: 100%;
            height: 500px;
            border: 1px solid var(--line-color);
            padding: 0.9rem;
            background:
                linear-gradient(135deg, rgba(0,0,0,0.02), transparent 45%),
                var(--bg-color);
            box-shadow: 0 20px 60px rgba(0,0,0,0.06);
            transform: rotate(-1.25deg);
        }

        .hero-image-tag {
            position: absolute;
            top: 1rem;
            left: 1rem;
            z-index: 2;
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            padding: 0.5rem 0.8rem;
            border: 1px solid rgba(10,10,10,0.12);
            background: rgba(255,255,255,0.88);
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.72rem;
            letter-spacing: 0.08em;
            text-transform: uppercase;
        }

        .hero-image {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center center;
            filter: grayscale(100%) contrast(1.15) saturate(0.85);
            transform: scale(1.03);
            transition: transform 0.8s cubic-bezier(0.19, 1, 0.22, 1), filter 0.8s cubic-bezier(0.19, 1, 0.22, 1);
        }

        .hero-image-wrapper::before,
        .hero-image-wrapper::after {
            content: '';
            position: absolute;
            pointer-events: none;
        }

        .hero-image-wrapper::before {
            inset: 12px;
            border: 1px solid rgba(0, 0, 0, 0.08);
        }

        .hero-image-wrapper::after {
            right: 12px;
            bottom: 12px;
            width: 120px;
            height: 120px;
            border-right: 1px solid rgba(0, 0, 0, 0.18);
            border-bottom: 1px solid rgba(0, 0, 0, 0.18);
        }

        .hero-image-wrapper:hover .hero-image {
            transform: scale(1.08);
        }

        /* Decorative architectural lines */
        .hero::before {
            content: '';
            position: absolute;
            left: -3rem; top: 0;
            width: 1px; height: 100%;
            background: var(--line-color);
        }

        .badge {
            display: inline-block;
            border: 1px solid var(--text-main);
            padding: 0.4rem 1rem;
            font-size: 0.75rem;
            font-weight: 500;
            margin-bottom: 2rem;
            align-self: flex-start;
        }

        .hero h1 {
            font-size: clamp(3rem, 7vw, 7rem);
            font-weight: 400;
            line-height: 1;
            letter-spacing: -0.02em;
            margin-bottom: 2rem;
            max-width: 900px;
        }

        .hero p {
            font-size: 1.2rem;
            color: var(--text-muted);
            max-width: 500px;
            font-weight: 300;
            line-height: 1.8;
            margin-bottom: 2.5rem;
        }

        .btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 1.2rem 2.5rem;
            font-size: 0.85rem;
            font-weight: 700;
            text-decoration: none;
            border: 1px solid var(--text-main);
            background: transparent;
            color: var(--text-main);
            transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
            cursor: pointer;
            position: relative;
            overflow: hidden;
        }

        .tool-card .btn,
        .tool-card button[type="button"] {
            gap: 0.55rem;
        }

        .btn::before {
            content: '';
            position: absolute;
            top: 0; left: 0; width: 100%; height: 100%;
            background: var(--text-main);
            transform: translateY(100%);
            transition: transform 0.4s cubic-bezier(0.19, 1, 0.22, 1);
            z-index: -1;
        }

        .btn:hover,
        .btn:focus-visible {
            color: var(--bg-color);
            outline: none;
        }

        .btn:hover::before,
        .btn:focus-visible::before {
            transform: translateY(0);
        }

        /* Features/Services Section */
        .features {
            padding: 7rem 0;
            border-top: 1px solid var(--line-color);
        }

        .practice {
            padding: 7rem 0;
            border-top: 1px solid var(--line-color);
        }

        .about {
            padding: 7rem 0;
            border-top: 1px solid var(--line-color);
        }

        .credentials {
            padding: 7rem 0;
            border-top: 1px solid var(--line-color);
        }

        .section-header {
            margin-bottom: 3.5rem;
            display: grid;
            grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
            gap: 1.5rem;
            align-items: end;
        }

        .section-header h2 {
            font-size: clamp(2.2rem, 4vw, 3.4rem);
            font-weight: 400;
            letter-spacing: -0.03em;
        }

        .section-header p {
            color: var(--text-muted);
            max-width: 360px;
            font-size: 0.95rem;
            line-height: 1.8;
            justify-self: end;
        }

        .grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 1rem;
        }

        .practice-layout {
            display: grid;
            grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
            gap: 1rem;
            align-items: stretch;
        }

        .practice-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 1rem;
        }

        .practice-card,
        .practice-note {
            border: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 24px;
            background: linear-gradient(180deg, rgba(255,255,255,0.97), rgba(248,248,248,0.94));
            box-shadow: var(--shadow-lg);
        }

        .practice-card {
            padding: 2rem;
            display: grid;
            gap: 1rem;
            transition: transform 0.35s ease, box-shadow 0.35s ease;
        }

        .practice-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 24px 56px rgba(0,0,0,0.07);
        }

        .practice-card h3 {
            font-size: 1.25rem;
            line-height: 1.1;
            font-weight: 500;
        }

        .practice-card p {
            color: var(--text-muted);
            line-height: 1.8;
            font-size: 0.96rem;
        }

        .practice-note {
            padding: 2rem;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            gap: 1.25rem;
            background:
                radial-gradient(circle at top right, rgba(10,10,10,0.03), transparent 28%),
                linear-gradient(180deg, rgba(255,255,255,0.98), rgba(249,249,249,0.94));
        }

        .practice-note h3 {
            font-size: clamp(1.5rem, 2.5vw, 2.2rem);
            line-height: 1.05;
            letter-spacing: -0.03em;
            font-weight: 400;
        }

        .practice-note p {
            color: var(--text-muted);
            line-height: 1.8;
        }

        .practice-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 0.6rem;
        }

        .practice-tags span {
            border: 1px solid var(--line-color);
            padding: 0.45rem 0.75rem;
            border-radius: 999px;
            font-size: 0.72rem;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            color: var(--text-muted);
            background: rgba(255,255,255,0.8);
        }

        .about-layout {
            display: grid;
            grid-template-columns: 1.1fr 0.9fr;
            gap: 1rem;
            align-items: stretch;
        }

        .about-copy,
        .about-panel {
            border: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 24px;
            background: linear-gradient(180deg, rgba(255,255,255,0.97), rgba(248,248,248,0.94));
            box-shadow: var(--shadow-lg);
        }

        .about-copy {
            padding: 2rem;
            display: grid;
            gap: 1rem;
        }

        .about-copy h3 {
            font-size: clamp(1.6rem, 2.8vw, 2.4rem);
            line-height: 1.05;
            font-weight: 400;
            letter-spacing: -0.03em;
        }

        .about-copy p {
            color: var(--text-muted);
            line-height: 1.85;
        }

        .about-panel {
            padding: 2rem;
            display: grid;
            gap: 1rem;
            align-content: start;
        }

        .about-stat,
        .credential-card,
        .reference-card {
            border: 1px solid rgba(10,10,10,0.08);
            border-radius: 20px;
            background: rgba(255,255,255,0.9);
            padding: 1rem 1.05rem;
            display: grid;
            gap: 0.35rem;
        }

        .about-stat span,
        .credential-card span,
        .reference-card span {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.72rem;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: var(--text-muted);
        }

        .about-stat strong,
        .credential-card strong,
        .reference-card strong {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.98rem;
            letter-spacing: 0.03em;
            line-height: 1.45;
            color: var(--text-main);
            font-weight: 500;
        }

        .credential-card p {
            color: var(--text-muted);
            line-height: 1.75;
            font-size: 0.95rem;
        }

        .credentials-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 1rem;
        }

        .reference-strip {
            margin-top: 1rem;
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 1rem;
        }

        .about-hero {
            padding: 4rem 0 3rem;
            display: grid;
            grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr);
            gap: 1.25rem;
            align-items: stretch;
        }

        .about-hero-copy,
        .about-hero-panel,
        .about-section,
        .team-card,
        .about-card {
            border: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 28px;
            background: linear-gradient(180deg, rgba(255,255,255,0.97), rgba(248,248,248,0.94));
            box-shadow: var(--shadow-lg);
        }

        .about-hero-copy {
            padding: 2.5rem;
            display: grid;
            gap: 1rem;
            align-content: start;
        }

        .about-hero-copy h1 {
            font-size: clamp(2.7rem, 5.2vw, 5.2rem);
            line-height: 0.92;
            letter-spacing: -0.04em;
            font-weight: 400;
        }

        .about-hero-copy p {
            color: var(--text-muted);
            line-height: 1.8;
            max-width: 44rem;
        }

        .about-hero-panel {
            padding: 2rem;
            display: grid;
            gap: 1rem;
            align-content: start;
        }

        .about-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 1rem;
        }

        .about-section {
            padding: 2rem;
            display: grid;
            gap: 1rem;
        }

        .about-section h2,
        .team-section h2 {
            font-size: 1.55rem;
            line-height: 1.1;
            font-weight: 600;
            letter-spacing: -0.02em;
            color: var(--text-main);
        }

        .about-section p {
            color: var(--text-muted);
            line-height: 1.85;
        }

        .team-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 1rem;
        }

        .team-card,
        .about-card {
            padding: 1.25rem;
            display: grid;
            gap: 0.5rem;
        }

        .team-card strong,
        .about-card strong {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 1rem;
            font-weight: 500;
            letter-spacing: 0.03em;
        }

        .team-card p,
        .about-card p {
            color: var(--text-muted);
            line-height: 1.75;
            font-size: 0.95rem;
        }

        .team-section {
            display: grid;
            gap: 1rem;
        }

        .team-section .section-header {
            margin-bottom: 0.75rem;
        }

        .about-contact {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 1rem;
        }

        .arch-card {
            padding: 2.25rem;
            border: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 24px;
            background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(249,249,249,0.94));
            box-shadow: 0 16px 40px rgba(0,0,0,0.04);
            transition: transform 0.35s ease, background 0.35s ease, box-shadow 0.35s ease;
            position: relative;
            overflow: hidden;
        }

        .arch-card:hover {
            background: linear-gradient(180deg, rgba(255,255,255,0.99), rgba(245,245,245,0.96));
            transform: translateY(-4px);
            box-shadow: 0 24px 56px rgba(0,0,0,0.07);
        }

        .card-number {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.8rem;
            color: var(--text-muted);
            margin-bottom: 2rem;
            display: block;
        }

        .arch-card h3 {
            font-size: 1.35rem;
            font-weight: 500;
            margin-bottom: 1rem;
            line-height: 1.15;
        }

        .arch-card p {
            color: var(--text-muted);
            font-size: 0.96rem;
            font-weight: 300;
            line-height: 1.8;
        }

        /* Projects Section */
        .projects {
            padding: 7rem 0;
            border-top: 1px solid var(--line-color);
        }

        .featured-project {
            display: grid;
            grid-template-columns: 1.2fr 0.8fr;
            gap: 0;
            border: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 32px;
            overflow: hidden;
            margin-bottom: 2.5rem;
            background: linear-gradient(180deg, rgba(255,255,255,0.97), rgba(248,248,248,0.93));
            box-shadow: var(--shadow-lg);
        }

        .featured-project-image {
            min-height: 420px;
            background: linear-gradient(135deg, rgba(0,0,0,0.05), transparent 70%);
        }

        .featured-project-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center 35%;
            display: block;
        }

        .featured-project-content {
            padding: 3rem;
            display: flex;
            flex-direction: column;
            justify-content: center;
            gap: 1.25rem;
        }

        .featured-project-content h3 {
            font-size: clamp(2rem, 4vw, 3.5rem);
            line-height: 0.95;
            letter-spacing: -0.03em;
            font-weight: 400;
        }

        .featured-project-content p {
            color: var(--text-muted);
            line-height: 1.8;
            max-width: 34rem;
        }

        .featured-project-meta {
            display: flex;
            flex-wrap: wrap;
            gap: 0.75rem;
        }

        .featured-project-meta span {
            border: 1px solid var(--line-color);
            padding: 0.45rem 0.8rem;
            font-size: 0.75rem;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            color: var(--text-muted);
            background: rgba(255,255,255,0.7);
        }

        .featured-project-actions {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 1rem 1.2rem;
            margin-top: 0.5rem;
        }

        .featured-project-controls {
            display: inline-flex;
            gap: 0.65rem;
        }

        .featured-project-btn {
            border: 1px solid var(--line-color);
            background: rgba(255,255,255,0.9);
            color: var(--text-main);
            padding: 0.9rem 1rem;
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            cursor: pointer;
            transition: transform 0.25s ease, background 0.25s ease, border-color 0.25s ease;
        }

        .featured-project-btn:hover,
        .featured-project-btn:focus-visible {
            transform: translateY(-2px);
            background: #fff;
            border-color: var(--text-main);
            outline: none;
        }

        .projects-grid {
            column-count: 3;
            column-gap: 1rem;
        }

        .project-card {
            display: inline-block;
            width: 100%;
            margin: 0 0 1rem;
            --card-tilt: 0deg;
            --card-shift: 0px;
            border: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 26px;
            background: linear-gradient(180deg, rgba(255,255,255,0.97), rgba(248,248,248,0.94));
            box-shadow: 0 18px 40px rgba(0,0,0,0.05);
            transition: transform 0.4s cubic-bezier(0.19, 1, 0.22, 1);
            position: relative;
            cursor: pointer;
            overflow: hidden;
            transform: translateY(var(--card-shift)) rotate(var(--card-tilt));
        }

        .project-card:hover {
            transform: translateY(calc(var(--card-shift) - 12px)) rotate(0deg);
        }

        .project-image-wrapper {
            width: 100%;
            height: 340px;
            overflow: hidden;
            position: relative;
            background: linear-gradient(135deg, rgba(0,0,0,0.06), transparent 70%);
        }

        .project-image {
            width: 100%;
            height: 100%;
            object-fit: cover;
            filter: grayscale(100%) contrast(1.15) brightness(0.98);
            transform: scale(1.02);
            transition: transform 0.8s cubic-bezier(0.19, 1, 0.22, 1), filter 0.8s cubic-bezier(0.19, 1, 0.22, 1);
        }

        .project-image-wrapper::after {
            content: '';
            position: absolute;
            inset: auto 0 0 0;
            height: 40%;
            background: linear-gradient(180deg, transparent, rgba(10,10,10,0.22));
            pointer-events: none;
        }

        .project-card:hover .project-image {
            transform: scale(1.1);
            filter: grayscale(70%) contrast(1.15) brightness(1.05);
        }

        .project-info {
            padding: 1.45rem 1.5rem 1.65rem;
            background: rgba(255,255,255,0.92);
        }

        .project-info h3 {
            font-size: 1.25rem;
            margin-bottom: 0.5rem;
        }

        .project-info p {
            color: var(--text-muted);
            font-size: 0.85rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }

        .project-card:nth-child(4n + 1) .project-image-wrapper {
            height: 420px;
        }
        .project-card:nth-child(4n + 2) .project-image-wrapper {
            height: 300px;
        }
        .project-card:nth-child(4n + 3) .project-image-wrapper {
            height: 380px;
        }
        .project-card:nth-child(4n + 4) .project-image-wrapper {
            height: 330px;
        }

        .project-card:nth-child(4n + 1) .project-image {
            object-position: center 28%;
        }
        .project-card:nth-child(4n + 2) .project-image {
            object-position: center 65%;
        }
        .project-card:nth-child(4n + 3) .project-image {
            object-position: center 40%;
        }
        .project-card:nth-child(4n + 4) .project-image {
            object-position: center 55%;
        }

        .project-card:nth-child(2n) {
            --card-tilt: -0.8deg;
            --card-shift: 14px;
        }

        .project-card:nth-child(3n) {
            --card-tilt: 0.9deg;
            --card-shift: 22px;
        }

        .project-card:nth-child(5n) {
            --card-tilt: -1.2deg;
            --card-shift: 8px;
        }

        .project-card:nth-child(7n) {
            --card-tilt: 1.3deg;
            --card-shift: 28px;
        }

        /* Footer */
        footer {
            border-top: 1px solid var(--line-color);
            padding: 4rem 0 4.5rem;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 2rem;
        }

        .footer-logo {
            font-family: 'Space Grotesk', sans-serif;
            font-weight: 700;
            font-size: 1.5rem;
            letter-spacing: 0.1em;
        }

        .footer-text {
            color: var(--text-muted);
            font-size: 0.85rem;
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 0.75rem 1rem;
        }

        .footer-text a {
            color: var(--text-main);
            text-decoration: none;
        }

        .footer-text a:hover,
        .footer-text a:focus-visible {
            text-decoration: underline;
            outline: none;
        }

        /* Animations */
        .reveal {
            opacity: 0;
            transform: translateY(20px);
            transition: opacity 1s cubic-bezier(0.19, 1, 0.22, 1), transform 1s cubic-bezier(0.19, 1, 0.22, 1);
        }

        .reveal.active {
            opacity: 1;
            transform: translateY(0);
        }

        /* Legal Pages */
        .legal-page {
            min-height: 100vh;
            padding: 3rem 0 5rem;
        }

        .legal-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding-bottom: 2rem;
            margin-bottom: 3rem;
            border-bottom: 1px solid var(--line-color);
        }

        .legal-back {
            color: var(--text-muted);
            text-decoration: none;
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.8rem;
            letter-spacing: 0.08em;
            text-transform: uppercase;
        }

        .legal-back:hover,
        .legal-back:focus-visible {
            color: var(--text-main);
            outline: none;
        }

        .legal-content {
            max-width: 860px;
        }

        .legal-content h1 {
            font-size: clamp(2.5rem, 6vw, 5rem);
            line-height: 1;
            margin-bottom: 1.5rem;
        }

        .legal-meta {
            color: var(--text-muted);
            margin-bottom: 3rem;
            font-size: 0.95rem;
        }

        .legal-section {
            margin-bottom: 2rem;
        }

        .legal-section h2 {
            font-size: 1.2rem;
            margin-bottom: 0.75rem;
        }

        .legal-section p,
        .legal-section li {
            color: var(--text-muted);
            font-size: 0.98rem;
            line-height: 1.8;
        }

        .legal-section ul {
            padding-left: 1.2rem;
        }

        /* Property Tools */
        .tools-page,
        .invert-tools-page,
        .construction-tools-page,
        .grid-tools-page,
        .facade-tools-page,
        .daylight-tools-page,
        .parking-tools-page,
        .egress-tools-page,
        .orientation-tools-page,
        .section-tools-page,
        .stair-tools-page,
        .phasing-tools-page,
        .roof-tools-page,
        .acoustic-tools-page,
        .accessibility-tools-page,
        .furniture-tools-page,
        .window-tools-page,
        .door-tools-page,
        .space-standards-tools-page,
        .fixture-tools-page,
        .stair-code-tools-page,
        .room-schedule-tools-page,
        .material-selector-tools-page,
        .daylight-depth-tools-page,
        .circulation-audit-tools-page,
        .parking-audit-tools-page,
        .site-logistics-audit-tools-page,
        .project-brief-tools-page,
        .material-takeoff-tools-page,
        .embodied-carbon-tools-page,
        .ventilation-tools-page,
        .thermal-comfort-tools-page,
        .rainwater-harvesting-tools-page,
        .acoustic-privacy-tools-page,
        .service-yard-tools-page,
        .module-grid-tools-page,
        .fire-compartment-tools-page,
        .facade-shading-tools-page,
        .atrium-smoke-tools-page,
        .access-crane-audit-tools-page,
        .earthworks-tools-page,
        .construction-waste-tools-page,
        .compliance-matrix-tools-page,
        .specification-matrix-tools-page,
        .stack-planner-tools-page,
        .procurement-tracker-tools-page,
        .adjacency-heatmap-tools-page,
        .facade-spec-tools-page,
        .consultant-tracker-tools-page,
        .room-stack-core-tools-page,
        .design-review-dashboard-page,
        .accessibility-route-tools-page,
        .envelope-comparison-tools-page,
        .planning-tools-page,
        .area-program-page,
        .site-analysis-page,
        .solar-study-page,
        .massing-tools-page,
        .adjacency-tools-page,
        .circulation-tools-page {
            min-height: 100vh;
            padding: 3rem 0 5rem;
        }

        .consultant-tracker-tools-page {
            padding-left: clamp(1rem, 2vw, 2rem);
            padding-right: clamp(1rem, 2vw, 2rem);
        }

        .case-study-page {
            min-height: 100vh;
            padding: 3rem 0 5rem;
        }

        .about-page {
            min-height: 100vh;
            padding: 3rem 0 5rem;
        }

        .tools-hub-page {
            min-height: 100vh;
            padding: 3rem 0 5rem;
        }

        .tools-hub {
            min-height: 68vh;
            display: grid;
            place-items: center;
            padding: 3rem 0 4rem;
        }

        .tools-hub-card {
            width: 100%;
            max-width: 760px;
            padding: 3rem;
            border: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 30px;
            background:
                radial-gradient(circle at top right, rgba(10,10,10,0.03), transparent 26%),
                linear-gradient(180deg, rgba(255,255,255,0.98), rgba(249,249,249,0.95));
            box-shadow: var(--shadow-lg);
            text-align: center;
        }

        .tools-hub-card h1 {
            font-size: clamp(2.3rem, 5vw, 4.8rem);
            line-height: 0.95;
            letter-spacing: -0.03em;
            font-weight: 400;
            margin-bottom: 1rem;
            color: var(--text-main);
        }

        .tools-hub-copy {
            max-width: 38rem;
            margin: 0 auto 2rem;
            color: var(--text-muted);
            line-height: 1.8;
        }

        .tools-launchers {
            display: grid;
            gap: 0.85rem;
            width: 100%;
            max-width: none;
            margin: 0;
        }

        .tools-launchers--wide {
            max-width: none;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        }

        .tools-launchers--wide .tool-launcher {
            align-items: flex-start;
            text-align: left;
        }

        .tools-launchers--wide .tool-launcher small {
            text-align: left;
        }

        .tool-launcher {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 0.35rem;
            padding: 1rem 1.15rem;
            border: 1px solid var(--line-color);
            border-radius: 16px;
            background: rgba(255,255,255,0.9);
            text-decoration: none;
            color: var(--text-main);
            transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
        }

        .tool-launcher-title {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.55rem;
            width: 100%;
            font-family: 'Space Grotesk', sans-serif;
            font-size: 1.05rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.06em;
            color: var(--text-main);
        }

        .tools-launchers--wide .tool-launcher-title {
            justify-content: flex-start;
        }

        .tool-icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 2rem;
            height: 2rem;
            border-radius: 999px;
            background: rgba(17, 17, 17, 0.06);
            font-size: 1rem;
            line-height: 1;
            flex: 0 0 auto;
        }

        .tool-launcher small {
            color: #4a4a4a;
            line-height: 1.6;
            font-size: 0.9rem;
            text-align: center;
        }

        .tool-launcher:hover,
        .tool-launcher:focus-visible {
            transform: translateY(-3px);
            border-color: var(--text-main);
            box-shadow: 0 14px 28px rgba(0,0,0,0.06);
            outline: none;
        }

        .tools-hero {
            display: grid;
            grid-template-columns: minmax(0, 1.15fr) minmax(400px, 0.85fr);
            gap: 1.25rem;
            align-items: start;
            margin: 1.75rem 0 2.35rem;
        }

        .tools-panel,
        .tool-card {
            border: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 28px;
            background: linear-gradient(180deg, rgba(255,255,255,0.97), rgba(249,249,249,0.94));
            box-shadow: var(--shadow-lg);
            overflow: hidden;
        }

        .tools-panel {
            padding: 1.35rem clamp(1rem, 2vw, 1.5rem) 1.4rem;
            display: flex;
            flex-direction: column;
            justify-content: flex-start;
            gap: 0.9rem;
        }

        .tools-panel h1 {
            font-size: clamp(2.5rem, 5vw, 5rem);
            line-height: 0.95;
            letter-spacing: -0.03em;
            font-weight: 400;
            color: var(--text-main);
        }

        .tools-panel p {
            max-width: 48rem;
            color: #3b3b3b;
            line-height: 1.8;
        }

        .tools-bullets {
            display: flex;
            flex-wrap: wrap;
            gap: 0.75rem;
            margin-top: 0.75rem;
        }

        .tools-bullets span {
            border: 1px solid var(--line-color);
            padding: 0.45rem 0.8rem;
            font-size: 0.75rem;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            color: var(--text-main);
            background: rgba(255,255,255,0.9);
        }

        .tools-side {
            padding: 1.35rem clamp(1rem, 2vw, 1.5rem) 1.4rem;
            border: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 28px;
            background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(249,249,249,0.92));
            box-shadow: var(--shadow-lg);
            display: flex;
            flex-direction: column;
            justify-content: flex-start;
            gap: 1rem;
        }

        .tools-side > div {
            display: grid;
            gap: 1rem;
        }

        .tools-side h2 {
            font-size: 1.8rem;
            line-height: 1.05;
            color: var(--text-main);
        }

        .tools-side ol {
            color: #4a4a4a;
            padding-left: 1.2rem;
            display: grid;
            gap: 0.65rem;
            line-height: 1.7;
        }

        .tools-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
            gap: 1.25rem;
            align-items: start;
        }

        .tools-grid--single {
            grid-template-columns: 1fr;
            width: 100%;
            justify-content: stretch;
        }

        .sans-xa-page .tools-grid--single {
            grid-template-columns: 1fr;
        }

        .tool-card {
            padding: 1.35rem clamp(1rem, 2vw, 1.5rem) 1.45rem;
            width: 100%;
        }

        .tool-card--wide {
            width: 100%;
            grid-column: 1 / -1;
            padding-left: clamp(1.5rem, 3vw, 3.5rem);
            padding-right: clamp(1.5rem, 3vw, 3.5rem);
        }

        .tools-hub-page .tool-card--wide {
            padding-left: clamp(2.25rem, 4vw, 5rem);
            padding-right: clamp(2.25rem, 4vw, 5rem);
        }

        .tool-card h2 {
            font-size: 1.35rem;
            line-height: 1.1;
            margin-bottom: 0.5rem;
        }

        .tool-card p {
            color: var(--text-muted);
            line-height: 1.7;
            margin-bottom: 1.35rem;
        }

        .tool-note {
            padding: 1.1rem 1.25rem;
            border: 1px solid rgba(10, 10, 10, 0.08);
            border-radius: 20px;
            background: linear-gradient(180deg, rgba(10, 10, 10, 0.03), rgba(10, 10, 10, 0.02));
            color: var(--text-muted);
            font-size: 0.92rem;
            line-height: 1.7;
            margin-bottom: 1rem;
        }

        .page-toolbar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 1rem;
            flex-wrap: wrap;
            margin-bottom: 1rem;
            padding: 0.85rem 1rem;
            border: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 18px;
            background: rgba(255, 255, 255, 0.84);
            box-shadow: 0 12px 32px rgba(0, 0, 0, 0.04);
            backdrop-filter: blur(10px);
        }

        .page-toolbar__label {
            font-family: 'Space Grotesk', sans-serif;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            font-size: 0.72rem;
            color: var(--text-muted);
        }

        .page-toolbar__hint {
            color: var(--text-muted);
            font-size: 0.9rem;
        }

        .tool-help {
            display: grid;
            gap: 1rem;
            margin-bottom: 1.15rem;
            padding: 1.25rem 1.25rem 1.35rem;
            border: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 24px;
            background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(248,248,248,0.92));
            box-shadow: var(--shadow-lg);
        }

        .tool-help__head {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 1rem;
            flex-wrap: wrap;
        }

        .tool-help__head h2 {
            margin-bottom: 0.35rem;
            font-size: clamp(1.35rem, 2.2vw, 1.9rem);
            line-height: 1.05;
        }

        .tool-help__intro {
            max-width: 48rem;
            color: var(--text-muted);
            line-height: 1.7;
            font-size: 0.95rem;
        }

        .tool-help__notice {
            padding: 0.9rem 1rem;
            border: 1px solid rgba(10, 10, 10, 0.08);
            border-radius: 16px;
            background: rgba(10, 10, 10, 0.03);
            color: var(--text-main);
            font-size: 0.9rem;
            line-height: 1.65;
        }

        .tool-help__steps {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
            gap: 0.85rem;
        }

        .tool-help__step {
            padding: 0.95rem 1rem 1rem;
            border: 1px solid rgba(10, 10, 10, 0.08);
            border-radius: 18px;
            background: rgba(255,255,255,0.84);
            display: grid;
            gap: 0.45rem;
        }

        .tool-help__step strong {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.78rem;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: var(--text-main);
        }

        .tool-help__step span {
            color: var(--text-muted);
            line-height: 1.65;
            font-size: 0.92rem;
        }

        .measurement-switch {
            display: inline-flex;
            align-items: center;
            gap: 0.25rem;
            padding: 0.25rem;
            border: 1px solid var(--line-color);
            border-radius: 999px;
            background: rgba(10, 10, 10, 0.03);
        }

        .measurement-switch button {
            border: 0;
            background: transparent;
            color: var(--text-muted);
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.72rem;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            padding: 0.6rem 0.9rem;
            border-radius: 999px;
            cursor: pointer;
            transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
        }

        .measurement-switch button:hover,
        .measurement-switch button:focus-visible {
            color: var(--text-main);
            outline: none;
            transform: translateY(-1px);
        }

        .measurement-switch button.is-active {
            background: var(--text-main);
            color: var(--bg-color);
            box-shadow: 0 10px 18px rgba(0, 0, 0, 0.1);
        }

        html[data-units="imperial"] .unit-label-metric,
        html[data-units="metric"] .unit-label-imperial {
            display: none;
        }

        .invert-standards {
            margin-top: 1rem;
            padding-top: 1rem;
            border-top: 1px solid var(--line-color);
            display: grid;
            gap: 0.9rem;
        }

        .invert-standards-grid {
            margin-bottom: 0;
        }

        .invert-standards .tool-inputs {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .tool-inputs {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 1.15rem;
            margin-bottom: 1.15rem;
        }

        .invert-starts {
            margin-bottom: 0.9rem;
        }

        .invert-segments {
            margin-top: 1rem;
            padding-top: 1rem;
            border-top: 1px solid var(--line-color);
            display: grid;
            gap: 0.9rem;
        }

        .invert-chain-frame {
            padding: 1rem;
            border: 1px solid var(--line-color);
            border-radius: 22px;
            background:
                linear-gradient(180deg, rgba(255,255,255,0.98), rgba(249,249,249,0.95));
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
            overflow-x: auto;
        }

        .invert-segments > #invert-points {
            display: grid;
            grid-auto-flow: column;
            grid-auto-columns: minmax(1200px, max-content);
            gap: 0.6rem;
            overflow: visible;
            align-items: stretch;
            width: max-content;
            min-width: 100%;
        }

        .invert-segments-head,
        .invert-results-head {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 1rem;
            flex-wrap: nowrap;
        }

        .invert-segments-head h3,
        .invert-results-head h3 {
            font-size: 1rem;
            line-height: 1.2;
        }

        .invert-segments-head h3 {
            flex: 1 1 auto;
            min-width: 0;
        }

        .invert-add {
            padding: 0.8rem 1.05rem;
            flex: 0 0 auto;
            white-space: nowrap;
        }

        .invert-alerts {
            margin-top: 1rem;
            display: grid;
            gap: 0.65rem;
        }

        .invert-alert {
            padding: 0.9rem 1rem;
            border-radius: 16px;
            border: 1px solid rgba(180, 90, 0, 0.22);
            background: rgba(255, 236, 214, 0.55);
            color: #7a4b00;
            line-height: 1.6;
            font-size: 0.92rem;
        }

        .invert-alert--strong {
            border-color: rgba(160, 30, 30, 0.22);
            background: rgba(255, 224, 224, 0.75);
            color: #8b1f1f;
        }

        .invert-diagram-panel {
            margin-top: 1.25rem;
            padding-top: 1rem;
            border-top: 1px solid var(--line-color);
            display: grid;
            gap: 0.9rem;
        }

        .invert-diagram-frame {
            padding: 1rem;
            border: 1px solid var(--line-color);
            border-radius: 22px;
            background:
                linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,247,247,0.95));
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
            overflow: hidden;
        }

        .invert-diagram-frame svg {
            width: 100%;
            height: auto;
            display: block;
        }

        .invert-diagram-grid {
            stroke: rgba(0, 0, 0, 0.07);
            stroke-width: 1;
        }

        .invert-diagram-axis {
            stroke: rgba(0, 0, 0, 0.16);
            stroke-width: 1.2;
        }

        .invert-diagram-ground {
            stroke: rgba(25, 25, 25, 0.45);
            stroke-width: 2;
            stroke-dasharray: 8 7;
            fill: none;
        }

        .invert-diagram-cover {
            stroke: rgba(122, 75, 0, 0.45);
            stroke-width: 2;
            stroke-dasharray: 5 7;
            fill: none;
        }

        .invert-diagram-pipe {
            stroke: var(--text-main);
            stroke-width: 4;
            fill: none;
        }

        .invert-diagram-node {
            fill: var(--text-main);
            stroke: #fff;
            stroke-width: 2;
        }

        .invert-diagram-cover-node {
            fill: #7a4b00;
            stroke: #fff;
            stroke-width: 2;
        }

        .invert-diagram-label {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 12px;
            letter-spacing: 0.04em;
            fill: var(--text-muted);
        }

        .invert-diagram-value {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 12px;
            fill: var(--text-main);
        }

        .invert-diagram-title {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 13px;
            font-weight: 700;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            fill: var(--text-main);
        }

        .invert-point {
            display: grid;
            grid-template-columns: minmax(110px, 140px) minmax(0, 3fr) minmax(0, 1fr) auto;
            gap: 0.65rem;
            align-items: start;
            padding: 0.75rem;
            border: 1px solid var(--line-color);
            border-radius: 18px;
            background: rgba(255, 255, 255, 0.78);
            min-width: 0;
            flex: 0 0 auto;
            width: 100%;
            box-shadow: 0 10px 24px rgba(0,0,0,0.03);
        }

        .invert-point-head {
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            align-items: flex-start;
            gap: 0.75rem;
        }

        .invert-point-role-wrap {
            display: flex;
            align-items: center;
            justify-content: flex-end;
            min-width: 72px;
        }

        .invert-point-values {
            display: grid;
            grid-template-columns: repeat(5, minmax(88px, 1fr));
            gap: 0.5rem;
            min-width: 0;
        }

        .invert-point-deltas {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 0.5rem;
            min-width: 0;
        }

        .invert-value {
            padding: 0.55rem 0.65rem;
            border: 1px solid rgba(10, 10, 10, 0.08);
            border-radius: 14px;
            background: rgba(255, 255, 255, 0.85);
            display: grid;
            gap: 0.25rem;
            min-width: 0;
        }

        .invert-value span {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.68rem;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: var(--text-muted);
        }

        .invert-value strong {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.95rem;
            line-height: 1.2;
            color: var(--text-main);
        }

        .invert-value--delta strong {
            font-size: 0.88rem;
        }

        .invert-role {
            min-width: 72px;
            padding: 0.5rem 0.7rem;
            border: 1px solid var(--line-color);
            border-radius: 999px;
            background: rgba(255,255,255,0.9);
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.7rem;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            color: var(--text-main);
            appearance: none;
        }

        .invert-role--badge {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 72px;
            padding: 0.55rem 0.7rem;
            border-radius: 999px;
            background: rgba(10,10,10,0.04);
            border: 1px solid rgba(10,10,10,0.08);
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.7rem;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            color: var(--text-main);
        }

        .invert-point .tool-field {
            min-width: 0;
        }

        .invert-point select {
            width: 100%;
            padding: 1rem 0;
            background: transparent;
            border: none;
            border-bottom: 1px solid var(--line-color);
            color: var(--text-main);
            font-family: 'Inter', sans-serif;
            font-size: 1rem;
        }

        .invert-point select:focus {
            outline: none;
            border-bottom-color: var(--text-main);
        }

        .invert-point label {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .invert-point .invert-point-index {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.68rem;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: var(--text-muted);
            margin-bottom: 0.4rem;
        }

        .invert-point .invert-remove {
            align-self: center;
            padding: 0.6rem 0.85rem;
            flex: 0 0 auto;
        }

        .invert-remove[disabled] {
            opacity: 0.45;
            cursor: not-allowed;
        }

        .invert-results {
            margin-top: 1.25rem;
            padding-top: 1rem;
            border-top: 1px solid var(--line-color);
            display: grid;
            gap: 0.9rem;
        }

        .invert-table {
            display: grid;
            gap: 0.6rem;
            font-variant-numeric: tabular-nums;
        }

        .invert-table-row {
            display: grid;
            grid-template-columns: 1.2fr repeat(5, minmax(0, 1fr));
            gap: 0.6rem;
            align-items: center;
            padding: 0.85rem 0.9rem;
            border: 1px solid var(--line-color);
            border-radius: 14px;
            background: rgba(255, 255, 255, 0.82);
            font-size: 0.9rem;
        }

        .invert-table-row:not(.invert-table-row--head):nth-child(even) {
            background: rgba(250, 250, 250, 0.98);
        }

        .invert-table-row--head {
            background: rgba(10, 10, 10, 0.04);
            font-family: 'Space Grotesk', sans-serif;
            text-transform: uppercase;
            letter-spacing: 0.06em;
            font-size: 0.7rem;
            color: var(--text-muted);
        }

        .invert-table-row span {
            overflow-wrap: anywhere;
        }

        .tool-field {
            position: relative;
        }

        .tool-field input {
            width: 100%;
            padding: 1rem 0;
            background: transparent;
            border: none;
            border-bottom: 1px solid var(--line-color);
            color: var(--text-main);
            font-family: 'Inter', sans-serif;
            font-size: 1rem;
            transition: border-color 0.3s;
        }

        .tool-field input:focus {
            outline: none;
            border-bottom-color: var(--text-main);
        }

        .tool-field label {
            display: block;
            margin-bottom: 0.4rem;
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.72rem;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: var(--text-muted);
        }

        .program-table-frame {
            display: grid;
            gap: 0.75rem;
            margin-top: 1rem;
        }

        .program-table-head,
        .program-row {
            display: grid;
            grid-template-columns: minmax(180px, 2fr) minmax(120px, 1fr) minmax(150px, 1fr) minmax(90px, 0.5fr) minmax(110px, auto);
            gap: 0.75rem;
            align-items: center;
        }

        .program-table-head {
            padding: 0 0.4rem;
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.74rem;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: var(--text-muted);
        }

        .program-rows {
            display: grid;
            gap: 0.75rem;
        }

        .program-row {
            padding: 0.8rem;
            border: 1px solid var(--line-color);
            border-radius: 20px;
            background: rgba(255,255,255,0.92);
        }

        .program-input {
            width: 100%;
            border: 1px solid var(--line-color);
            background: rgba(255,255,255,0.95);
            padding: 0.8rem 0.85rem;
            font-family: 'Inter', sans-serif;
            color: var(--text-main);
            border-radius: 14px;
        }

        .grid-schedule .program-table-head,
        .grid-schedule .program-row {
            grid-template-columns: minmax(140px, 1.1fr) minmax(120px, 0.8fr) minmax(110px, auto);
        }

        .facade-head-grid,
        .facade-row {
            grid-template-columns: minmax(180px, 1.4fr) minmax(120px, 0.8fr) minmax(120px, 0.8fr) minmax(110px, auto);
        }

        .daylight-head-grid,
        .daylight-row {
            grid-template-columns: minmax(180px, 1.4fr) minmax(120px, 0.8fr) minmax(120px, 0.8fr) minmax(110px, auto);
        }

        .parking-head-grid,
        .parking-row {
            grid-template-columns: minmax(180px, 1.4fr) minmax(120px, 0.8fr) minmax(120px, 0.8fr) minmax(110px, auto);
        }

        .egress-head-grid,
        .egress-row {
            grid-template-columns: minmax(180px, 1.4fr) minmax(120px, 0.8fr) minmax(120px, 0.8fr) minmax(110px, auto);
        }

        .orientation-head-grid,
        .orientation-row {
            grid-template-columns: minmax(180px, 1.4fr) minmax(120px, 0.8fr) minmax(120px, 0.8fr) minmax(110px, auto);
        }

        .section-head-grid,
        .section-row {
            grid-template-columns: minmax(180px, 1.4fr) minmax(120px, 0.8fr) minmax(120px, 0.8fr) minmax(110px, auto);
        }

        .phasing-head-grid,
        .phase-row {
            grid-template-columns: minmax(180px, 1.4fr) minmax(120px, 0.8fr) minmax(120px, 0.8fr) minmax(110px, auto);
        }

        .roof-head-grid,
        .roof-row {
            grid-template-columns: minmax(180px, 1.4fr) minmax(120px, 0.8fr) minmax(120px, 0.8fr) minmax(110px, auto);
        }

        .program-weight {
            font-family: 'Space Grotesk', sans-serif;
            text-align: center;
            font-weight: 700;
            letter-spacing: 0.03em;
        }

        .program-remove {
            padding: 0.75rem 0.9rem;
            white-space: nowrap;
        }

        .adj-node {
            filter: drop-shadow(0 10px 20px rgba(0,0,0,0.08));
        }

        .adj-node--public {
            fill: rgba(10, 10, 10, 0.10);
            stroke: rgba(10, 10, 10, 0.55);
            stroke-width: 2;
        }

        .adj-node--private {
            fill: rgba(10, 10, 10, 0.06);
            stroke: rgba(10, 10, 10, 0.7);
            stroke-width: 2;
        }

        .adj-node--service {
            fill: rgba(10, 10, 10, 0.14);
            stroke: rgba(10, 10, 10, 0.8);
            stroke-width: 2;
        }

        .tool-actions {
            display: flex;
            gap: 0.75rem;
            align-items: center;
            flex-wrap: wrap;
            margin-top: 0.5rem;
        }

        .tool-output {
            margin-top: 1.25rem;
            padding: 1rem;
            border: 1px solid var(--line-color);
            border-radius: 18px;
            background: rgba(255,255,255,0.9);
            display: grid;
            gap: 0.35rem;
        }

        .tool-output strong {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 1.15rem;
            line-height: 1.2;
        }

        .tool-output span {
            color: var(--text-muted);
            font-size: 0.9rem;
            line-height: 1.6;
        }

        .xa-workspace {
            display: grid;
            gap: 1rem;
        }

        .xa-hero-metrics {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 0.85rem;
        }

        .xa-hero-metric,
        .xa-summary-card,
        .xa-note-card {
            padding: 0.95rem 1rem;
            border: 1px solid var(--line-color);
            border-radius: 18px;
            background: rgba(255,255,255,0.82);
            box-shadow: 0 10px 24px rgba(0,0,0,0.03);
        }

        .xa-hero-metric span,
        .xa-summary-card span {
            display: block;
            margin-bottom: 0.3rem;
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.7rem;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: var(--text-muted);
        }

        .xa-hero-metric strong,
        .xa-summary-card strong {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 1rem;
            line-height: 1.25;
            color: var(--text-main);
        }

        .xa-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 1rem;
            margin-top: 0.5rem;
        }

        .xa-panel {
            padding: 1rem;
            border: 1px solid var(--line-color);
            border-radius: 22px;
            background: rgba(255,255,255,0.82);
            display: grid;
            gap: 0.9rem;
            min-width: 0;
        }

        .xa-inputs {
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 0.85rem;
            margin-bottom: 0;
        }

        .xa-summary-strip {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
            gap: 0.85rem;
            margin-top: 0.25rem;
        }

        .xa-results,
        .xa-diagram-panel {
            display: grid;
            gap: 0.9rem;
            margin-top: 0.5rem;
        }

        .xa-checklist {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 0.75rem;
        }

        .xa-check {
            padding: 0.9rem 1rem;
            border: 1px solid var(--line-color);
            border-radius: 18px;
            background: rgba(255,255,255,0.85);
            display: grid;
            gap: 0.5rem;
        }

        .xa-check--pass {
            border-color: rgba(33, 109, 74, 0.2);
            background: rgba(233, 247, 240, 0.9);
        }

        .xa-check--fail {
            border-color: rgba(160, 30, 30, 0.18);
            background: rgba(255, 236, 236, 0.95);
        }

        .xa-check-title {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.8rem;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: var(--text-main);
        }

        .xa-check-values {
            display: grid;
            gap: 0.25rem;
            color: var(--text-muted);
            font-size: 0.9rem;
        }

        .xa-check-values strong {
            color: var(--text-main);
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.9rem;
            letter-spacing: 0.04em;
        }

        .xa-diagram-frame {
            padding: 1rem;
            border: 1px solid var(--line-color);
            border-radius: 22px;
            background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,247,247,0.95));
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
            overflow: hidden;
        }

        .xa-diagram-frame svg {
            width: 100%;
            height: auto;
            display: block;
        }

        .xa-note-card h3 {
            margin-bottom: 0.35rem;
            font-size: 0.95rem;
        }

        .xa-note-card p {
            margin: 0;
        }

        .xa-notes {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 0.85rem;
        }

        .xa-standards {
            margin-top: 0.25rem;
            padding: 1rem;
            border: 1px solid var(--line-color);
            border-radius: 22px;
            background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(249,249,249,0.92));
            display: grid;
            gap: 0.9rem;
        }

        .xa-standards-head {
            display: grid;
            gap: 0.35rem;
        }

        .xa-standards-head h3 {
            font-size: 1rem;
        }

        .xa-standards-head p {
            margin: 0;
            color: var(--text-muted);
            line-height: 1.6;
        }

        .xa-standards-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 0.75rem;
        }

        .xa-standard-item {
            padding: 0.9rem 0.95rem;
            border: 1px solid rgba(10,10,10,0.08);
            border-radius: 16px;
            background: rgba(255,255,255,0.88);
            display: grid;
            gap: 0.35rem;
        }

        .xa-standard-item span {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.7rem;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: var(--text-muted);
        }

        .xa-standard-item strong {
            font-size: 0.92rem;
            line-height: 1.55;
            color: var(--text-main);
            font-weight: 500;
        }

        .xa-bar {
            transition: fill 0.25s ease;
        }

        @media (max-width: 1024px) {
            .hero {
                grid-template-columns: 1fr;
                gap: 3rem;
                padding-top: 2rem;
            }
            .hero-image-wrapper {
            overflow: hidden;
                height: 400px;
            }
            .hero-metrics {
                grid-template-columns: 1fr;
                max-width: 100%;
            }
            .grid { grid-template-columns: 1fr; }
            .about-layout {
                grid-template-columns: 1fr;
            }
            .credentials-grid,
            .reference-strip {
                grid-template-columns: 1fr;
            }
            .about-hero {
                grid-template-columns: 1fr;
            }
            .about-grid,
            .team-grid,
            .about-contact {
                grid-template-columns: 1fr;
            }
            .practice-layout {
                grid-template-columns: 1fr;
            }
            .case-study-hero {
                grid-template-columns: 1fr;
            }
            .case-study-stats {
                grid-template-columns: 1fr 1fr;
            }
            .case-study-grid,
            .case-study-gallery {
                grid-template-columns: 1fr;
            }
            .arch-card { padding: 2rem; }
            .hero::before { display: none; }
            .projects-grid { column-count: 2; }
            .featured-project,
            .contact-layout {
                grid-template-columns: 1fr;
            }
            .tools-hero,
            .tools-grid {
                grid-template-columns: 1fr;
            }
            .tools-launchers--wide {
                grid-template-columns: 1fr;
            }
            .tools-grid--single {
                grid-template-columns: 1fr;
                justify-content: stretch;
            }
            .xa-grid,
            .xa-summary-strip,
            .xa-hero-metrics,
            .xa-notes,
            .xa-standards-grid {
                grid-template-columns: 1fr 1fr;
            }
            .xa-checklist {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 768px) {
            .container { padding: 0 0.75rem; }
            .section-header {
                grid-template-columns: 1fr;
                justify-items: start;
                gap: 0.8rem;
            }
            .section-header p {
                justify-self: start;
            }
            footer { flex-direction: column; gap: 2rem; text-align: center; }
            .projects-grid { column-count: 1; }
            .practice-grid {
                grid-template-columns: 1fr;
            }
            .hero-image-wrapper {
                transform: rotate(0deg);
            }
            .hero-image-tag {
                top: 0.75rem;
                left: 0.75rem;
            }
            .project-card {
                --card-tilt: 0deg;
                --card-shift: 0px;
            }
            .legal-header {
                flex-direction: column;
                align-items: flex-start;
                gap: 1rem;
            }
            .featured-project-content,
            .contact-aside,
            .contact-form {
                padding: 1.5rem;
            }
            .featured-project-actions {
                flex-direction: column;
                align-items: flex-start;
            }
            .tool-inputs {
                grid-template-columns: 1fr;
            }
            .invert-point .invert-remove {
                justify-self: stretch;
                width: 100%;
            }
            .invert-table-row {
                grid-template-columns: 1fr 1fr;
            }
            .invert-table-row--head {
                display: none;
            }
            .invert-diagram-frame {
                padding: 0.65rem;
            }
            .invert-point-values {
                grid-template-columns: 1fr;
            }
            .invert-point-deltas {
                grid-template-columns: 1fr;
            }
            .invert-point {
                grid-template-columns: 1fr;
                padding: 0.75rem;
                width: auto;
            }
            .invert-role {
                min-width: 64px;
            }
            .software-logos {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
            .software-logos {
                grid-template-columns: 1fr;
            }
            .case-study-stats {
                grid-template-columns: 1fr;
            }
            .about-hero-copy,
            .about-hero-panel,
            .about-section {
                padding: 1.5rem;
            }
            .about-hero-copy h1 {
                font-size: clamp(2.4rem, 13vw, 4rem);
            }
            .case-study-copy,
            .case-study-section,
            .case-study-note {
                padding: 1.5rem;
            }
            .case-study-copy h1 {
                font-size: clamp(2.4rem, 13vw, 4rem);
            }
            .case-study-media img {
                min-height: 320px;
            }
            .xa-grid,
            .xa-summary-strip,
            .xa-hero-metrics,
            .xa-notes,
            .xa-standards-grid,
            .xa-inputs,
            .xa-checklist {
                grid-template-columns: 1fr;
            }
        }

        /* Custom Cursor */
        body {
            cursor: auto;
        }
        .custom-cursor {
            position: fixed;
            top: 0; left: 0;
            width: 20px; height: 20px;
            border: 1px solid var(--text-main);
            border-radius: 50%;
            pointer-events: none;
            z-index: 9999;
            transform: translate(-50%, -50%);
            transition: width 0.3s, height 0.3s, background-color 0.3s, opacity 0.3s;
            mix-blend-mode: normal;
            background: rgba(255,255,255,0.1);
        }
        .custom-cursor.hovering {
            width: 50px; height: 50px;
            background-color: var(--text-main);
            opacity: 0.45;
        }
        
        .magnetic-btn {
            display: inline-block;
        }

        /* Contact Form */
        .contact {
            padding: 7rem 0;
            border-top: 1px solid var(--line-color);
        }

        .contact-layout {
            display: grid;
            grid-template-columns: 0.9fr 1.1fr;
            gap: 1.25rem;
            align-items: start;
        }

        .contact-aside {
            border: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 28px;
            padding: 2.5rem;
            background: linear-gradient(180deg, rgba(255,255,255,0.97), rgba(249,249,249,0.94));
            box-shadow: var(--shadow-lg);
        }

        .contact-aside h3 {
            font-size: clamp(1.6rem, 3vw, 2.5rem);
            line-height: 1.05;
            margin-bottom: 1rem;
        }

        .contact-aside p {
            color: var(--text-muted);
            line-height: 1.8;
        }

        .contact-notes {
            display: grid;
            gap: 1rem;
            margin-top: 2rem;
        }

        .contact-notes div {
            padding-top: 1rem;
            border-top: 1px solid var(--line-color);
            display: flex;
            flex-direction: column;
            gap: 0.35rem;
        }

        .contact-notes span {
            color: var(--text-muted);
            font-size: 0.75rem;
            letter-spacing: 0.08em;
            text-transform: uppercase;
        }

        .contact-notes strong {
            font-family: 'Space Grotesk', sans-serif;
            font-weight: 500;
        }

        .contact-form {
            max-width: none;
            display: flex;
            flex-direction: column;
            gap: 2rem;
            padding: 2.5rem;
            border: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 28px;
            background: rgba(255,255,255,0.86);
            box-shadow: var(--shadow-lg);
        }

        .contact-status {
            min-height: 1.2rem;
            color: var(--text-muted);
            font-size: 0.9rem;
        }

        .software-strip {
            padding: 3rem 0 5rem;
            border-top: 1px solid var(--line-color);
            display: grid;
            gap: 1.5rem;
        }

        .software-strip-label {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.75rem;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            color: var(--text-muted);
        }

        .software-logos {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 0.5rem;
        }

        .software-logos img {
            display: block;
            width: 30%;
            min-height: 34px;
            margin: 0 auto;
            padding: 0.25rem 0.35rem;
            border: 1px solid var(--line-color);
            background: rgba(255,255,255,0.85);
            object-fit: contain;
            object-position: center;
        }
        .form-group {
            position: relative;
        }
        .form-group input, .form-group textarea {
            width: 100%;
            padding: 1rem 0;
            background: transparent;
            border: none;
            border-bottom: 1px solid var(--line-color);
            color: var(--text-main);
            font-family: 'Inter', sans-serif;
            font-size: 1rem;
            transition: border-color 0.3s;
            resize: none;
        }
        .form-group input:focus, .form-group textarea:focus {
            outline: none;
            border-bottom-color: var(--text-main);
        }
        .form-group label {
            position: absolute;
            left: 0;
            top: 1rem;
            color: var(--text-muted);
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.8rem;
            pointer-events: none;
            transition: transform 0.3s, font-size 0.3s, color 0.3s;
        }
        .form-group input:focus ~ label,
        .form-group input:not(:placeholder-shown) ~ label,
        .form-group textarea:focus ~ label,
        .form-group textarea:not(:placeholder-shown) ~ label {
            transform: translateY(-1.5rem);
            font-size: 0.7rem;
            color: var(--text-main);
        }

        /* Lightbox */
        .lightbox {
            position: fixed;
            top: 0; left: 0; width: 100vw; height: 100vh;
            background: rgba(0,0,0,0.9);
            z-index: 10000;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.4s ease;
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
        }
        .lightbox.active {
            opacity: 1;
            pointer-events: auto;
        }
        .lightbox-img {
            max-width: 90vw;
            max-height: 80vh;
            object-fit: contain;
            filter: grayscale(100%) contrast(1.1);
        }
        .lightbox-caption {
            color: #ffffff;
            margin-top: 2rem;
            font-family: 'Space Grotesk', sans-serif;
            letter-spacing: 0.1em;
        }
        .lightbox-close {
            position: absolute;
            top: 2rem; right: 3rem;
            background: none; border: none;
            color: #ffffff;
            font-size: 3rem;
            cursor: pointer;
            transition: transform 0.3s;
        }
        .lightbox-close:hover {
            transform: scale(1.1);
        }

        /* Case Study */
        .case-study-hero {
            padding: 4rem 0 3rem;
            display: grid;
            grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
            gap: 1.25rem;
            align-items: stretch;
        }

        .case-study-copy,
        .case-study-media,
        .case-study-section,
        .case-study-note {
            border: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 28px;
            background: linear-gradient(180deg, rgba(255,255,255,0.97), rgba(248,248,248,0.94));
            box-shadow: var(--shadow-lg);
        }

        .case-study-copy {
            padding: 2.5rem;
            display: grid;
            gap: 1rem;
            align-content: start;
        }

        .case-study-copy h1 {
            font-size: clamp(2.7rem, 5.2vw, 5.2rem);
            line-height: 0.92;
            letter-spacing: -0.04em;
            font-weight: 400;
        }

        .case-study-copy p {
            color: var(--text-muted);
            line-height: 1.8;
            max-width: 44rem;
        }

        .case-study-meta {
            display: flex;
            flex-wrap: wrap;
            gap: 0.75rem;
        }

        .case-study-meta span {
            border: 1px solid var(--line-color);
            padding: 0.45rem 0.8rem;
            font-size: 0.75rem;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            color: var(--text-muted);
            background: rgba(255,255,255,0.72);
        }

        .case-study-media {
            padding: 1rem;
            overflow: hidden;
        }

        .case-study-media img {
            width: 100%;
            height: 100%;
            min-height: 420px;
            object-fit: cover;
            object-position: center;
            display: block;
            border-radius: 20px;
        }

        .case-study-stats {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 1rem;
            margin-bottom: 1rem;
        }

        .case-study-stat {
            border: 1px solid rgba(229, 229, 229, 0.95);
            border-radius: 20px;
            background: rgba(255,255,255,0.92);
            padding: 1rem;
            display: grid;
            gap: 0.35rem;
        }

        .case-study-stat span {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.72rem;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: var(--text-muted);
        }

        .case-study-stat strong {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 0.95rem;
            line-height: 1.4;
            font-weight: 500;
        }

        .case-study-sections {
            display: grid;
            gap: 1rem;
        }

        .case-study-section {
            padding: 2rem;
            display: grid;
            gap: 1rem;
        }

        .case-study-section h2 {
            font-size: 1.5rem;
            line-height: 1.1;
            font-weight: 600;
            color: var(--text-main);
            letter-spacing: -0.02em;
            margin-bottom: 0.6rem;
        }

        .case-study-section p {
            color: var(--text-muted);
            line-height: 1.85;
        }

        .case-study-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 1rem;
        }

        .case-study-note {
            padding: 1.25rem 1.25rem 1.4rem;
            display: grid;
            gap: 0.55rem;
        }

        .case-study-note strong {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 1rem;
            line-height: 1.4;
        }

        .case-study-gallery {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 1rem;
        }

        .case-study-gallery img {
            width: 100%;
            height: 260px;
            object-fit: cover;
            display: block;
            border-radius: 22px;
            border: 1px solid rgba(229,229,229,0.95);
            box-shadow: 0 16px 36px rgba(0,0,0,0.04);
        }

        .case-study-cta {
            display: flex;
            flex-wrap: wrap;
            gap: 0.8rem;
            align-items: center;
        }

        .btn-icon,
        .action-icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 1.45rem;
            height: 1.45rem;
            border-radius: 999px;
            background: rgba(17, 17, 17, 0.06);
            font-size: 0.85rem;
            line-height: 1;
            flex: 0 0 auto;
        }

        .case-study-cta a .link-label,
        .tool-card .link-label {
            white-space: nowrap;
        }

/* Preloader */
.preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: #0a0a0a;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
}
.preloader-percent {
    color: #ffffff;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 5rem;
    font-weight: 300;
}

/* Disable Custom Cursor on Mobile/Touch */
@media (pointer: coarse) {
    .custom-cursor {
        display: none !important;
    }
    body {
        cursor: auto !important;
    }
}
