@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');

:root { --ink:#171717; --muted:#6e6c68; --paper:#f5f2ea; --line:#d9d5ca; --blue:#3157ff; --lilac:#d9d5ff; --mint:#c8e8d8; --yellow:#f4cc58; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Manrope, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
.site-shell { width:min(100%, 1440px); margin:0 auto; padding:0 42px; overflow:hidden; }
.site-header { height:92px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.wordmark { font-size:16px; font-weight:800; letter-spacing:-.04em; }
.wordmark span { color:var(--blue); }
.desktop-nav { display:flex; align-items:center; gap:30px; font-family:"DM Mono", monospace; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.desktop-nav a:not(.nav-cta), .text-link { color:var(--muted); transition:color .2s ease; }
.desktop-nav a:hover, .text-link:hover { color:var(--ink); }
.nav-cta { border:1px solid var(--ink); padding:12px 15px; border-radius:999px; background:var(--ink); color:var(--paper); }
.nav-cta span, .button span { margin-left:10px; }
.menu-toggle, .mobile-nav { display:none; }
.section-grid { display:grid; grid-template-columns:1.18fr .82fr; min-height:690px; border-bottom:1px solid var(--line); }
.hero-copy { display:flex; justify-content:center; flex-direction:column; padding:90px 8vw 85px 3vw; }
.eyebrow, .section-kicker, .character-label, .mode-note, .hero-tags, .work-meta, .signature, .contact-note { font-family:"DM Mono", monospace; font-size:10px; letter-spacing:.09em; text-transform:uppercase; }
.eyebrow, .section-kicker { color:var(--muted); }
.status-dot { display:inline-block; width:7px; height:7px; margin-right:8px; border-radius:50%; background:var(--blue); box-shadow:0 0 0 4px #3157ff1c; }
h1, h2, h3, p { margin-top:0; }
h1 { margin:26px 0 27px; font-size:clamp(52px, 7.2vw, 112px); line-height:.98; letter-spacing:-.09em; font-weight:700; }
h1 em, h2 span, .contact-section em { color:var(--blue); font-style:normal; }
.hero-lede { max-width:490px; color:#575650; font-size:17px; line-height:1.7; letter-spacing:-.03em; }
.hero-actions { display:flex; align-items:center; gap:25px; margin-top:31px; }
.button { display:inline-flex; align-items:center; border-radius:999px; padding:16px 21px; font-size:12px; font-weight:700; transition:transform .2s ease, background .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-dark { background:var(--ink); color:var(--paper); }
.button-light { background:var(--paper); color:var(--ink); }
.text-link { font-family:"DM Mono", monospace; font-size:11px; text-transform:uppercase; }
.text-link span { margin-left:10px; color:var(--blue); }
.hero-tags { display:flex; flex-wrap:wrap; gap:9px; margin-top:68px; color:var(--muted); }
.hero-tags span { border:1px solid var(--line); padding:8px 10px; border-radius:999px; }
.character-stage { display:flex; align-items:center; justify-content:center; flex-direction:column; padding:55px 5vw; border-left:1px solid var(--line); background:#f1eee6; }
.character-frame { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; width:min(100%, 380px); aspect-ratio:1; border:1px solid #ded9cc; background:radial-gradient(circle at 50% 40%, #fffdf8 0, #ede9df 68%); }
.character-glow { position:absolute; width:54%; aspect-ratio:1; border-radius:50%; background:#3157ff18; filter:blur(20px); }
.character-image { position:relative; z-index:1; width:84%; height:84%; object-fit:contain; image-rendering:auto; transition:opacity .15s ease, transform .3s ease; }
.character-frame:hover .character-image { transform:translateY(-5px); }
.character-label { position:absolute; left:14px; top:14px; color:var(--muted); }
.character-frame strong { position:absolute; bottom:16px; right:16px; color:var(--blue); font-family:"DM Mono", monospace; font-size:11px; letter-spacing:.07em; }
.mode-switcher { display:flex; gap:8px; margin-top:22px; }
.mode-button { width:39px; height:29px; border:1px solid var(--line); color:var(--muted); background:transparent; cursor:pointer; font-family:"DM Mono", monospace; font-size:10px; transition:all .2s ease; }
.mode-button:hover, .mode-button.is-active { border-color:var(--blue); color:var(--blue); background:#3157ff12; }
.mode-note { margin:11px 0 0; color:#929087; }
.section { padding:125px 3vw; border-bottom:1px solid var(--line); }
.services-section { display:grid; grid-template-columns:.72fr 1.28fr; gap:8vw; }
.section-kicker { margin-bottom:24px; }
h2 { margin-bottom:0; font-size:clamp(38px, 5vw, 74px); line-height:1.02; letter-spacing:-.09em; }
.service-list { display:flex; flex-direction:column; gap:12px; }
.service-card { position:relative; display:grid; grid-template-columns:52px 1fr 28px; gap:20px; align-items:start; min-height:147px; padding:28px; border-radius:2px; transition:transform .2s ease; }
.service-card:hover { transform:translateX(7px); }
.service-card-blue { background:var(--blue); color:white; }
.service-card-lilac { background:var(--lilac); }
.service-card-mint { background:var(--mint); }
.card-index, .work-meta, .process-step > span { font-family:"DM Mono", monospace; font-size:11px; }
.service-card h3 { margin-bottom:11px; font-size:22px; letter-spacing:-.06em; }
.service-card p { max-width:440px; margin-bottom:0; color:#333; font-size:14px; line-height:1.65; letter-spacing:-.03em; }
.service-card-blue p { color:#e2e5ff; }
.card-arrow { font-size:22px; line-height:1; text-align:right; }
.section-heading-row { display:flex; align-items:end; justify-content:space-between; margin-bottom:68px; }
.section-aside { width:240px; margin:0 2vw 5px 0; color:var(--muted); font-size:13px; line-height:1.65; }
.work-grid { display:grid; grid-template-columns:1.35fr 1fr 1fr; align-items:start; gap:17px; }
.work-card { min-width:0; }
.work-art { position:relative; display:flex; align-items:flex-end; height:284px; padding:23px; overflow:hidden; }
.work-art span { position:relative; z-index:1; font-family:"DM Mono", monospace; font-size:24px; line-height:.98; letter-spacing:-.07em; }
.work-art i { position:absolute; z-index:1; right:22px; top:19px; font-style:normal; font-size:23px; }
.art-grid { color:#eef0ff; background-color:#6678ff; background-image:linear-gradient(#ffffff28 1px, transparent 1px), linear-gradient(90deg, #ffffff28 1px, transparent 1px); background-size:27px 27px; }
.art-dots { background-color:#dedaff; background-image:radial-gradient(#3157ff 1.5px, transparent 1.5px); background-size:17px 17px; }
.art-dots span { color:var(--blue); }
.art-blocks { color:#121212; background:linear-gradient(135deg, transparent 0 49%, #f4cc58 49% 65%, transparent 65%), linear-gradient(45deg, transparent 0 46%, #c8e8d8 46% 71%, transparent 71%), #efeae0; }
.work-meta { display:flex; justify-content:space-between; margin:17px 0 13px; color:var(--muted); }
.work-card h3 { margin-bottom:12px; font-size:22px; line-height:1.1; letter-spacing:-.065em; }
.work-card p { margin-bottom:0; color:var(--muted); font-size:13px; line-height:1.6; letter-spacing:-.03em; }
.process-section { display:grid; grid-template-columns:.72fr 1.28fr; gap:8vw; background:#ebe7dc; }
.process-steps { display:flex; align-items:center; padding-top:35px; }
.process-step { flex:1; min-width:0; }
.process-step > span { display:block; margin-bottom:37px; color:var(--blue); }
.process-step strong { display:block; margin-bottom:9px; font-size:19px; letter-spacing:-.06em; }
.process-step p { margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.process-line { width:27px; flex:none; height:1px; margin:14px 9px 0; background:#aaa69b; }
.about-section { display:grid; grid-template-columns:.72fr 1.28fr; gap:8vw; }
.about-copy { max-width:540px; padding-top:39px; }
.about-copy p { color:#575650; font-size:18px; line-height:1.7; letter-spacing:-.05em; }
.signature { margin-top:48px; color:var(--muted); }
.signature span { padding:0 7px; color:var(--blue); }
.contact-section { position:relative; display:flex; align-items:center; flex-direction:column; padding:155px 20px 145px; overflow:hidden; text-align:center; background:var(--ink); color:var(--paper); }
.contact-section .section-kicker { color:#aaa9a2; }
.contact-section h2 { margin:13px 0 27px; font-size:clamp(50px, 7.8vw, 112px); }
.contact-copy { max-width:440px; color:#a8a79f; font-size:14px; line-height:1.7; }
.contact-section .button { margin-top:16px; }
.contact-note { margin:42px 0 0; color:#66655f; font-size:9px; }
.contact-orbit { position:absolute; top:42px; right:8vw; display:grid; place-items:center; width:112px; aspect-ratio:1; border:1px solid #45443f; border-radius:50%; transform:rotate(12deg); color:#77766f; font-family:"DM Mono", monospace; font-size:10px; line-height:1.1; text-align:center; }
.site-footer { display:flex; justify-content:space-between; padding:22px 3vw 27px; color:var(--muted); font-family:"DM Mono", monospace; font-size:9px; letter-spacing:.06em; }
@media (max-width: 850px) { .site-shell { padding:0 20px; } .site-header { height:74px; } .desktop-nav { display:none; } .menu-toggle { display:block; border:0; background:none; color:var(--muted); font-family:"DM Mono", monospace; font-size:11px; text-transform:uppercase; cursor:pointer; } .mobile-nav { position:absolute; z-index:5; top:74px; left:0; right:0; display:none; padding:15px 20px 22px; background:var(--paper); border-bottom:1px solid var(--line); } .mobile-nav.is-open { display:flex; flex-direction:column; gap:18px; } .mobile-nav a { font-family:"DM Mono", monospace; font-size:12px; text-transform:uppercase; } .section-grid, .services-section, .process-section, .about-section { grid-template-columns:1fr; } .hero-copy { padding:80px 0 55px; } h1 { font-size:clamp(52px, 14vw, 88px); } .hero-tags { margin-top:48px; } .character-stage { min-height:570px; padding:50px 0 65px; border-left:0; border-top:1px solid var(--line); } .character-frame { width:min(100%, 360px); } .section { padding:84px 0; } .services-section { gap:49px; } .service-card { min-height:135px; padding:22px 19px; } .service-card h3 { font-size:19px; } .service-card p { font-size:13px; } .section-heading-row { display:block; margin-bottom:45px; } .section-aside { width:auto; margin:24px 0 0; } .work-grid { grid-template-columns:1fr; gap:43px; } .work-art { height:270px; } .work-card h3 { font-size:25px; } .process-section { gap:45px; } .process-steps { display:block; padding-top:0; } .process-step { position:relative; padding:0 0 29px 47px; } .process-step > span { position:absolute; left:0; top:2px; margin:0; } .process-line { width:1px; height:22px; margin:0 0 9px 5px; } .about-copy { padding-top:35px; } .about-copy p { font-size:17px; } .contact-section { padding:110px 10px 105px; } .contact-orbit { right:20px; top:25px; transform:scale(.75) rotate(12deg); } .site-footer { flex-wrap:wrap; gap:10px; line-height:1.5; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *, *::before, *::after { transition-duration:.01ms !important; animation-duration:.01ms !important; } }
