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

:root { color-scheme: dark; --bg:#09090b; --panel:#111113; --line:#27272a; --muted:#a1a1aa; --text:#f4f4f5; --accent:#c9f26b; --serif:'Playfair Display', Georgia, serif; --sans:Manrope, Arial, sans-serif; --mono:'DM Mono', monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--bg); }
body { margin:0; min-width:320px; background:var(--bg); color:var(--text); font-family:var(--sans); font-size:15px; line-height:1.6; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
button, input, textarea { font:inherit; }
button { cursor:pointer; }
.site-header { position:fixed; z-index:20; top:18px; left:24px; right:24px; height:58px; padding:0 17px 0 20px; display:flex; align-items:center; justify-content:space-between; background:rgba(9,9,11,.72); border:1px solid rgba(63,63,70,.75); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-radius:3px; }
.brand { font-family:var(--mono); font-weight:500; font-size:12px; letter-spacing:.1em; line-height:1.05; display:inline-flex; flex-direction:column; }
.brand span { font-size:8px; letter-spacing:.29em; color:#a1a1aa; margin-top:2px; }
.site-nav { display:flex; align-items:center; gap:24px; }
.site-nav a { color:#d4d4d8; font:10px var(--mono); letter-spacing:.08em; text-transform:uppercase; transition:color .25s ease; }
.site-nav a:hover { color:var(--accent); }
.menu-toggle { display:none; width:38px; height:38px; padding:10px; background:transparent; border:0; }
.menu-toggle span { height:1px; width:18px; display:block; margin:5px 0; background:#f4f4f5; }
.section-grid { display:grid; grid-template-columns:minmax(80px, 1fr) minmax(0, 6fr) minmax(200px, 2fr); gap:28px; }
.section-pad { padding:clamp(92px, 12vw, 180px) 6vw; }
.eyebrow,.section-index { margin:0; color:#a1a1aa; font:10px var(--mono); letter-spacing:.12em; text-transform:uppercase; }
.hero { height:max(720px, 100vh); min-height:720px; position:relative; align-items:center; overflow:hidden; padding:0 6vw; isolation:isolate; }
#hero-canvas { position:absolute; z-index:-3; inset:0; width:100%; height:100%; pointer-events:none; }
.hero-noise { position:absolute; z-index:-2; inset:0; opacity:.23; pointer-events:none; background-image:linear-gradient(100deg,rgba(9,9,11,.83),rgba(9,9,11,.15) 55%,rgba(9,9,11,.72)),radial-gradient(circle at 15% 36%,rgba(201,242,107,.12),transparent 26%),url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E"); }
.hero-content { grid-column:2 / 3; max-width:780px; padding-top:80px; }
.hero-content h1 { max-width:790px; margin:22px 0 25px; font:600 clamp(45px,6.5vw,103px)/.98 var(--serif); letter-spacing:-.055em; }
.hero-content h1 span { color:var(--text); font-style:italic; }
.hero-copy { max-width:435px; margin:0 0 32px; color:#d4d4d8; font-size:15px; line-height:1.8; }
.button-row { display:flex; flex-wrap:wrap; gap:12px; }
.button { min-height:48px; padding:0 19px; display:inline-flex; align-items:center; justify-content:center; gap:18px; border:1px solid var(--line); font:11px var(--mono); letter-spacing:.06em; text-transform:uppercase; transition:transform .25s ease,background .25s ease,border .25s ease; }
.button:hover { transform:translateY(-3px); }
.button i,.project-bottom i,.contact-mail i { font-style:normal; font-size:17px; line-height:0; }
.button.primary { background:var(--accent); border-color:var(--accent); color:#15170c; }
.button.primary:hover { background:#ddff90; }
.button.secondary { background:rgba(9,9,11,.35); border-color:#52525b; color:#f4f4f5; }
.hero-meta { grid-column:3; align-self:end; margin-bottom:112px; display:flex; flex-direction:column; gap:12px; color:#d4d4d8; font:10px/1.55 var(--mono); text-transform:uppercase; letter-spacing:.06em; }
.hero-meta span:first-child { color:var(--accent); }
.scroll-cue { position:absolute; left:6vw; bottom:43px; color:#a1a1aa; font:9px var(--mono); letter-spacing:.11em; text-transform:uppercase; display:flex; align-items:center; gap:10px; }
.scroll-cue span { height:39px; width:1px; background:var(--accent); transform-origin:top; animation:scrollLine 1.8s infinite ease-in-out; }
@keyframes scrollLine { 0%,100% { transform:scaleY(.35); opacity:.3 } 45% { transform:scaleY(1); opacity:1 } }
.about { position:relative; isolation:isolate; border-top:1px solid var(--line); min-height:600px; align-items:start; overflow:hidden; }
.section-index { grid-column:1; padding-top:6px; }
.about-statement { grid-column:2; max-width:675px; }
h2 { margin:18px 0 25px; font:600 clamp(38px,5vw,76px)/1.04 var(--serif); letter-spacing:-.045em; }
.about-statement > p:last-child { max-width:560px; color:#bcbcc4; line-height:1.85; }
.contact-card { grid-column:3; padding:25px 0 0; border-top:1px solid #52525b; }
.rating { display:grid; grid-template-columns:auto 1fr; column-gap:11px; align-items:baseline; padding-bottom:24px; border-bottom:1px solid var(--line); }
.rating strong { font:500 42px/1 var(--serif); }
.rating span { color:var(--accent); letter-spacing:2px; font-size:11px; }.rating small { grid-column:2; color:#a1a1aa; font:9px var(--mono); letter-spacing:.08em; text-transform:uppercase; }
dl { margin:0; } dl div { padding:17px 0; border-bottom:1px solid var(--line); } dt { margin-bottom:7px; color:#71717a; font:9px var(--mono); letter-spacing:.1em; text-transform:uppercase; } dd { margin:0; color:#d4d4d8; font-size:12px; line-height:1.65; } dd a:hover { color:var(--accent); }
.section-architecture { position:absolute; z-index:-1; pointer-events:none; opacity:.9; }.about-architecture { width:44%; height:100%; right:0; bottom:0; }.projects { position:relative; isolation:isolate; border-top:1px solid var(--line); overflow:hidden; }.projects-architecture { width:42%; height:300px; right:-7%; top:0; opacity:.45; }.projects-heading { position:relative; padding:0 6vw 65px; align-items:end; }.projects-heading .section-index { grid-column:1; }.projects-heading > div:nth-child(2) { grid-column:2; }.projects-heading h2 { margin-bottom:0; }.project-intro { grid-column:3; margin:0 0 4px; color:#a1a1aa; font-size:12px; line-height:1.75; }
.project-stack { padding:0 6vw; }.project-card { min-height:660px; margin-bottom:110px; position:sticky; top:90px; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr); background:#111113; border:1px solid #333337; box-shadow:0 -12px 42px rgba(0,0,0,.2); }.project-image-link { min-height:660px; overflow:hidden; background:#18181b; }.project-image-link img { height:100%; width:100%; object-fit:cover; filter:brightness(.79) saturate(.7); transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .5s ease; }.project-card:hover img { transform:scale(1.045); filter:brightness(.95) saturate(.85); }.project-copy { padding:30px 32px; display:flex; flex-direction:column; }.project-number { margin:0 0 auto; color:var(--accent); font:10px var(--mono); }.project-meta { color:#a1a1aa; font:9px var(--mono); letter-spacing:.09em; text-transform:uppercase; }.project-copy h3 { margin:14px 0 15px; font:500 clamp(27px,3vw,46px)/1.08 var(--serif); letter-spacing:-.045em; }.project-copy > div:nth-child(2)>p:last-child { color:#bbb; font-size:13px; line-height:1.75; }.project-bottom { margin-top:25px; padding-top:19px; border-top:1px solid #3f3f46; display:flex; align-items:center; justify-content:space-between; gap:16px; color:#a1a1aa; font:9px var(--mono); letter-spacing:.07em; text-transform:uppercase; }.project-bottom a { color:#f4f4f5; display:flex; align-items:center; gap:8px; }.project-bottom a:hover { color:var(--accent); }
.services { position:relative; isolation:isolate; overflow:hidden; border-top:1px solid var(--line); }.services-architecture { right:0; top:0; height:100%; width:42%; opacity:.45; }.services-intro { grid-column:2; }.services-intro h2 { margin-bottom:0; }.service-list { position:relative; grid-column:2 / 4; margin-top:59px; border-top:1px solid #3f3f46; }.service-list a { min-height:94px; display:grid; grid-template-columns:55px minmax(170px,1fr) minmax(165px,.8fr) 30px; align-items:center; border-bottom:1px solid var(--line); transition:padding .3s ease,background .3s ease; }.service-list a:hover { padding:0 15px; background:#161618; }.service-list span { color:#71717a; font:9px var(--mono); }.service-list strong { font:500 23px var(--serif); }.service-list em { color:#a1a1aa; font-style:normal; font-size:11px; }.service-list i { justify-self:end; color:var(--accent); font-style:normal; font-size:22px; }
.contact-section { position:relative; isolation:isolate; min-height:650px; padding:clamp(100px,14vw,190px) 16vw; overflow:hidden; border-top:1px solid var(--line); background:#0e0f0d; }.contact-architecture { z-index:-2; width:65%; height:100%; right:-4%; top:0; opacity:.75; }.contact-content { position:relative; z-index:1; }.contact-content h2 { margin:17px 0 34px; }.contact-mail { display:inline-flex; align-items:center; gap:13px; font:500 clamp(19px,2.6vw,36px) var(--serif); border-bottom:1px solid #71717a; padding-bottom:8px; transition:color .25s ease; }.contact-mail:hover { color:var(--accent); }.contact-content > p:last-child { margin:31px 0 0; color:#a1a1aa; font-size:12px; line-height:1.8; }.contact-geometry { position:absolute; z-index:-1; right:-20px; top:0; bottom:0; width:57%; opacity:.3; transform:skewY(-7deg); }.contact-geometry span { position:absolute; display:block; border:1px solid rgba(201,242,107,.28); }.contact-geometry span:nth-child(1) { inset:13% 7% 20% 19%; }.contact-geometry span:nth-child(2) { inset:31% -5% 6% 2%; }.contact-geometry span:nth-child(3) { inset:0 26% 42% 33%; border-color:#444; }.site-footer { padding:34px 6vw; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:20px; color:#71717a; font:9px var(--mono); letter-spacing:.06em; text-transform:uppercase; }.site-footer p { margin:9px 0 0; }
.project-detail-hero { position:relative; height:min(850px,82vh); min-height:590px; overflow:hidden; }.project-detail-hero>img { width:100%; height:100%; object-fit:cover; filter:brightness(.63) saturate(.72); }.project-detail-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(9,9,11,.72),transparent 68%),linear-gradient(0deg,rgba(9,9,11,.86),transparent 55%); }.back-link { position:absolute; top:109px; left:6vw; font:10px var(--mono); letter-spacing:.1em; text-transform:uppercase; }.back-link:hover { color:var(--accent); }.project-detail-title { position:absolute; left:6vw; right:6vw; bottom:62px; }.project-detail-title p,.project-detail-title span { margin:0; font:10px var(--mono); letter-spacing:.1em; text-transform:uppercase; color:#d4d4d8; }.project-detail-title h1 { max-width:900px; margin:16px 0 18px; font:600 clamp(48px,7vw,105px)/.98 var(--serif); letter-spacing:-.05em; }.article-layout { display:grid; grid-template-columns:1fr minmax(0,1.65fr); gap:clamp(50px,12vw,200px); }.article-layout aside { padding-top:10px; border-top:1px solid #52525b; color:#d4d4d8; font-size:13px; }.article-layout aside>p:last-child { line-height:1.8; }.article-content { max-width:700px; color:#c8c8ce; font-size:15px; line-height:1.9; }.article-content p { margin:0 0 22px; }.article-content .article-lead { color:#f4f4f5; font:500 25px/1.45 var(--serif); }.gallery { border-top:1px solid var(--line); }.gallery>p { margin-bottom:29px; }.gallery-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:12px; }.gallery-grid img { height:440px; width:100%; object-fit:cover; filter:saturate(.7); }.gallery-grid img:first-child { grid-row:span 2; height:892px; }.not-found { min-height:75vh; display:grid; place-content:center; text-align:center; padding:130px 24px; }.not-found h1 { max-width:650px; margin:18px 0 28px; font:600 clamp(38px,6vw,74px)/1.04 var(--serif); }
.install-shell,.admin-login-shell { min-height:100vh; display:grid; place-items:center; padding:35px 20px; background:radial-gradient(circle at 80% 15%,#25251e 0,transparent 38%),#09090b; }.install-card,.login-card { width:min(100%,510px); padding:40px; border:1px solid #3f3f46; background:rgba(17,17,19,.88); box-shadow:0 35px 90px rgba(0,0,0,.35); }.install-card .brand,.login-card .brand { margin-bottom:46px; }.install-card h1,.login-card h1 { margin:14px 0 13px; font:500 39px/1.05 var(--serif); letter-spacing:-.045em; }.install-card>p:not(.eyebrow),.login-card>p:not(.eyebrow) { color:#a1a1aa; font-size:13px; }.admin-form { margin-top:29px; display:grid; gap:17px; }.admin-form label,.project-editor label { display:grid; gap:7px; color:#d4d4d8; font:10px var(--mono); letter-spacing:.07em; text-transform:uppercase; }.admin-form input,.project-editor input,.project-editor textarea { min-height:44px; width:100%; border:1px solid #3f3f46; border-radius:0; padding:10px 12px; outline:none; background:#09090b; color:#f4f4f5; font:13px var(--sans); letter-spacing:normal; text-transform:none; transition:border .2s ease; }.project-editor textarea { resize:vertical; line-height:1.65; }.admin-form input:focus,.project-editor input:focus,.project-editor textarea:focus { border-color:var(--accent); }.admin-form .button { margin-top:6px; }.notice { margin:22px 0; padding:12px 14px; border:1px solid; font-size:12px; line-height:1.5; }.notice.error { color:#fecaca; border-color:#7f1d1d; background:#2b1011; }.notice.success { color:#d9f99d; border-color:#4d7c0f; background:#17220d; }.login-back { display:inline-block; margin-top:31px; color:#a1a1aa; font:10px var(--mono); text-transform:uppercase; letter-spacing:.08em; }.login-back:hover { color:var(--accent); }
.admin-shell { min-height:100vh; display:grid; grid-template-columns:270px minmax(0,1fr); background:#0b0b0d; }.admin-sidebar { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; padding:31px 21px; border-right:1px solid #2e2e32; background:#101012; }.admin-sidebar .eyebrow { margin:52px 0 17px; }.admin-new { padding:13px; border:1px solid #586c2b; color:var(--accent); font:10px var(--mono); text-align:center; letter-spacing:.07em; text-transform:uppercase; }.admin-sidebar nav { flex:1; overflow:auto; margin-top:17px; }.admin-sidebar nav a { display:flex; justify-content:space-between; gap:8px; padding:13px 8px; border-bottom:1px solid #29292d; color:#babac1; font-size:11px; line-height:1.35; }.admin-sidebar nav a:hover,.admin-sidebar nav a.active { color:#f4f4f5; background:#18181a; }.admin-sidebar nav small { color:#73737c; white-space:nowrap; font:8px var(--mono); text-transform:uppercase; }.admin-logout { margin-top:20px; }.admin-logout button,.delete-project button { padding:0; border:0; background:none; color:#a1a1aa; font:10px var(--mono); text-transform:uppercase; letter-spacing:.07em; }.admin-logout button:hover,.delete-project button:hover { color:#f87171; }.admin-workspace { max-width:1060px; padding:clamp(35px,6vw,88px); }.admin-topline { display:flex; justify-content:space-between; gap:25px; align-items:flex-start; }.admin-topline h1 { margin:12px 0 0; font:500 clamp(35px,4vw,57px)/1 var(--serif); letter-spacing:-.045em; }.button.small { min-height:38px; padding:0 13px; font-size:9px; }.project-editor { display:grid; gap:23px; margin-top:35px; }.form-grid.two { display:grid; grid-template-columns:1fr 1fr; gap:20px; }.project-editor small { color:#777780; font:9px var(--sans); letter-spacing:normal; text-transform:none; }.project-editor fieldset { margin:0; border:1px solid #3f3f46; padding:9px 12px; min-height:71px; }.project-editor legend { color:#d4d4d8; font:10px var(--mono); letter-spacing:.07em; text-transform:uppercase; }.choice { display:inline-flex!important; grid-template-columns:auto!important; align-items:center; margin:4px 15px 0 0; font-size:11px!important; letter-spacing:normal!important; text-transform:none!important; }.choice input { min-height:auto!important; width:auto!important; margin:0 6px 0 0; accent-color:var(--accent); }.media-fields { display:grid; grid-template-columns:1fr 190px; gap:20px; align-items:end; }.media-fields>div { display:grid; gap:18px; }.project-editor input[type=file] { padding:9px 0; background:transparent; border:0; color:#a1a1aa; font-size:11px; }.admin-cover-preview { width:190px; height:132px; object-fit:cover; border:1px solid #3f3f46; }.editor-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:6px; }.delete-project { margin-top:48px; padding-top:22px; border-top:1px solid #3f3f46; }
.reveal,.reveal-delay { opacity:0; transform:translateY(18px); transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1); }.reveal-delay { transition-delay:.16s; }.is-visible { opacity:1; transform:translateY(0); }
@media (max-width:800px) { .site-header { top:10px; left:12px; right:12px; }.menu-toggle { display:block; }.site-nav { position:absolute; top:66px; left:0; right:0; padding:15px 19px; display:none; flex-direction:column; align-items:flex-start; gap:17px; border:1px solid #3f3f46; background:#111113; }.site-nav.open { display:flex; }.hero { min-height:690px; height:100svh; padding:0 24px; grid-template-columns:1fr; }.hero-content { grid-column:1; padding-top:86px; }.hero-content h1 { font-size:clamp(44px,13vw,70px); }.hero-meta { display:none; }.scroll-cue { left:24px; }.section-grid { grid-template-columns:1fr; gap:28px; }.section-pad { padding:90px 24px; }.section-index,.about-statement,.contact-card,.projects-heading .section-index,.projects-heading>div:nth-child(2),.project-intro,.services-intro,.service-list { grid-column:1; }.about-architecture,.projects-architecture,.services-architecture { width:90%; opacity:.28; }.projects-heading { padding:0 24px 45px; }.project-intro { max-width:350px; }.project-stack { padding:0 12px; }.project-card { min-height:0; margin-bottom:42px; top:80px; grid-template-columns:1fr; }.project-image-link { min-height:360px; }.project-copy { min-height:350px; padding:25px; }.project-copy h3 { font-size:36px; }.services { gap:0; }.service-list { margin-top:40px; }.service-list a { grid-template-columns:35px 1fr 25px; min-height:78px; }.service-list em { display:none; }.service-list strong { font-size:20px; }.contact-section { min-height:570px; padding:105px 24px; }.contact-architecture { width:100%; opacity:.48; }.contact-geometry { width:92%; opacity:.35; }.site-footer { padding:29px 24px; flex-direction:column; }.project-detail-hero { height:78vh; min-height:520px; }.back-link { left:24px; }.project-detail-title { left:24px; right:24px; bottom:42px; }.project-detail-title h1 { font-size:51px; }.article-layout { grid-template-columns:1fr; gap:40px; }.gallery-grid { grid-template-columns:1fr; }.gallery-grid img,.gallery-grid img:first-child { height:350px; grid-row:auto; }.install-card,.login-card { padding:28px 23px; }.admin-shell { display:block; }.admin-sidebar { position:relative; height:auto; min-height:0; padding:22px; border-right:0; border-bottom:1px solid #2e2e32; }.admin-sidebar .eyebrow { margin:30px 0 15px; }.admin-sidebar nav { max-height:150px; flex:none; }.admin-workspace { padding:34px 22px 75px; }.form-grid.two,.media-fields { grid-template-columns:1fr; }.admin-cover-preview { width:100%; height:200px; }.admin-topline { align-items:flex-end; }.admin-topline .button { white-space:nowrap; }.hero-noise { background-image:linear-gradient(100deg,rgba(9,9,11,.83),rgba(9,9,11,.22) 90%),radial-gradient(circle at 15% 36%,rgba(201,242,107,.12),transparent 36%); } }
@media (prefers-reduced-motion:reduce) { *,*:before,*:after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }
