:root{--bg:#10100f;--panel:#181816;--panel2:#20201d;--text:#f5f3ed;--muted:#aaa79d;--line:#33322d;--gold:#c9a96e;--gold2:#e0c492;--max:1240px;--pad:clamp(1.25rem,4vw,4rem)}
html[data-theme=light]{--bg:#f4f1ea;--panel:#fff;--panel2:#eae6dc;--text:#181816;--muted:#66635c;--line:#d6d0c4;--gold:#85662f;--gold2:#684a1d}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{margin:0;min-width:320px;color:var(--text);background:var(--bg);font:16px/1.65 Inter,Arial,sans-serif;transition:color .25s,background .25s}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.skip-link{position:fixed;top:-5rem;left:1rem;z-index:100;padding:.7rem 1rem;background:var(--gold);color:#111}.skip-link:focus{top:1rem}.sr-only,.honeypot{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.ambient{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 85% 5%,color-mix(in srgb,var(--gold) 13%,transparent),transparent 28%),radial-gradient(circle at 5% 65%,color-mix(in srgb,var(--gold) 6%,transparent),transparent 25%)}
.site-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;width:min(100%,var(--max));height:5.8rem;margin:auto;padding:0 var(--pad);background:color-mix(in srgb,var(--bg) 86%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(20px)}.brand{display:flex;align-items:center;gap:.7rem;font-weight:650}.brand-mark{display:grid;width:2.3rem;height:2.3rem;place-items:center;border:1px solid var(--gold);border-radius:50%;color:var(--gold);font-size:.72rem}.navigation{display:flex;gap:1.8rem;color:var(--muted);font-size:.84rem}.navigation a:hover{color:var(--gold)}.header-actions{display:flex;gap:.5rem}.theme-toggle,.menu-button{display:grid;width:2.55rem;height:2.55rem;place-items:center;color:var(--text);background:transparent;border:1px solid var(--line);border-radius:50%;cursor:pointer}.theme-toggle{grid-template-columns:1fr 1fr;width:4.4rem;padding:.25rem}.theme-toggle span{display:grid;place-items:center}.menu-button{display:none}
.hero,.section,footer{width:min(100%,var(--max));margin:auto;padding-inline:var(--pad)}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:5vw;align-items:center;min-height:calc(100vh - 5.8rem);padding-block:clamp(5rem,10vw,9rem)}.eyebrow{display:flex;align-items:center;gap:.7rem;margin:0 0 1.4rem;color:var(--gold);font-size:.7rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase}.eyebrow>span{width:1.8rem;height:1px;background:currentColor}h1,h2,h3{margin:0;font-weight:520;line-height:1.05;letter-spacing:-.055em}h1{font-size:clamp(3.6rem,7.4vw,7rem)}h2{font-size:clamp(2.7rem,5.7vw,5.5rem)}h3{font-size:1.5rem}h1 em,h2 em,blockquote em{color:var(--gold2);font-style:normal}.hero-lead{max-width:48rem;margin:2rem 0 0;font-size:clamp(1.1rem,1.6vw,1.3rem)}.hero-detail{max-width:44rem;color:var(--muted)}.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.2rem;border:1px solid var(--line);border-radius:999px;cursor:pointer;transition:.25s}.button:hover{transform:translateY(-3px)}.primary{color:#17130c;background:var(--gold2);border-color:var(--gold2)}.secondary:hover{border-color:var(--gold)}
.hero-system{position:relative;display:grid;aspect-ratio:1;place-items:center}.hero-system svg{position:absolute;inset:4%;width:92%;height:92%;stroke:var(--line);fill:none;stroke-width:1}.system-core{position:relative;z-index:2;display:grid;width:9rem;height:9rem;place-items:center;border:1px solid var(--gold);border-radius:50%;background:var(--bg);box-shadow:0 0 5rem color-mix(in srgb,var(--gold) 12%,transparent)}.system-core span{font-size:2.2rem}.system-core small{margin-top:-2.8rem;color:var(--gold);font-size:.65rem;text-transform:uppercase}.node{position:absolute;z-index:3;padding:.5rem .8rem;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);font-size:.72rem}.n1{top:8%;left:42%}.n2{top:28%;right:2%}.n3{right:12%;bottom:15%}.n4{bottom:8%;left:22%}.n5{top:33%;left:0}
.hero-system.has-image{overflow:hidden;border-radius:50%;background-position:center;background-size:cover}.hero-system.has-image:after{position:absolute;inset:0;background:linear-gradient(#0002,#0008);content:""}.hero-system.has-image svg{opacity:.35}.hero-system.has-image .system-core,.hero-system.has-image .node{z-index:4}
.section{padding-block:clamp(6rem,11vw,10rem);border-top:1px solid var(--line)}.section-intro{max-width:58rem}.section-intro>p:last-child{max-width:38rem;color:var(--muted);font-size:1.1rem}.about-content{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(3rem,8vw,8rem);margin-top:5rem}.about-text{font-size:clamp(1.05rem,1.5vw,1.22rem)}.about-text p:first-child{margin-top:0}.about-text p:not(:first-child){color:var(--muted)}.traits{display:grid;align-content:start}.traits span{display:flex;gap:.8rem;padding:.85rem 0;border-bottom:1px solid var(--line)}.traits i{color:var(--gold);font-style:normal}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:5rem}.service-card{min-height:28rem;padding:2rem;border:1px solid var(--line);border-radius:1.2rem;background:var(--panel);transition:.3s}.service-card:hover{transform:translateY(-5px);border-color:var(--gold)}.card-top{display:flex;justify-content:space-between;color:var(--muted);font-size:.7rem}.service-icon{display:grid;width:3rem;height:3rem;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--gold)}.service-card h3{margin:5rem 0 1rem}.service-card p{color:var(--muted)}.service-card ul{padding:0;list-style:none;font-size:.82rem}.service-card li{padding:.35rem 0;border-bottom:1px solid var(--line)}.service-card li:before{margin-right:.6rem;color:var(--gold);content:"↗"}.notice{display:grid;grid-template-columns:.3fr 1fr;gap:2rem;margin-top:1rem;padding:1.7rem 2rem;border:1px solid color-mix(in srgb,var(--gold) 45%,var(--line));border-radius:1rem;background:color-mix(in srgb,var(--gold) 5%,var(--panel))}.notice p{margin:0;color:var(--muted)}
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:4rem 0 2rem}.filters button{padding:.6rem 1rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:transparent;cursor:pointer}.filters button.active,.filters button:hover{color:#17130c;background:var(--gold2);border-color:var(--gold2)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.project-card{overflow:hidden;border:1px solid var(--line);border-radius:1.2rem;background:var(--panel);transition:.3s}.project-card.hidden{display:none}.project-card:hover{transform:translateY(-5px)}.project-visual{position:relative;display:grid;height:18rem;place-items:center;overflow:hidden;background:linear-gradient(145deg,var(--panel2),var(--bg))}.project-visual>span{position:absolute;top:1rem;right:1.2rem;color:var(--muted);font-size:.7rem}.project-visual div{width:8rem;height:8rem;border:1px solid var(--gold);border-radius:50%;box-shadow:0 0 4rem color-mix(in srgb,var(--gold) 15%,transparent)}.v2 div{border-radius:1rem;transform:rotate(15deg)}.v3 div{border:1px dashed var(--gold)}.v4 div{border-radius:35% 65% 55% 45%}.project-body{padding:2rem}.badge{display:inline-block;padding:.25rem .6rem;border:1px solid var(--gold);border-radius:999px;color:var(--gold);font-size:.65rem;text-transform:uppercase}.project-body h3{margin:1.2rem 0}.project-body p{color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:.4rem}.tags span{padding:.25rem .5rem;background:var(--panel2);color:var(--muted);font-size:.68rem}
.project-link{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.5rem;padding-bottom:.2rem;border-bottom:1px solid var(--gold);color:var(--gold2);font-size:.82rem}.project-link:hover{color:var(--text)}
.project-visual.has-photo{background-position:center;background-size:cover}.project-visual.has-photo:after{position:absolute;inset:0;background:linear-gradient(transparent,#0007);content:""}.project-visual.has-photo>span{z-index:2}.project-visual.has-photo>div{display:none}
.quote{text-align:center}.quote blockquote{max-width:60rem;margin:auto;font-size:clamp(2rem,4vw,4rem);line-height:1.2;letter-spacing:-.04em}.quote>p{margin-top:2rem;color:var(--muted)}.process-list{margin:5rem 0 0;padding:0;list-style:none}.process-list li{display:grid;grid-template-columns:.15fr .4fr 1fr;gap:2rem;align-items:start;padding:2rem 0;border-top:1px solid var(--line)}.process-list li>span{color:var(--gold);font-size:.75rem}.process-list p{max-width:37rem;margin:0;color:var(--muted)}.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:5rem;background:var(--line)}.reason-grid article{min-height:15rem;padding:2rem;background:var(--bg)}.reason-grid article>span{color:var(--gold)}.reason-grid h3{margin:3rem 0 1rem}.reason-grid p{color:var(--muted)}
.contact{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(3rem,7vw,7rem)}.contact-copy h2{font-size:clamp(2.5rem,4.8vw,4.7rem)}.contact-copy>p:not(.eyebrow){color:var(--muted)}.contact-placeholder{display:flex;flex-direction:column;margin-top:3rem;padding:1.3rem;border:1px dashed var(--line);border-radius:.8rem}.contact-placeholder span,.contact-placeholder small{color:var(--muted)}.form-panel{padding:clamp(1.3rem,3vw,2.5rem);border:1px solid var(--line);border-radius:1.2rem;background:var(--panel)}form>label,.form-row label{display:grid;gap:.4rem;color:var(--muted);font-size:.78rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}input,select,textarea{width:100%;margin-bottom:1rem;padding:.8rem;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:.5rem;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--gold)}textarea{resize:vertical}.check{display:grid!important;grid-template-columns:auto 1fr;align-items:start}.check input{width:auto;margin-top:.3rem}.submit{width:100%;margin-top:1rem}.form-note{color:var(--muted);font-size:.7rem}.form-message{margin-bottom:1rem;padding:1rem;border-radius:.6rem}.form-message.success{border:1px solid #5b8b58;background:#5b8b5815}.form-message.error{border:1px solid #b05858;background:#b0585815}.form-message ul{margin-bottom:0}
footer{display:grid;grid-template-columns:2fr 1fr 1fr;gap:4rem;padding-block:4rem;border-top:1px solid var(--line);color:var(--muted)}footer>div{display:flex;flex-direction:column;gap:.5rem}footer strong{color:var(--text)}footer>div:first-child p{max-width:25rem}.copyright{grid-column:1/-1;padding-top:2rem;border-top:1px solid var(--line);font-size:.75rem}
.reveal{opacity:0;transform:translateY(1.5rem);transition:opacity .7s,transform .7s}.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){.navigation{position:fixed;inset:5.8rem 0 0;flex-direction:column;justify-content:center;align-items:center;background:var(--bg);font-size:1.5rem;opacity:0;pointer-events:none;transition:.25s}.navigation.open{opacity:1;pointer-events:auto}.menu-button{display:grid}.menu-button span:not(.sr-only){width:1rem;height:1px;background:currentColor}.hero{grid-template-columns:1fr}.hero-system{width:min(100%,32rem);margin:auto}.services-grid,.reason-grid{grid-template-columns:1fr 1fr}.contact{grid-template-columns:1fr}.notice{grid-template-columns:1fr}}
@media(max-width:620px){.hero{padding-top:4rem}.hero-system{margin-top:2rem}.about-content,.project-grid,.services-grid,.reason-grid,.form-row{grid-template-columns:1fr}.process-list li{grid-template-columns:.15fr 1fr}.process-list p{grid-column:2}.service-card{min-height:auto}.service-card h3{margin-top:3rem}.notice{padding:1.2rem}.project-visual{height:14rem}footer{grid-template-columns:1fr 1fr}footer>div:first-child{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.legal-page{max-width:58rem;min-height:100vh}.legal-page h1{margin-bottom:4rem}.legal-page h2{margin:3rem 0 1rem;font-size:clamp(1.4rem,3vw,2rem);letter-spacing:-.035em}.legal-page a:not(.button){color:var(--gold2);text-decoration:underline;text-underline-offset:.18em}.check a{color:var(--gold2);text-decoration:underline;text-underline-offset:.15em}
