) ============================================================ */ body.day { --void: #ece6d6; --ink: #d4cdb8; --teal: #c2bba4; --teal-mid: #a09a85; --teal-glow: #b89e6e; --char: #2a261d; --mist: #3a352a; --fog: #50473a; --silver: #4a4434; --silver-dim: rgba(38, 32, 22, 0.62); --silver-fad: rgba(38, 32, 22, 0.20); --silver-edge: rgba(38, 32, 22, 0.08); --bone: #1a1612; --platinum: #28231b; --copper: #6e4a26; --copper-warm: #8a5b30; --teal-cool: #4a6d72; } body.day::selection { background: var(--copper); color: var(--bone); } /* ============================================================ NEW — THEME TOGGLE BUTTON ============================================================ */ .theme-toggle { position: fixed; top: 28px; right: 36px; z-index: 200; display: inline-flex; align-items: center; gap: 10px; padding: 9px 16px 9px 12px; background: rgba(15, 18, 22, 0.65); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid var(--silver-fad); border-radius: 100px; color: var(--bone); cursor: none; font-family: var(--mono); font-size: 9px; letter-spacing: 0.32em; text-transform: uppercase; transition: border-color 0.4s, background 0.4s, transform 0.4s var(--ease-out); pointer-events: auto; } .theme-toggle:hover { border-color: var(--bone); background: rgba(15, 18, 22, 0.85); transform: translateY(-1px); } body.day .theme-toggle { background: rgba(248, 244, 232, 0.7); border-color: rgba(38, 32, 22, 0.25); } body.day .theme-toggle:hover { background: rgba(248, 244, 232, 0.95); border-color: var(--bone); } .theme-icon { width: 18px; height: 18px; display: grid; place-items: center; } .theme-icon svg { width: 16px; height: 16px; } .theme-icon-night { display: grid; } .theme-icon-day { display: none; } body.day .theme-icon-night { display: none; } body.day .theme-icon-day { display: grid; } .theme-label { color: var(--bone); } @media (max-width: 900px) { .theme-toggle { top: 18px; right: 18px; padding: 8px 14px 8px 10px; } } @media (max-width: 600px) { .theme-toggle { padding: 7px 10px; gap: 6px; } .theme-label { display: none; } } /* ============================================================ NEW — NAV LOGO IMAGE ============================================================ */ .nav-logo-img { height: 64px; width: auto; display: block; filter: brightness(1); transition: filter 0.4s, height 0.4s var(--ease-out); } body.day .nav-logo-img { filter: invert(1) brightness(0.15); } @media (max-width: 900px) { .nav-logo-img { height: 52px; } } @media (max-width: 600px) { .nav-logo-img { height: 42px; } } /* ============================================================ NEW — VERTICAL LOGO (replaces SVG emblems in Realty/Living/Catalyst) ============================================================ */ .world-logo { margin-bottom: 36px; height: 56px; width: auto; display: block; opacity: 0.9; transition: filter 0.4s; } body.day .world-logo { filter: invert(1) brightness(0.15); } @media (max-width: 700px) { .world-logo { height: 44px; } } /* ============================================================ NEW — STATS BAR (after the three verticals) ============================================================ */ .s-stats { height: 70vh; align-items: center; } .stats-block { width: 100%; } .stats-tag { font-family: var(--mono); font-size: 10px; letter-spacing: 0.36em; text-transform: uppercase; color: var(--copper-warm); margin-bottom: 30px; display: inline-flex; align-items: center; gap: 12px; justify-content: center; } .stats-tag::before, .stats-tag::after { content: ''; width: 28px; height: 1px; background: var(--copper-warm); } .stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid var(--silver-edge); border-bottom: 1px solid var(--silver-edge); text-align: center; } @media (max-width: 900px) { .stats-grid { grid-template-columns: repeat(2, 1fr); } } .stat { padding: 56px 24px; border-right: 1px solid var(--silver-edge); position: relative; transition: background 0.5s; } .stat:last-child { border-right: none; } @media (max-width: 900px) { .stat:nth-child(2n) { border-right: none; } .stat:nth-child(-n+2) { border-bottom: 1px solid var(--silver-edge); } } .stat:hover { background: rgba(212, 176, 138, 0.04); } .stat-num { font-family: var(--display); font-weight: 300; font-size: clamp(54px, 7vw, 96px); line-height: 1; letter-spacing: -0.04em; color: var(--bone); display: flex; align-items: baseline; justify-content: center; gap: 4px; } .stat-num .plus { font-family: var(--serif); font-style: italic; font-size: 0.4em; color: var(--copper-warm); font-weight: 300; } .stat-label { margin-top: 18px; font-family: var(--mono); font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--silver-dim); } /* ============================================================ NEW — HORIZONTAL PROJECTS SHOWCASE ============================================================ */ .s-served { height: auto; min-height: 130vh; padding: 18vh 0 12vh; display: block; } .served-head { display: grid; grid-template-columns: 1.4fr 1fr; align-items: end; gap: 60px; margin-bottom: 80px; } @media (max-width: 900px) { .served-head { grid-template-columns: 1fr; } } .served-head .tag { font-family: var(--mono); font-size: 10px; letter-spacing: 0.36em; text-transform: uppercase; color: var(--copper-warm); margin-bottom: 24px; display: flex; align-items: center; gap: 12px; } .served-head .tag::before { content: ''; width: 24px; height: 1px; background: var(--copper-warm); } .served-head h2 { font-family: var(--display); font-weight: 300; font-size: clamp(48px, 6.4vw, 108px); line-height: 0.94; letter-spacing: -0.025em; color: var(--bone); } .served-head h2 em { font-family: var(--serif); font-style: italic; font-weight: 300; color: var(--silver); } .served-head p { font-family: var(--serif); font-style: italic; font-size: 18px; line-height: 1.5; color: var(--silver-dim); max-width: 380px; justify-self: end; } @media (max-width: 900px) { .served-head p { justify-self: start; } } .h-scroll-wrap { position: relative; margin: 0 -48px; padding: 0 48px; } @media (max-width: 768px) { .h-scroll-wrap { margin: 0 -24px; padding: 0 24px; } } .h-scroll { display: flex; gap: 24px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; padding-bottom: 8px; scrollbar-width: thin; scrollbar-color: var(--silver-fad) transparent; } .h-scroll::-webkit-scrollbar { height: 6px; } .h-scroll::-webkit-scrollbar-track { background: transparent; } .h-scroll::-webkit-scrollbar-thumb { background: var(--silver-fad); border-radius: 3px; } .h-scroll::-webkit-scrollbar-thumb:hover { background: var(--copper-warm); } .proj-card { flex: 0 0 auto; width: clamp(300px, 40vw, 520px); scroll-snap-align: start; position: relative; display: block; text-decoration: none; color: inherit; cursor: none; transition: transform 0.6s var(--ease-out); } .proj-card:hover { transform: translateY(-6px); } .proj-card-img { width: 100%; aspect-ratio: 4 / 5; background: var(--char); border: 1px solid var(--silver-edge); background-size: cover; background-position: center; position: relative; overflow: hidden; } .proj-card-img::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(7,8,10,0.85) 100%); pointer-events: none; z-index: 1; } .proj-card-img-empty { position: absolute; inset: 0; display: grid; place-items: center; color: var(--silver-dim); font-family: var(--mono); font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase; } .proj-card-img-empty::before { content: ''; position: absolute; inset: 28px; border: 1px dashed var(--silver-fad); } .proj-card-meta { position: absolute; left: 24px; right: 24px; bottom: 22px; z-index: 2; display: flex; justify-content: space-between; align-items: end; } .proj-card-text .year { font-family: var(--mono); font-size: 10px; letter-spacing: 0.32em; color: var(--copper-warm); text-transform: uppercase; margin-bottom: 8px; display: block; } .proj-card-text .title { font-family: var(--display); font-weight: 300; font-size: clamp(22px, 2.4vw, 32px); line-height: 1.05; letter-spacing: -0.015em; color: var(--bone); text-shadow: 0 4px 16px rgba(0,0,0,0.6); } .proj-card-text .title em { font-family: var(--serif); font-style: italic; color: var(--copper-warm); } .proj-card-text .loc { margin-top: 6px; font-family: var(--mono); font-size: 9px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--silver-dim); } .proj-card-arrow { width: 38px; height: 38px; border: 1px solid var(--silver-fad); border-radius: 50%; display: grid; place-items: center; background: rgba(7, 8, 10, 0.6); backdrop-filter: blur(6px); flex-shrink: 0; transition: all 0.4s var(--ease-out); } .proj-card:hover .proj-card-arrow { background: var(--copper-warm); border-color: var(--copper-warm); } .proj-card-arrow svg { width: 12px; height: 12px; stroke: var(--bone); transition: transform 0.4s var(--ease-out), stroke 0.4s; } .proj-card:hover .proj-card-arrow svg { stroke: var(--void); transform: rotate(-45deg); } .h-scroll-hint { display: flex; align-items: center; gap: 12px; margin-top: 30px; font-family: var(--mono); font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--silver-dim); } .h-scroll-hint .arrow { width: 28px; height: 1px; background: var(--silver-dim); position: relative; } .h-scroll-hint .arrow::after { content: ''; position: absolute; right: 0; top: -3px; border-top: 1px solid var(--silver-dim); border-right: 1px solid var(--silver-dim); width: 6px; height: 6px; transform: rotate(45deg); transform-origin: right; } /* ============================================================ NEW — TEAM SECTION (chapter 8) ============================================================ */ .s-team { height: 130vh; align-items: center; } .team-head { text-align: center; margin-bottom: 80px; } .team-head .tag { display: inline-flex; align-items: center; gap: 12px; font-family: var(--mono); font-size: 10px; letter-spacing: 0.36em; text-transform: uppercase; color: var(--copper-warm); margin-bottom: 24px; } .team-head .tag::before, .team-head .tag::after { content: ''; width: 28px; height: 1px; background: var(--copper-warm); } .team-head h2 { font-family: var(--display); font-weight: 300; font-size: clamp(40px, 6vw, 96px); line-height: 0.96; letter-spacing: -0.02em; color: var(--bone); } .team-head h2 em { font-family: var(--serif); font-style: italic; font-weight: 300; color: var(--copper-warm); } .team-head p { margin-top: 22px; font-family: var(--serif); font-style: italic; font-size: 20px; color: var(--silver-dim); } .team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; } @media (max-width: 1100px) { .team-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 600px) { .team-grid { grid-template-columns: 1fr; } } .team-card { position: relative; background: linear-gradient(180deg, rgba(20,22,26,0.6), rgba(8,10,12,0.4)); border: 1px solid var(--silver-edge); padding: 24px 22px 28px; cursor: none; transition: border-color 0.5s, transform 0.6s var(--ease-out); } .team-card:hover { border-color: var(--copper-warm); transform: translateY(-4px); } .team-photo { width: 100%; aspect-ratio: 1 / 1; background: var(--char); margin-bottom: 22px; position: relative; overflow: hidden; background-size: cover; background-position: center; } .team-photo::after { content: 'photo'; position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--mono); font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--silver-dim); border: 1px dashed var(--silver-fad); margin: 16px; } .team-card[data-filled="true"] .team-photo::after { display: none; } .team-num { font-family: var(--mono); font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--copper-warm); margin-bottom: 8px; } .team-name { font-family: var(--display); font-weight: 300; font-size: 22px; letter-spacing: -0.01em; color: var(--bone); line-height: 1.1; margin-bottom: 6px; } .team-name em { font-family: var(--serif); font-style: italic; color: var(--copper-warm); } .team-bio { font-family: var(--serif); font-style: italic; font-size: 13px; line-height: 1.5; color: var(--silver-dim); margin-top: 10px; max-width: 32ch; letter-spacing: 0.005em; } /* ============================================================ MOBILE MENU ============================================================ */ .mobile-menu-trigger { display: none; position: fixed; top: 18px; right: 18px; z-index: 90; width: 44px; height: 44px; background: rgba(7, 10, 12, 0.55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid rgba(232, 230, 224, 0.18); border-radius: 4px; padding: 0; cursor: pointer; flex-direction: column; justify-content: center; align-items: center; gap: 5px; } .mobile-menu-trigger span { display: block; width: 18px; height: 1px; background: var(--bone); transition: all 0.3s var(--ease-out); } body.day .mobile-menu-trigger { background: rgba(236, 230, 214, 0.85); border-color: rgba(40, 42, 48, 0.3); } body.day .mobile-menu-trigger span { background: var(--char); } .mobile-menu { position: fixed; inset: 0; z-index: 200; background: rgba(5, 8, 7, 0.97); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); opacity: 0; visibility: hidden; transition: opacity 0.4s var(--ease-out), visibility 0.4s; overflow-y: auto; } .mobile-menu.open { opacity: 1; visibility: visible; } body.day .mobile-menu { background: rgba(236, 230, 214, 0.97); } .mobile-menu-close { position: absolute; top: 18px; right: 18px; width: 44px; height: 44px; background: transparent; border: 1px solid rgba(232, 230, 224, 0.18); border-radius: 4px; cursor: pointer; color: var(--bone); padding: 0; display: flex; align-items: center; justify-content: center; } .mobile-menu-close svg { width: 20px; height: 20px; } body.day .mobile-menu-close { color: var(--char); border-color: rgba(40, 42, 48, 0.3); } .mobile-menu-inner { padding: 80px 28px 40px; max-width: 460px; margin: 0 auto; min-height: 100%; display: flex; flex-direction: column; justify-content: space-between; } .mobile-menu-label { font-family: var(--mono); font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--copper-warm); margin-bottom: 30px; opacity: 0; transform: translateY(8px); transition: opacity 0.5s 0.2s, transform 0.5s 0.2s; } .mobile-menu.open .mobile-menu-label { opacity: 1; transform: translateY(0); } .mobile-menu-nav { display: flex; flex-direction: column; gap: 2px; flex: 1; } .mobile-menu-nav a { display: block; padding: 18px 0; font-family: var(--display); font-weight: 300; font-size: 22px; letter-spacing: -0.01em; color: var(--bone); text-decoration: none; border-bottom: 1px solid rgba(232, 230, 224, 0.08); transition: color 0.3s, padding-left 0.3s var(--ease-out); opacity: 0; transform: translateY(12px); } .mobile-menu-nav a em { font-family: var(--serif); font-style: italic; color: var(--copper-warm); } .mobile-menu.open .mobile-menu-nav a { opacity: 1; transform: translateY(0); } .mobile-menu.open .mobile-menu-nav a:nth-child(1) { transition: opacity 0.5s 0.30s, transform 0.5s 0.30s; } .mobile-menu.open .mobile-menu-nav a:nth-child(2) { transition: opacity 0.5s 0.36s, transform 0.5s 0.36s; } .mobile-menu.open .mobile-menu-nav a:nth-child(3) { transition: opacity 0.5s 0.42s, transform 0.5s 0.42s; } .mobile-menu.open .mobile-menu-nav a:nth-child(4) { transition: opacity 0.5s 0.48s, transform 0.5s 0.48s; } .mobile-menu.open .mobile-menu-nav a:nth-child(5) { transition: opacity 0.5s 0.54s, transform 0.5s 0.54s; } .mobile-menu.open .mobile-menu-nav a:nth-child(6) { transition: opacity 0.5s 0.60s, transform 0.5s 0.60s; } .mobile-menu.open .mobile-menu-nav a:nth-child(7) { transition: opacity 0.5s 0.66s, transform 0.5s 0.66s; } .mobile-menu.open .mobile-menu-nav a:nth-child(8) { transition: opacity 0.5s 0.72s, transform 0.5s 0.72s; } .mobile-menu.open .mobile-menu-nav a:nth-child(9) { transition: opacity 0.5s 0.78s, transform 0.5s 0.78s; } .mobile-menu.open .mobile-menu-nav a:nth-child(10) { transition: opacity 0.5s 0.84s, transform 0.5s 0.84s; } .mobile-menu-cta { margin-top: 24px; padding: 24px 0 !important; font-size: 18px !important; color: var(--copper-warm) !important; border-top: 1px solid rgba(212, 176, 138, 0.4) !important; border-bottom: 1px solid rgba(212, 176, 138, 0.4) !important; } .mobile-menu-foot { margin-top: 40px; padding-top: 30px; display: flex; flex-direction: column; gap: 10px; border-top: 1px solid rgba(232, 230, 224, 0.08); font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em; color: var(--silver-dim); opacity: 0; transition: opacity 0.5s 0.9s; } .mobile-menu.open .mobile-menu-foot { opacity: 1; } .mobile-menu-foot a { color: var(--silver-dim); text-decoration: none; transition: color 0.3s; } .mobile-menu-foot a:hover { color: var(--bone); } body.day .mobile-menu-nav a { color: var(--char); border-bottom-color: rgba(40, 42, 48, 0.15); } body.day .mobile-menu-foot a { color: var(--char-soft); } body.day .mobile-menu-foot { border-top-color: rgba(40, 42, 48, 0.15); } /* Show hamburger only on mobile/tablet */ @media (max-width: 900px) { .mobile-menu-trigger { display: flex; } /* Hide theme toggle text on mobile — keep just the icon */ .theme-toggle .theme-label { display: none; } .theme-toggle { right: 76px !important; } } /* ============================================================ PROJECT RAIL — mobile dots + counter ============================================================ */ .proj-rail-dots { display: none; margin-top: 24px; align-items: center; justify-content: center; gap: 8px; } .proj-rail-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--silver-fad); transition: all 0.4s var(--ease-out); } .proj-rail-dot.active { background: var(--copper-warm); width: 24px; border-radius: 3px; } @media (max-width: 900px) { .proj-rail-dots { display: flex; } .h-scroll-hint { display: none; } } /* ============================================================ MOBILE-FIRST RESHAPE — small screens get a stacked page layout instead of the long scroll-flight corridor. The 3D canvas still renders behind, but the heavy parallax-coupling and 1300vh body height are dropped. ============================================================ */ @media (max-width: 768px) { /* Body: keep scroll-driven flight, but with a shorter total height that fits a phone session (vs the long desktop 1300vh corridor). */ body { min-height: 800vh; cursor: auto; font-size: 14px; } /* Loader scaled for mobile */ .loader-text { font-size: clamp(48px, 14vw, 80px) !important; } .loader-meta { font-size: 9px !important; } /* Scenes can still be pinned (height: 100vh) on mobile — gives proper flight rhythm */ /* Cursor: hardware cursor on mobile, hide custom one */ .cursor { display: none; } /* Grain effect dimmer on mobile (battery) */ .grain { opacity: 0.04; } /* === Top nav: single-row, logo left, toggle right === */ .nav { padding: 14px 18px; align-items: center; gap: 10px; } .nav-coords, .nav-mark-text { display: none; } /* Hide the right rail (chapter index) on mobile entirely */ .rail { display: none; } /* Hide top progress bar — we don't have a single long scroll anymore */ .progress { display: none; } /* Bottom UI bar: keep sound toggle, simplify */ .bottom { padding: 14px 18px; flex-direction: row; justify-content: flex-end; } .sound-toggle { font-size: 9px; padding: 6px 10px; } /* === Scene flow: stacked sections instead of pinned 100vh === */ .scene { height: auto !important; min-height: auto; padding: 60px 0; align-items: stretch; } .scene-inner { padding: 0 20px; } /* Hero / Open scene */ .s-idea { padding: 120px 0 80px; min-height: 80vh; } .s-idea-text { font-size: clamp(34px, 9vw, 52px) !important; line-height: 1.05; word-break: keep-all; } /* Stack each word on its own line on very small screens for impact */ @media (max-width: 420px) { .s-idea-text { font-size: clamp(32px, 10vw, 44px) !important; } } .s-idea-meta { font-size: 9px; margin-top: 30px; } /* Vision / Blueprint scene: stack columns */ .s-blueprint .s-blueprint-grid { grid-template-columns: 1fr !important; gap: 30px; } .s-blueprint h2 { font-size: clamp(34px, 8vw, 52px) !important; line-height: 1.05; } /* === Vertical sections (Reality / Living / Catalyst) === */ .world { height: auto; min-height: auto; padding: 80px 0; } .world-frame { grid-template-columns: 1fr !important; gap: 30px; } .world-side-1 .world-content, .world-side-2 .world-content { grid-column: 1 !important; } .world-content::before { /* Simpler vignette on mobile */ inset: -30px -20px; background: radial-gradient(ellipse 90% 70% at 50% 50%, rgba(7,8,10,0.65) 0%, rgba(7,8,10,0.35) 60%, transparent 90%); } .world-num { font-size: 60px; top: -20px; right: -8px; } .world-tag { font-size: 9px; margin-bottom: 18px; flex-wrap: wrap; } .world-title { font-size: clamp(34px, 8vw, 52px) !important; } .world-title .brand-prefix { font-size: 0.36em; } .world-title .it { font-size: 0.55em; margin-top: 10px; } .world-desc { font-size: 15px; line-height: 1.6; margin-top: 24px; } /* Bigger CTA on mobile so it's easy to tap */ .world-cta { padding: 18px 28px !important; font-size: 11px !important; } /* Horizon mega text — more breath on mobile */ .horizon-mega { font-size: clamp(56px, 16vw, 96px) !important; } .world-list { margin-top: 24px; max-width: 100%; } .world-list li { font-size: 12px; padding: 10px 0; } .slot-indicator { font-size: 8px; margin-top: 18px; } /* === Stats === */ .s-stats { padding: 60px 0; min-height: auto; } .stats-block .stats-tag { font-size: 9px; } .stats-block h2 { font-size: clamp(28px, 7vw, 44px) !important; } .stats-grid { grid-template-columns: repeat(2, 1fr) !important; } .stat { padding: 32px 12px; } .stat-num { font-size: clamp(40px, 10vw, 60px) !important; } .stat-label { font-size: 9px; margin-top: 10px; letter-spacing: 0.24em; } /* === Process === */ .s-process { padding: 60px 0; } .process-head { margin-bottom: 50px; } .process-head h2 { font-size: clamp(34px, 8vw, 52px) !important; } .process-head .process-sub { font-size: 16px; } .process-steps { grid-template-columns: 1fr !important; gap: 36px; } .process-line { display: none; } .process-step h3 { font-size: 22px; } .process-step p { font-size: 13px; max-width: 100%; } /* === Our Work / Served === */ .s-served { padding: 60px 0; min-height: auto; } .served-head { grid-template-columns: 1fr !important; gap: 24px; margin-bottom: 40px; } .served-head h2 { font-size: clamp(36px, 9vw, 56px) !important; } .served-head p { justify-self: start !important; font-size: 14px; } /* Horizontal scroll — narrower cards, snap-aligned */ .h-scroll-wrap { margin: 0 -20px; padding: 0 20px; } .h-scroll { gap: 16px; padding-bottom: 16px; } .proj-card { width: 78vw; max-width: 320px; } .proj-card-img { aspect-ratio: 4/5; } .proj-card-text .title { font-size: 22px; } .proj-card-text .year { font-size: 9px; } .proj-card-text .loc { font-size: 8px; } .proj-card-arrow { width: 32px; height: 32px; } .h-scroll-hint { font-size: 8px; margin-top: 20px; } /* Brands marquee — slightly tighter on mobile */ .brands-block { margin-top: 60px; padding-top: 50px; } .brands-head { margin-bottom: 40px; } .brands-head h3 { font-size: clamp(20px, 5vw, 32px) !important; } .brands-track { gap: 32px; } .brand { font-size: 17px; padding: 0 18px; height: 60px; } /* === Team === */ .s-team { padding: 60px 0; min-height: auto; } .team-head { margin-bottom: 50px; } .team-head h2 { font-size: clamp(30px, 7.5vw, 48px) !important; } .team-head p { font-size: 16px; } .team-grid { grid-template-columns: 1fr 1fr !important; gap: 14px; } .team-card { padding: 16px 14px 20px; } .team-name { font-size: 18px; } .team-bio { font-size: 11px; margin-top: 6px; } .team-num { font-size: 9px; } .team-role { font-size: 9px; letter-spacing: 0.18em; } /* === Contact / Horizon === */ .s-horizon { padding: 80px 0 60px; min-height: auto; } .horizon-mega .word { font-size: clamp(40px, 10vw, 64px) !important; } .horizon-meta { grid-template-columns: 1fr !important; gap: 24px; text-align: left; } .horizon-meta-item span { font-size: 9px; } .horizon-meta-item strong, .horizon-meta-item a { font-size: 16px; } .horizon-cta { font-size: 11px; padding: 18px 28px; } /* === 3D canvas: keep but lighter on mobile === */ /* The canvas is fixed-position and renders behind everything. The IIFE inside the JS adapts pixel-ratio for mobile devices. */ } /* === Even smaller (< 480px) === */ @media (max-width: 480px) { .nav { padding: 12px 14px; } .nav-logo-img { height: 36px; } .scene-inner { padding: 0 16px; } .team-grid { grid-template-columns: 1fr !important; } .stats-grid .stat { padding: 26px 10px; } } /* === Touch device — smooth scroll snapping for project cards === */ @media (hover: none) and (pointer: coarse) { .h-scroll { scroll-snap-type: x mandatory; } .proj-card { scroll-snap-align: start; } /* Disable the cursor expand on touch */ .cursor { display: none !important; } /* Bigger tap targets */ .theme-toggle { min-height: 40px; } .sound-toggle { min-height: 40px; } a, button { min-height: 36px; } .proj-row, .proj-card { min-height: 60px; } } /* ============================================================================ COMPREHENSIVE DAY-MODE TUNING The base palette flips automatically via body.day variables, but several visual treatments use hardcoded near-black for shadows, vignettes, gradients, and stroke effects. Those would create dark blobs on the cream background. This block re-tunes each one with warm tones that read correctly in day mode. ============================================================================ */ html.day { background: #ece6d6; } body.day { background: #ece6d6; } /* Grain — invert (dark grain dots on cream instead of light dots on black) */ body.day .grain { filter: invert(1) hue-rotate(180deg); opacity: 0.10; } /* Cursor backdrop blur lifted */ body.day .cursor { background: rgba(232, 226, 210, 0.25); } body.day .cursor.expand { background: rgba(232, 226, 210, 0.85); border-color: var(--copper-warm); } /* Hero text stroke — visible on cream */ body.day .s-idea-text .stroke, body.day .horizon-mega .stroke { -webkit-text-stroke-color: var(--silver); color: transparent; } /* World title shadows — replace deep black halos with warm cream halos */ body.day .world-title { text-shadow: 0 0 24px rgba(232, 226, 210, 0.92), 0 0 60px rgba(232, 226, 210, 0.65); } body.day .world-title .brand-prefix { text-shadow: 0 0 14px rgba(232, 226, 210, 0.9); } body.day .world-title .it { text-shadow: 0 0 18px rgba(232, 226, 210, 0.92), 0 0 40px rgba(232, 226, 210, 0.55); } body.day .world-desc { text-shadow: 0 0 14px rgba(232, 226, 210, 0.95), 0 0 36px rgba(232, 226, 210, 0.7); } /* World content vignette — soft warm glow instead of dark blob */ body.day .world-content::before { background: radial-gradient(ellipse 75% 65% at 35% 50%, rgba(232, 226, 210, 0.65) 0%, rgba(232, 226, 210, 0.35) 50%, transparent 80%); } /* Project card image gradient + arrow chip — cream tones */ body.day .proj-card-img::before { background: linear-gradient(180deg, transparent 50%, rgba(232, 226, 210, 0.85) 100%); } body.day .proj-card-text .title { text-shadow: 0 4px 16px rgba(232, 226, 210, 0.7); } body.day .proj-card-arrow { background: rgba(232, 226, 210, 0.75); } /* Slot indicator badge — cream backing */ body.day .slot-indicator { background: rgba(232, 226, 210, 0.5); } /* Loader — warm cream backdrop */ body.day .loader { background: #ece6d6; } /* Selection */ body.day::selection { background: var(--copper); color: #ece6d6; } /* Brand marquee track — slightly darker borders on cream */ body.day .brand { border-left-color: rgba(38, 32, 22, 0.15); } body.day .brand img { filter: grayscale(1) brightness(0.4) contrast(1.2); } body.day .brand:hover img { filter: grayscale(0) brightness(1) contrast(1); } /* Mobile vignette tweak */ @media (max-width: 768px) { body.day .world-content::before { background: radial-gradient(ellipse 90% 70% at 50% 50%, rgba(232, 226, 210, 0.75) 0%, rgba(232, 226, 210, 0.40) 60%, transparent 90%); } } /* Process step dots — cream interior */ body.day .process-dot { background: #ece6d6; } /* Stat hover wash */ body.day .stat:hover { background: rgba(110, 74, 38, 0.05); } /* Team card backing */ body.day .team-card { background: linear-gradient(180deg, rgba(255, 248, 232, 0.75), rgba(232, 226, 210, 0.5)); border-color: rgba(38, 32, 22, 0.12); } body.day .team-card:hover { border-color: var(--copper); } body.day .team-photo { background: #d4cdb8; } /* Bottom UI sound toggle — cream feel */ body.day .sound-toggle { border-color: rgba(38, 32, 22, 0.2); } body.day .sound-toggle:hover { background: rgba(232, 226, 210, 0.7); } /* Day-mode horizon CTA */ body.day .horizon-cta { border-color: var(--bone); color: var(--bone); } body.day .horizon-cta:hover { background: var(--bone); color: #ece6d6; } /* Day-mode chapter rail — darker hairlines */ body.day .rail-item .bar { background: rgba(38, 32, 22, 0.3); } body.day .rail-item.active .bar { background: var(--bone); } body.day .progress { background: rgba(38, 32, 22, 0.08); } body.day .progress-bar { background: var(--copper); }
ACCESS
Constructing universe 000
000
100
/01 — Design · Build · Elevate
/02 — Vision & Mission

Beyond Boundaries.
Beyond Limits.

— Our VisionTo engineer the future of design, development and brand — where every space we build and every story we tell refuses to be forgotten.

— Our MissionTo fuse uncompromising craft with relentless precision — turning every brief into a benchmark and every project into a declaration.

/03 — The Design Tank
01

Access Reality designs that inspire.

Where every project begins — and where competitors are left behind. AI-driven walkthroughs, cinematic presentations, brochures and digital pitches that close the room before the room is built.

Explore Reality
/04 — The Execution Wing
02

Access Living where design meets everyday life.

We don't decorate rooms — we engineer the spaces people live their best chapters inside. End-to-end execution from raw shell to handover, residential and commercial.

Explore Living
/05 — The Brand Amplifier
03

Access Catalyst amplifying brands. creating legacies.

Great brands aren't just seen — they're felt, repeated and remembered. Strategy, identity, cinematic story and always-on digital that turn attention into loyalty.

Explore Catalyst
/06 — In Numbers

Built across verticals.
Felt across industries.

0+
Brand Partners
0+
Projects Delivered
0
Verticals · One Ecosystem
0+
Cities · Pan-India
/07 — Our Process

Simplicity. Clarity. Perfection.

A streamlined, high-impact approach.
01
Phase One

Listen & Understand

Align deeply with your vision. Every brief begins with attention — to ambition, nuance, and the silent details others miss.

02
Phase Two

Strategise & Conceptualise

Brainstorm, sketch, refine. We translate vision into strategy — and strategy into a concept that can be built, launched, and lived in.

03
Phase Three

Execute & Elevate

Bring ideas to life with precision. Every pixel, every material, every story — engineered for impact and the test of time.

/08 — Our Work

Our work speaks
for itself.

Five projects. Three verticals. One promise — that what we put our name on becomes the standard the next one chases. Scroll horizontally, or click in for the full story.

Drag · scroll horizontally
Trusted Brands

Trusted by brands who believe in
design that makes a difference.

/09 — People Behind

The makers behind
the movement.

A small team. A relentless craft.

/01
Kali
/02
Saathwik
/03
Ananya Chhonker
/04
Sri Harshini
/10 — Begin a Project

Shaping Tomorrow, Today.

Direct line +91 78426 95525
Studio hours Mon — Sat
10:00 — 19:00 IST
Open a Brief