:root { --ink:#0c0d0d; --paper:#e8e6df; --muted:#97968f; --rust:#7fa56d; --line:rgba(232,230,223,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--ink); }
body { margin:0; background:var(--ink); color:var(--paper); font-family:Arial, Helvetica, sans-serif; overflow-x:hidden; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
::selection { background:var(--rust); color:var(--ink); }
.site-header { position:fixed; z-index:50; top:0; left:0; width:100%; height:112px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; padding:0 clamp(22px,4vw,70px); background:rgba(12,13,13,.84); backdrop-filter:blur(16px); border-bottom:1px solid var(--line); }
.brand { width:62px; height:54px; display:flex; align-items:center; position:relative; font-weight:900; letter-spacing:-4px; font-size:34.5px; }
.brand i { position:absolute; left:0; bottom:2px; width:34px; height:3px; background:var(--rust); transform:skewX(-30deg); }
.brand-logo { width:clamp(235px,22vw,330px); height:88px; overflow:hidden; justify-content:center; flex-shrink:0; }
.brand-logo img { display:block; width:100%; height:auto; max-width:none; transform:scale(1.55); transform-origin:center; }
.site-nav { display:flex; justify-self:center; gap:clamp(16px,2.2vw,38px); font-size:24px; text-transform:uppercase; letter-spacing:.08em; white-space:nowrap; }
.site-nav a { color:#b9b8b2; transition:.25s; position:relative; }
.site-nav a::after { content:""; position:absolute; left:0; bottom:-8px; width:0; height:1px; background:var(--rust); transition:.25s; }
.site-nav a:hover { color:white; }
.site-nav a:hover::after { width:100%; }
.header-cta { justify-self:end; text-transform:uppercase; letter-spacing:.08em; font-weight:800; font-size:22px; border-bottom:1px solid #777; padding:12px 0; white-space:nowrap; }
.header-cta span { color:var(--rust); padding-left:12px; }
.menu-button { display:none; background:none; border:0; width:42px; height:42px; padding:10px; color:white; }
.menu-button span { height:1px; background:white; display:block; margin:7px 0; transition:transform .3s; }
.hero { min-height:100svh; padding:190px clamp(22px,7vw,110px) 80px; position:relative; display:flex; flex-direction:column; justify-content:center; overflow:hidden; }
.hero-grid { position:absolute; inset:112px 0 0; opacity:.16; background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:76px 76px; mask-image:linear-gradient(to bottom,#000 45%,transparent 95%); }
.hero::before { content:""; position:absolute; width:42vw; height:42vw; max-width:620px; max-height:620px; right:1vw; top:15%; border:1px solid rgba(127,165,109,.45); border-radius:50%; box-shadow:0 0 120px rgba(127,165,109,.08); animation:orbit 18s linear infinite; }
.hero::after { content:""; position:absolute; width:7px; height:7px; border-radius:50%; right:21.6vw; top:15%; background:var(--rust); box-shadow:0 0 20px var(--rust); }
@keyframes orbit { to { transform:rotate(360deg); } }
.hero-kicker,.eyebrow { position:relative; z-index:2; font-family:"Courier New",monospace; color:#a7a69f; font-size:22px; letter-spacing:.11em; text-transform:uppercase; }
.status-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--rust); margin-right:10px; box-shadow:0 0 0 5px rgba(127,165,109,.14); animation:pulse 2s infinite; }
@keyframes pulse { 50% { box-shadow:0 0 0 10px rgba(127,165,109,0); } }
.hero h1 { z-index:2; margin:35px 0 45px; max-width:1100px; font-size:clamp(64px,10vw,156px); line-height:.81; letter-spacing:-.075em; font-weight:900; text-transform:uppercase; }
.hero h1.hero-statement { max-width:1120px; margin-bottom:26px; font-size:clamp(32px,3.4vw,54px); line-height:1.02; letter-spacing:-.04em; }
h1 em,h2 em { color:var(--rust); font-style:normal; }
.hero-support { position:relative; z-index:2; max-width:940px; margin:0 0 36px; color:#aaa9a3; font-size:clamp(20px,1.55vw,25.5px); font-weight:600; line-height:1.58; }
.hero-bottom { z-index:2; display:flex; justify-content:space-between; align-items:end; max-width:1050px; gap:40px; }
.hero-bottom p { max-width:620px; color:#aaa9a3; font-size:clamp(24px,2.25vw,31.5px); line-height:1.5; margin:0; }
.primary-cta { width:min(360px,100%); min-height:84px; display:flex; align-items:center; justify-content:space-between; padding:0 14px 0 26px; background:var(--rust); color:#0b0b0b; text-transform:uppercase; letter-spacing:.08em; font-size:24px; font-weight:900; transition:transform .3s,background .3s; }
.primary-cta b { width:56px; height:56px; display:grid; place-items:center; border:1px solid rgba(0,0,0,.3); font-size:27px; transition:transform .3s; }
.primary-cta:hover { background:#92b780; transform:translateY(-3px); }
.primary-cta:hover b { transform:rotate(45deg); }
.scroll-mark { position:absolute; left:clamp(22px,4vw,70px); bottom:50px; display:flex; align-items:center; gap:14px; transform:rotate(-90deg); transform-origin:left; font-size:18px; text-transform:uppercase; letter-spacing:.14em; color:#777; }
.scroll-mark i { width:55px; height:1px; background:#555; }
.scroll-mark:hover,.scroll-mark:focus-visible { color:var(--paper); }
.scroll-mark:hover i,.scroll-mark:focus-visible i { background:var(--rust); }
.hero-index { position:absolute; right:clamp(22px,4vw,70px); bottom:38px; color:#575853; font:22px "Courier New",monospace; }
.section-shell { padding-left:clamp(22px,7vw,110px); padding-right:clamp(22px,7vw,110px); }
.projects { padding-top:130px; padding-bottom:160px; background:#111212; }
.section-heading { display:grid; grid-template-columns:1.35fr .65fr; gap:60px; align-items:end; margin-bottom:75px; }
.section-heading h2,.process h2,.about h1,.about h2,.contact h2 { margin:18px 0 0; font-size:clamp(48px,7vw,104px); letter-spacing:-.065em; line-height:.87; text-transform:uppercase; }
.section-heading h2.service-promise { max-width:900px; font-size:clamp(36px,4.2vw,68px); line-height:.98; letter-spacing:-.045em; }
.section-heading > p { max-width:540px; color:#92928c; line-height:1.6; font-size:22.5px; border-left:1px solid #3b3b38; padding-left:30px; }
.section-heading > .demo-intro {
  max-width:620px;
  padding:28px 30px;
  color:var(--paper);
  font-weight:700;
  line-height:1.45;
  background:#191a1a;
  border:1px solid #343532;
  border-left:5px solid var(--rust);
  box-shadow:12px 12px 0 rgba(127,165,109,.2),0 20px 50px rgba(0,0,0,.28);
}
.layout-demo { width:min(100%,520px); justify-self:end; border:1px solid #343532; background:#141515; box-shadow:14px 14px 0 rgba(127,165,109,.12); animation:demo-float 5s ease-in-out infinite; }
.layout-demo-bar { height:42px; display:flex; align-items:center; gap:7px; padding:0 14px; border-bottom:1px solid #343532; color:#777; font:14px "Courier New",monospace; letter-spacing:.09em; }
.layout-demo-bar i { width:6px; height:6px; border-radius:50%; background:#555; }
.layout-demo-bar span { margin-left:auto; }
.layout-demo-stage { min-height:300px; padding:44px 38px; position:relative; overflow:hidden; background-image:linear-gradient(rgba(232,230,223,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(232,230,223,.045) 1px,transparent 1px); background-size:30px 30px; }
.layout-demo-label { display:block; margin-bottom:27px; color:var(--rust); font:15px "Courier New",monospace; letter-spacing:.13em; }
.layout-demo-title,.layout-demo-line,.layout-demo-button { display:block; position:relative; overflow:hidden; }
.layout-demo-title { width:72%; height:38px; margin-bottom:25px; background:#d9d7cf; }
.layout-demo-line { width:88%; height:8px; margin-bottom:13px; background:#5e605b; }
.layout-demo-line.short { width:58%; }
.layout-demo-button { width:125px; height:42px; margin-top:34px; background:var(--rust); }
.layout-demo-title::after,.layout-demo-line::after,.layout-demo-button::after { content:""; position:absolute; inset:0; background:#202221; transform:translateX(-105%); animation:demo-build 3.6s ease-in-out infinite; }
.layout-demo-line::after { animation-delay:.18s; }
.layout-demo-line.short::after { animation-delay:.32s; }
.layout-demo-button::after { animation-delay:.48s; }
.layout-demo-cursor { position:absolute; right:18%; bottom:22%; color:var(--paper); font-size:34px; filter:drop-shadow(0 4px 8px #000); animation:demo-cursor 3.6s ease-in-out infinite; }
@keyframes demo-build { 0%,12% { transform:translateX(0); } 46%,82% { transform:translateX(105%); } 100% { transform:translateX(0); } }
@keyframes demo-cursor { 0%,18% { transform:translate(46px,40px); } 58%,78% { transform:translate(0,0); } 100% { transform:translate(46px,40px); } }
@keyframes demo-float { 50% { transform:translateY(-7px); } }
.project-list { display:grid; grid-template-columns:1fr 1fr; gap:90px 28px; }
.project-list,.project-card,.project-window,.window-content,.project-caption { min-width:0; max-width:100%; }
.project-card { display:flex; flex-direction:column; }
.project-meta { display:flex; justify-content:space-between; gap:20px; font:20px "Courier New",monospace; text-transform:uppercase; letter-spacing:.08em; color:#777; padding:0 3px 18px; }
.project-meta span { min-width:0; overflow-wrap:anywhere; }
.project-window { aspect-ratio:1.42/1; padding:6%; overflow:hidden; transition:transform .45s cubic-bezier(.2,.8,.2,1); position:relative; }
.project-card:hover .project-window { transform:translateY(-8px); }
.project-rust .project-window { background:#597452; }
.project-purple .project-window { aspect-ratio:2441/903; min-height:0; padding:0; background:#6d28d9; border:1px solid #3c275f; }
.project-concrete .project-window { aspect-ratio:2441/903; min-height:0; padding:0; background:#292722; border:1px solid #4b463d; }
.project-psychology .project-window { aspect-ratio:2441/903; min-height:0; padding:0; background:#efd65f; border:1px solid #c2ad4f; }
.project-metal .project-window { aspect-ratio:2441/903; min-height:0; padding:0; background:#030303; border:1px solid #343434; }
.project-cream .project-window { background:#d8d0bd; }
.project-blue .project-window { background:#344d58; }
.project-sage .project-window { background:#77866f; }
.window-bar { height:38px; background:#151616; display:flex; align-items:center; gap:7px; padding:0 12px; color:#64645f; }
.window-bar i { width:5px; height:5px; background:#5a5a56; border-radius:50%; }
.window-bar b { margin-left:10px; font:14px "Courier New",monospace; font-weight:400; }
.window-bar b { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.window-content { height:calc(100% - 38px); background:#ece8dd; color:#151616; padding:9% 8%; position:relative; display:flex; flex-direction:column; }
.project-rust .window-content { background:#151616; color:#eee; }
.project-purple .window-content { background:#100b18; color:#eee; }
.project-blue .window-content { background:#dae0db; }
.project-sage .window-content { background:#e2e6dc; }
.project-preview-image { display:block; width:100%; height:100%; object-fit:cover; }
.project-preview-atelier { object-position:left center; }
.project-preview-psychology { object-fit:contain; object-position:center; background:#f1d75f; }
.project-preview-metal { object-fit:contain; object-position:center; background:#030303; }
.mock-label { font:14px "Courier New",monospace; text-transform:uppercase; letter-spacing:.1em; opacity:.55; }
.window-content strong { margin-top:auto; font-size:clamp(20px,3.5vw,54px); max-width:80%; line-height:.89; letter-spacing:-.06em; text-transform:uppercase; }
.mock-lines { margin:18px 0; display:grid; gap:4px; }
.mock-lines i { width:45%; height:2px; background:currentColor; opacity:.25; }
.mock-lines i:nth-child(2) { width:33%; }
.mock-lines i:nth-child(3) { width:38%; }
.mock-button { align-self:flex-start; border:1px solid currentColor; padding:10px 14px; font:14px "Courier New",monospace; text-transform:uppercase; }
.project-caption { position:relative; padding-top:22px; display:flex; flex:1; flex-direction:column; border-top:1px solid #30312f; margin-top:18px; }
.project-caption h3 { margin:0 0 10px; font-size:33px; letter-spacing:-.03em; }
.project-caption > p { margin:0; padding-right:48px; color:#8f9089; font:18px "Courier New",monospace; line-height:1.45; text-transform:uppercase; letter-spacing:.08em; }
.project-description { margin:25px 0 30px; padding:24px 48px 0 0; border-top:1px solid rgba(255,255,255,.09); }
.project-description > p { margin:0; color:#aaa9a2; font-size:18px; line-height:1.65; }
.project-description h4 { margin:28px 0 15px; color:var(--rust); font:15px "Courier New",monospace; letter-spacing:.1em; text-transform:uppercase; }
.project-description ul { margin:0; padding:0; display:grid; gap:9px; list-style:none; color:#cdcdc6; font-size:17px; line-height:1.45; }
.project-description li { position:relative; padding-left:19px; }
.project-description li::before { content:""; width:8px; height:1px; position:absolute; left:0; top:.72em; background:var(--rust); }
.project-open-cta { margin:auto 48px 0 0; min-height:58px; padding:14px 18px; display:flex; align-items:center; justify-content:space-between; gap:20px; color:#101310; background:var(--rust); border:1px solid var(--rust); font:700 14px/1.35 "Courier New",monospace; letter-spacing:.065em; text-transform:uppercase; transition:color .3s,background .3s,border-color .3s,transform .3s,box-shadow .3s; }
.project-open-cta b { font-size:22px; font-weight:400; transition:transform .3s; }
.project-card:hover .project-open-cta { color:#edf2ea; background:rgba(127,165,109,.13); border-color:rgba(127,165,109,.72); box-shadow:0 12px 28px rgba(0,0,0,.2); transform:translateY(-3px); }
.project-card:hover .project-open-cta b { transform:translate(3px,-3px); }
.project-caption > span { position:absolute; right:3px; top:22px; color:var(--rust); font-size:33px; transition:transform .3s; }
.project-card:hover .project-caption > span { transform:rotate(45deg); }
.statement { background:#000; color:var(--paper); min-height:560px; padding:110px clamp(22px,10vw,155px); position:relative; overflow:hidden; }
.statement .eyebrow { color:rgba(127,165,109,.82); }
.statement p { font-weight:900; max-width:1170px; font-size:clamp(38px,6vw,82px); line-height:1.03; letter-spacing:-.055em; margin:70px 0 0; text-transform:uppercase; position:relative; z-index:2; }
.statement p em { color:var(--rust); font-style:normal; }
.statement-art { position:absolute; z-index:1; right:-3vw; top:50%; width:min(68vw,720px); height:auto; opacity:.12; transform:translateY(-50%) scale(.95); filter:brightness(.55) contrast(.85) saturate(.8); animation:statement-breathe 7.5s ease-in-out infinite; pointer-events:none; }
@keyframes statement-breathe {
  0%,100% { opacity:.12; transform:translateY(-50%) scale(.95); filter:brightness(.55) contrast(.85) saturate(.8); }
  50% { opacity:1; transform:translateY(-50%) scale(1.07); filter:brightness(1.7) contrast(1.35) saturate(1.3); }
}
.services { padding-top:150px; padding-bottom:150px; }
.service-list { border-top:1px solid var(--line); }
.service-link { display:block; }
.service-row { display:grid; grid-template-columns:80px 1fr 1.15fr 48px; gap:30px; align-items:center; border-bottom:1px solid var(--line); padding:46px 10px; transition:background .3s,padding .3s; }
.service-row > * { min-width:0; }
.service-row:hover { background:#151616; padding-left:25px; padding-right:25px; }
.service-row > span { color:var(--rust); font:22px "Courier New",monospace; }
.service-row h3 { margin:0; font-size:clamp(33px,3.75vw,55.5px); letter-spacing:-.04em; }
.service-row p { margin:0; color:#898984; line-height:1.45; font-size:26px; max-width:560px; }
.service-row b { color:#555; font-size:30px; transition:.3s; }
.service-row:hover b { color:var(--rust); transform:rotate(45deg); }
.service-guidance { width:min(100%,980px); margin:58px auto 0; padding:25px 32px; display:block; appearance:none; color:#c0c2bb; font-family:inherit; font-size:25.5px; line-height:1.55; text-align:center; background:rgba(127,165,109,.055); border:1px solid rgba(127,165,109,.18); border-radius:0; box-shadow:0 14px 34px rgba(0,0,0,.1); cursor:pointer; transition:color .3s,background .3s,border-color .3s,transform .3s; }
.service-guidance:hover,.service-guidance:focus-visible { color:#e1e6dd; background:rgba(127,165,109,.11); border-color:rgba(127,165,109,.42); transform:translateY(-3px); }
.process { background:#181919; padding:140px 0; }
.process-title { margin-bottom:100px; }
.process-title h2 { display:grid; gap:clamp(20px,2.2vw,38px); line-height:.88; }
.process-title h2 span { display:block; }
.steps { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.step { position:relative; padding:30px 28px 34px; background:#1d1f1e; border:1px solid rgba(232,230,223,.09); box-shadow:0 15px 35px rgba(0,0,0,.13); transition:transform .3s,border-color .3s,background .3s; }
.step:hover { transform:translateY(-5px); border-color:rgba(127,165,109,.38); background:#202220; }
.step > span { color:#777; font:20px "Courier New",monospace; }
.step i { display:block; width:100%; height:1px; background:#3c3d3a; margin:22px 0 35px; position:relative; }
.step i::before { content:""; position:absolute; left:0; top:-4px; width:9px; height:9px; background:var(--rust); }
.step h3 { font-size:30px; margin:0 0 14px; }
.step p { color:#777; font-size:26px; line-height:1.45; max-width:260px; }
.about { display:grid; grid-template-columns:.9fr 1.1fr; gap:10vw; align-items:center; padding-top:160px; padding-bottom:160px; }
.hero-about { min-height:100svh; padding-top:170px; padding-bottom:120px; position:relative; }
.anchor-target { position:absolute; top:0; left:0; }
.about-visual { position:relative; }
.identity-card { min-height:650px; padding:48px 40px 120px; position:relative; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; background:linear-gradient(145deg,#1d201e,#121313 68%); border:1px solid #353a35; box-shadow:0 28px 60px rgba(0,0,0,.24); }
.identity-card::before { content:""; position:absolute; inset:18px; border:1px solid rgba(127,165,109,.13); pointer-events:none; }
.identity-watermark { position:absolute; z-index:0; left:50%; top:48%; width:700%; max-width:none; height:auto; opacity:.075; transform:translate(-50%,-50%); filter:grayscale(1); pointer-events:none; }
.identity-card-head,.identity-card-list { position:relative; z-index:1; }
.identity-card-head { display:grid; gap:10px; padding-bottom:34px; border-bottom:1px solid rgba(232,230,223,.16); }
.identity-card-head strong { font-size:clamp(34px,4vw,56px); line-height:.9; letter-spacing:-.045em; }
.identity-card-head span { color:var(--rust); font:18px "Courier New",monospace; letter-spacing:.1em; }
.identity-card-list { display:grid; margin-top:70px; }
.identity-card-list div { display:grid; grid-template-columns:48px 1fr; gap:14px; align-items:start; padding:19px 0; border-bottom:1px solid rgba(232,230,223,.12); }
.identity-card-list div:first-child { border-top:1px solid rgba(232,230,223,.12); }
.identity-card-list span { color:var(--rust); font:18px "Courier New",monospace; }
.identity-card-list strong { font-size:18px; line-height:1.35; letter-spacing:.055em; }
.about-code { position:absolute; right:-55px; bottom:-42px; background:var(--rust); color:#111; padding:22px 32px; font:18px/1.55 "Courier New",monospace; letter-spacing:.08em; }
.about-copy h1,.about-copy h2 { font-size:clamp(46px,6vw,85px); }
.about-copy > p { font-size:27px; line-height:1.6; color:#aaa9a3; max-width:700px; margin:48px 0; }
.about-points { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }
.about-points span { padding:24px 0; border-bottom:1px solid var(--line); font:20px "Courier New",monospace; text-transform:uppercase; letter-spacing:.07em; position:relative; }
.about-points span::before { content:"—"; color:var(--rust); margin-right:12px; }
.contact { background:var(--paper); color:var(--ink); min-height:820px; padding:130px clamp(22px,10vw,155px) 210px; position:relative; overflow:hidden; }
.contact-noise { position:absolute; inset:0; opacity:.3; background-image:radial-gradient(#777 .5px,transparent .5px); background-size:7px 7px; mask-image:linear-gradient(90deg,transparent,#000); }
.contact .eyebrow { color:#666; }
.contact h2 { position:relative; font-size:clamp(60px,10vw,150px); line-height:1.08; margin:50px 0 35px; }
.contact p { position:relative; max-width:720px; font-size:25.5px; line-height:1.55; color:#62625d; margin-bottom:48px; }
.contact .primary-cta { position:relative; }
.contact-details { position:absolute; left:clamp(22px,10vw,155px); right:clamp(22px,10vw,155px); bottom:45px; border-top:1px solid #bcbab2; padding-top:28px; display:flex; justify-content:space-between; gap:30px; font:20px "Courier New",monospace; text-transform:uppercase; letter-spacing:.08em; }
.contact-details a { font-size:26px; text-decoration:underline; text-underline-offset:6px; }
footer { min-height:155px; padding:24px clamp(22px,4vw,70px); display:grid; grid-template-columns:90px 1fr auto; gap:clamp(24px,4vw,64px); align-items:center; color:#6f706b; font:16px "Courier New",monospace; text-transform:uppercase; letter-spacing:.07em; }
.footer-brand { width:78px; height:70px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.footer-brand img { display:block; width:600%; max-width:none; height:auto; flex:none; transition:transform .3s ease,filter .3s ease; }
.footer-brand:hover img,.footer-brand:focus-visible img { transform:scale(1.05); filter:brightness(1.25); }
.footer-meta { display:grid; gap:15px; }
.footer-legal { display:flex; flex-wrap:wrap; gap:10px 24px; }
.footer-legal button { padding:0 0 4px; color:#aaa; background:none; border:0; border-bottom:1px solid #3d403d; font:inherit; text-transform:uppercase; letter-spacing:inherit; cursor:pointer; transition:color .2s,border-color .2s; }
.footer-legal button:hover,.footer-legal button:focus-visible { color:var(--paper); border-color:var(--rust); }
.footer-top { justify-self:end; color:#aaa; white-space:nowrap; }
.quote-dialog { width:min(960px,calc(100% - 36px)); max-height:calc(100dvh - 36px); padding:0; overflow:auto; color:var(--paper); background:#101111; border:1px solid #3b403b; box-shadow:0 35px 100px rgba(0,0,0,.6); }
.quote-dialog::backdrop { background:rgba(0,0,0,.78); backdrop-filter:blur(7px); }
.quote-dialog[open] { animation:quote-dialog-in .28s ease-out; }
@keyframes quote-dialog-in { from { opacity:0; transform:translateY(18px) scale(.985); } }
.quote-panel { padding:clamp(28px,5vw,58px); }
.quote-dialog-head { display:grid; grid-template-columns:1fr auto; gap:30px; align-items:start; padding-bottom:35px; border-bottom:1px solid var(--line); }
.quote-dialog-head > div > span { color:var(--rust); font:18px "Courier New",monospace; letter-spacing:.11em; }
.quote-dialog-head h2 { margin:22px 0 0; max-width:760px; font-size:clamp(38px,5.5vw,68px); line-height:1.02; letter-spacing:-.055em; text-transform:uppercase; }
.quote-close { width:52px; height:52px; padding:0; color:var(--paper); background:transparent; border:1px solid #484a46; font-size:38px; line-height:1; cursor:pointer; transition:border-color .25s,color .25s; }
.quote-close:hover,.quote-close:focus-visible { color:var(--rust); border-color:var(--rust); }
.quote-form { display:grid; grid-template-columns:1fr 1fr; gap:26px; padding-top:38px; }
.quote-form label { display:grid; gap:11px; }
.quote-form label > span { color:#b5b6b0; font:18px "Courier New",monospace; text-transform:uppercase; letter-spacing:.07em; }
.quote-form input,.quote-form textarea,.quote-form select { width:100%; padding:16px 18px; color:var(--paper); background:#181a19; border:1px solid #3d403d; border-radius:0; outline:0; font:22px/1.4 Arial,Helvetica,sans-serif; transition:border-color .25s,box-shadow .25s; }
.quote-form select { min-height:64px; color-scheme:dark; }
.quote-form textarea { resize:vertical; min-height:170px; }
.quote-form input:focus,.quote-form textarea:focus,.quote-form select:focus { border-color:var(--rust); box-shadow:0 0 0 3px rgba(127,165,109,.12); }
.quote-field-full { grid-column:1/-1; }
.quote-form .form-consent { display:flex; grid-template-columns:none; gap:13px; align-items:flex-start; padding:4px 0; color:#aaa; font:17px/1.5 Arial,Helvetica,sans-serif; text-transform:none; letter-spacing:0; }
.quote-form .form-consent input { width:21px; height:21px; flex:0 0 21px; margin:2px 0 0; padding:0; accent-color:var(--rust); }
.quote-form .form-consent > span { color:#aaa; font:inherit; text-transform:none; letter-spacing:0; }
.form-consent a { color:var(--paper); text-decoration:underline; text-decoration-color:var(--rust); text-underline-offset:4px; }
.honeypot-field { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.form-status { padding:15px 18px; border:1px solid #4a4d48; color:#c4c5bf; font-size:17px; line-height:1.5; }
.form-status.is-success { border-color:rgba(127,165,109,.7); background:rgba(127,165,109,.09); }
.form-status.is-error { border-color:#a65f5f; background:rgba(166,95,95,.1); color:#efcaca; }
.quote-form-actions { display:flex; justify-content:space-between; gap:30px; align-items:end; padding-top:8px; }
.quote-form-actions p { max-width:520px; margin:0; color:#858780; font-size:18px; line-height:1.5; }
.quote-form-actions button { min-width:220px; min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:28px; padding:0 24px; color:#111; background:var(--rust); border:0; font-weight:900; font-size:20px; text-transform:uppercase; letter-spacing:.08em; cursor:pointer; }
.quote-form-actions button:hover { background:#92b780; }
.quote-form-actions button:disabled { cursor:wait; opacity:.7; }
.quote-success { padding:clamp(46px,8vw,90px) 0 20px; }
.quote-success > span { color:var(--rust); font:18px "Courier New",monospace; letter-spacing:.11em; }
.quote-success p { max-width:760px; margin:24px 0 38px; font-size:clamp(27px,4vw,46px); line-height:1.25; letter-spacing:-.025em; }
.quote-success-close,.cookie-save { min-width:190px; min-height:58px; padding:0 22px; color:#111; background:var(--rust); border:0; font-weight:900; text-transform:uppercase; letter-spacing:.08em; cursor:pointer; }
.legal-dialog { width:min(780px,calc(100% - 36px)); max-height:calc(100dvh - 36px); padding:0; overflow:auto; color:var(--paper); background:#101111; border:1px solid #3b403b; box-shadow:0 35px 100px rgba(0,0,0,.65); }
.legal-dialog::backdrop { background:rgba(0,0,0,.78); backdrop-filter:blur(7px); }
.legal-dialog[open] { animation:quote-dialog-in .28s ease-out; }
.legal-panel { padding:clamp(28px,5vw,52px); }
.legal-dialog-head { display:grid; grid-template-columns:1fr auto; gap:24px; align-items:start; padding-bottom:28px; border-bottom:1px solid var(--line); }
.legal-dialog-head span { color:var(--rust); font:16px "Courier New",monospace; letter-spacing:.11em; }
.legal-dialog-head h2 { margin:16px 0 0; font-size:clamp(34px,5vw,58px); line-height:1; letter-spacing:-.04em; text-transform:uppercase; }
.legal-close { width:48px; height:48px; padding:0; color:var(--paper); background:transparent; border:1px solid #484a46; font-size:34px; line-height:1; cursor:pointer; }
.legal-close:hover,.legal-close:focus-visible { color:var(--rust); border-color:var(--rust); }
.legal-content,.cookie-content { padding-top:30px; color:#b7b8b2; font-size:21px; line-height:1.65; }
.legal-content p,.cookie-content > p { margin:0; }
.cookie-banner { position:fixed; z-index:80; left:clamp(16px,3vw,42px); bottom:clamp(16px,3vw,36px); width:min(760px,calc(100% - 32px)); padding:24px; display:grid; grid-template-columns:1fr auto; gap:26px; align-items:end; color:var(--paper); background:rgba(15,16,16,.96); border:1px solid #414640; box-shadow:0 24px 70px rgba(0,0,0,.55); backdrop-filter:blur(12px); }
.cookie-banner[hidden] { display:none; }
.cookie-banner-copy > span { color:var(--rust); font:15px "Courier New",monospace; letter-spacing:.12em; }
.cookie-banner-copy p { margin:10px 0 0; color:#b4b5af; font-size:17px; line-height:1.55; }
.cookie-banner-actions { display:flex; gap:10px; }
.cookie-banner-actions button,.cookie-dialog-actions button { min-height:48px; padding:0 18px; border:1px solid #51554f; color:var(--paper); background:transparent; font:14px "Courier New",monospace; font-weight:700; text-transform:uppercase; letter-spacing:.06em; cursor:pointer; }
.cookie-banner-actions .cookie-accept,.cookie-dialog-actions .cookie-save { color:#111; background:var(--rust); border-color:var(--rust); }
.cookie-category { margin-top:18px; padding:20px; display:flex; justify-content:space-between; gap:25px; align-items:center; background:#181a19; border:1px solid #3a3e39; }
.cookie-category div { display:grid; gap:7px; }
.cookie-category strong { color:var(--paper); font-size:19px; }
.cookie-category small { color:#92958e; font-size:16px; }
.cookie-category > span { color:var(--rust); font:13px "Courier New",monospace; text-transform:uppercase; letter-spacing:.06em; white-space:nowrap; }
.cookie-category.is-disabled { opacity:.62; }
.cookie-dialog-actions { margin-top:28px; display:flex; justify-content:space-between; gap:14px; }
[data-reveal] { opacity:0; transform:translateY(35px); transition:opacity .75s ease,transform .75s cubic-bezier(.2,.8,.2,1); }
[data-reveal].is-visible { opacity:1; transform:none; }
.project-card:nth-child(2),.step:nth-child(2) { transition-delay:.08s; }
.project-card:nth-child(3),.step:nth-child(3) { transition-delay:.16s; }
.step:nth-child(4) { transition-delay:.24s; }

/* Szolgáltatás-aloldalak */
.subpage-main { padding-top:112px; }
.subpage-hero { min-height:72svh; padding:120px clamp(22px,7vw,110px) 80px; display:flex; flex-direction:column; justify-content:end; position:relative; overflow:hidden; border-bottom:1px solid var(--line); }
.subpage-hero::before { content:""; position:absolute; width:48vw; height:48vw; min-width:420px; min-height:420px; right:-12vw; top:-12vw; border:1px solid rgba(127,165,109,.36); border-radius:50%; box-shadow:0 0 120px rgba(127,165,109,.08); }
.subpage-number { font:22px "Courier New",monospace; color:var(--rust); letter-spacing:.11em; text-transform:uppercase; position:relative; }
.subpage-hero h1 { margin:30px 0 35px; max-width:1080px; font-size:clamp(58px,9vw,140px); line-height:.85; letter-spacing:-.07em; text-transform:uppercase; position:relative; }
.subpage-hero > p { max-width:820px; color:#aaa9a3; font-size:clamp(25.5px,2.7vw,36px); line-height:1.5; position:relative; margin:0; }
.service-detail { padding-top:120px; padding-bottom:140px; }
.detail-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:9vw; }
.detail-aside { border-top:1px solid var(--rust); padding-top:26px; color:#85857f; font:20px/1.6 "Courier New",monospace; text-transform:uppercase; letter-spacing:.07em; }
.audience-tags { align-self:start; display:grid; gap:0; padding:12px 22px; color:#c6c8c1; background:linear-gradient(135deg,rgba(127,165,109,.1),rgba(127,165,109,.025) 58%,transparent); border:1px solid rgba(127,165,109,.28); border-left:4px solid var(--rust); box-shadow:0 14px 34px rgba(0,0,0,.12); animation:audience-breathe 5.5s ease-in-out infinite; }
.audience-tags > span { position:relative; display:block; padding:18px 8px 18px 27px; border-bottom:1px solid rgba(232,230,223,.08); }
.audience-tags > span:last-of-type { border-bottom:0; }
.audience-tags > span::before { content:""; position:absolute; left:2px; top:50%; width:7px; height:7px; border-radius:50%; background:var(--rust); transform:translateY(-50%); box-shadow:0 0 0 5px rgba(127,165,109,.08); }
@keyframes audience-breathe {
  0%,100% { border-color:rgba(127,165,109,.24); box-shadow:0 14px 34px rgba(0,0,0,.12),0 0 0 rgba(127,165,109,0); }
  50% { border-color:rgba(127,165,109,.38); box-shadow:0 14px 34px rgba(0,0,0,.14),0 0 28px rgba(127,165,109,.08); }
}
.service-demo-card { min-width:0; margin:24px -10px -1px; padding:10px; color:var(--paper); background:#0b0c0c; border:1px solid rgba(232,230,223,.14); box-shadow:0 24px 55px rgba(0,0,0,.28); text-transform:none; letter-spacing:normal; }
.service-demo-head { min-height:72px; padding:8px 8px 16px; display:flex; align-items:end; justify-content:space-between; gap:18px; }
.service-demo-head small { display:block; margin-bottom:5px; color:var(--rust); font:11px "Courier New",monospace; letter-spacing:.12em; text-transform:uppercase; }
.service-demo-head strong { display:block; font:700 22px/1.05 Arial,Helvetica,sans-serif; letter-spacing:-.03em; }
.service-demo-head a { flex:0 0 auto; padding-bottom:5px; color:#d4d6cf; border-bottom:1px solid rgba(127,165,109,.55); font:11px "Courier New",monospace; letter-spacing:.08em; text-transform:uppercase; transition:color .3s,border-color .3s; }
.service-demo-head a:hover { color:var(--rust); border-color:var(--rust); }
.service-demo-viewport { width:100%; aspect-ratio:4/3; position:relative; overflow:hidden; background:#050606; border:1px solid rgba(232,230,223,.12); }
.service-demo-viewport iframe { width:320%; height:320%; display:block; border:0; transform:scale(.3125); transform-origin:top left; pointer-events:none; }
.service-demo-card > p { margin:0; padding:12px 8px 5px; color:#757872; font:11px/1.4 "Courier New",monospace; letter-spacing:.08em; text-transform:uppercase; }
.detail-copy h2 { margin:0 0 42px; font-size:clamp(38px,5vw,70px); line-height:.95; letter-spacing:-.055em; text-transform:uppercase; }
.detail-copy > p { max-width:780px; color:#aaa9a3; font-size:25.5px; line-height:1.65; }
.deliverables { margin-top:60px; border-top:1px solid var(--line); }
.deliverable { display:grid; grid-template-columns:50px 1fr; gap:25px; padding:24px 0; border-bottom:1px solid var(--line); }
.deliverable span { color:var(--rust); font:20px "Courier New",monospace; }
.deliverable h3 { margin:0 0 9px; font-size:30px; }
.deliverable p { margin:0; color:#777; font-size:26px; line-height:1.5; }
.feature-points { display:grid; gap:16px; border-top:0; }
.feature-points .deliverable { padding:30px 28px; background:#171918; border:1px solid rgba(232,230,223,.1); border-left:4px solid var(--rust); box-shadow:0 14px 35px rgba(0,0,0,.14); transition:transform .3s,border-color .3s,background .3s; }
.feature-points .deliverable:hover { transform:translateX(5px); border-color:rgba(127,165,109,.38); border-left-color:var(--rust); background:#1b1d1b; }
.feature-points .deliverable span { padding-top:5px; }
.feature-points .deliverable h3 { color:var(--paper); }
.feature-points .deliverable p { color:#aaa9a3; }
.subpage-contact { background:var(--rust); color:#111; padding:100px clamp(22px,10vw,155px); display:grid; grid-template-columns:1fr auto; gap:50px; align-items:end; }
.subpage-contact h2 { margin:0; font-size:clamp(42px,7vw,92px); line-height:1.08; letter-spacing:-.06em; text-transform:uppercase; }
.subpage-contact .primary-cta { background:#111; color:var(--paper); }
.back-link { display:inline-flex; margin-top:55px; color:#aaa; font:20px "Courier New",monospace; text-transform:uppercase; letter-spacing:.08em; border-bottom:1px solid #555; padding-bottom:9px; }

@media (prefers-reduced-motion:reduce) {
  * { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
  [data-reveal] { opacity:1; transform:none; }
  .statement-art { opacity:.85; transform:translateY(-50%) scale(1); filter:brightness(1.2) contrast(1.1) saturate(1.05); }
}

@media (max-width:1200px) {
  .site-header { height:82px; grid-template-columns:1fr auto; padding:0 20px; }
  .brand-logo { width:235px; height:70px; justify-self:start; }
  .header-cta { display:none; }
  .menu-button { display:block; position:relative; z-index:3; }
  .menu-button.is-open span:first-child { transform:translateY(4px) rotate(45deg); }
  .menu-button.is-open span:last-child { transform:translateY(-4px) rotate(-45deg); }
  .site-nav { position:fixed; inset:0; background:#101111; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:34px; font-size:36px; transform:translateY(-100%); visibility:hidden; transition:transform .45s cubic-bezier(.2,.8,.2,1),visibility .45s; }
  .site-nav.nav-open { transform:none; visibility:visible; }
  .hero { padding:145px 22px 90px; min-height:920px; justify-content:center; }
  .hero::before { width:90vw; height:90vw; right:-45vw; top:22%; }
  .hero::after { display:none; }
  .hero-grid { background-size:48px 48px; }
  .hero h1 { font-size:clamp(55px,17vw,83px); line-height:.84; margin:35px 0; }
  .hero h1.hero-statement { font-size:clamp(31px,6.2vw,48px); line-height:1.04; }
  .hero-support { max-width:760px; margin-bottom:32px; font-size:22px; }
  .hero-bottom { display:block; }
  .hero-bottom p { font-size:24px; max-width:600px; margin-bottom:34px; }
  .primary-cta { width:100%; }
  .scroll-mark { left:22px; bottom:34px; transform:none; }
  .hero-index { bottom:25px; }
  .projects,.services { padding-top:95px; padding-bottom:100px; }
  .section-heading { display:block; margin-bottom:55px; }
  .section-heading h2,.process h2,.about h1,.about h2 { font-size:clamp(44px,13vw,67px); }
  .section-heading h2.service-promise { font-size:clamp(34px,8.5vw,58px); }
  .section-heading > p { margin-top:35px; }
  .layout-demo { margin-top:48px; justify-self:start; }
  .project-list { grid-template-columns:1fr; gap:70px; }
  .project-window { padding:4%; min-height:340px; }
  .project-caption h3 { padding-right:44px; }
  .project-description { padding-right:0; }
  .project-open-cta { margin-right:0; }
  .window-content strong { font-size:9vw; }
  .statement { min-height:auto; padding:90px 22px; }
  .statement p { font-size:clamp(34px,10vw,53px); margin-top:45px; }
  .statement-art { width:520px; right:-180px; }
  .service-row { grid-template-columns:48px 1fr 34px; gap:18px; padding:34px 2px; }
  .service-row h3 { font-size:33px; }
  .service-row p { grid-column:2/4; margin-top:3px; }
  .service-row:hover { padding-left:8px; padding-right:8px; }
  .service-guidance { margin-top:42px; padding:23px 20px; font-size:23px; text-align:left; }
  .process { padding:100px 0; }
  .process-title { margin-bottom:65px; }
  .steps { grid-template-columns:1fr; gap:22px; }
  .step { padding:28px 24px 32px; }
  .step i { margin-bottom:24px; }
  .about { grid-template-columns:1fr; gap:90px; padding-top:100px; padding-bottom:110px; }
  .hero-about { min-height:auto; padding-top:132px; padding-bottom:120px; }
  .about-visual { width:88%; }
  .identity-card { min-height:610px; padding:40px 32px 110px; }
  .identity-card-list { margin-top:55px; }
  .about-code { right:-13%; bottom:-42px; }
  .about-copy > p { font-size:24px; margin:38px 0; }
  .about-points { grid-template-columns:1fr; }
  .contact { min-height:900px; padding:100px 22px 220px; }
  .contact h2 { font-size:clamp(58px,17vw,85px); margin-top:35px; }
  .contact-details { left:22px; right:22px; bottom:35px; display:grid; gap:16px; }
  .contact-details span { display:none; }
  footer { grid-template-columns:78px 1fr; padding:28px 20px; min-height:170px; gap:22px; }
  .footer-brand { width:70px; height:64px; }
  .footer-meta > span { display:none; }
  .footer-top { grid-column:2; justify-self:start; }
  .subpage-main { padding-top:82px; }
  .subpage-hero { min-height:680px; padding:95px 22px 70px; }
  .subpage-hero::before { right:-320px; top:-170px; }
  .subpage-hero h1 { font-size:clamp(52px,15vw,78px); }
  .service-detail { padding-top:90px; padding-bottom:100px; }
  .detail-grid { grid-template-columns:1fr; gap:55px; }
  .detail-copy > p { font-size:24px; }
  .subpage-contact { padding:80px 22px; grid-template-columns:1fr; }
}

@media (max-width:600px) {
  .quote-panel { padding:26px 20px 28px; }
  .quote-dialog-head { gap:18px; padding-bottom:27px; }
  .quote-dialog-head h2 { font-size:36px; }
  .quote-close { width:44px; height:44px; font-size:32px; }
  .quote-form { grid-template-columns:1fr; gap:20px; padding-top:28px; }
  .quote-field-full { grid-column:auto; }
  .quote-form-actions { display:grid; gap:22px; }
  .quote-form-actions button { width:100%; }
  .quote-success p { font-size:27px; }
  .cookie-banner { grid-template-columns:1fr; gap:20px; padding:20px; }
  .cookie-banner-actions { display:grid; grid-template-columns:1fr 1fr; }
  .cookie-banner-actions button { width:100%; }
  .legal-dialog-head h2 { font-size:32px; }
  .cookie-category { align-items:start; flex-direction:column; gap:13px; }
  .cookie-dialog-actions { display:grid; }
  .cookie-dialog-actions button { width:100%; }
  .hero h1 { transform:scaleX(.74); transform-origin:left center; }
  .hero h1.hero-statement { font-size:clamp(29px,8.5vw,38px); transform:none; }
  .hero-support { font-size:20px; line-height:1.55; }
  .about-visual { width:100%; }
  .hero-about { padding-top:112px; }
  .identity-card { min-height:570px; padding:36px 25px 105px; }
  .identity-card::before { inset:12px; }
  .identity-card-head strong { font-size:36px; }
  .identity-card-head span { font-size:16px; }
  .identity-card-list { margin-top:42px; }
  .identity-card-list div { grid-template-columns:38px 1fr; gap:10px; padding:16px 0; }
  .identity-card-list span,.identity-card-list strong { font-size:16px; }
  .about-code { right:12px; bottom:-42px; }
  .process-title h2 { font-size:clamp(36px,10vw,46px); gap:22px; }
  .process-title h2 span { white-space:nowrap; }
  .section-heading h2,
  .process h2,
  .about h1,
  .about h2,
  .contact h2,
  .statement p,
  .subpage-hero h1,
  .detail-copy h2,
  .subpage-contact h2 { transform:scaleX(.8); transform-origin:left center; }
}
