:root{--navy:#153454;--blue:#1f5f9d;--sky:#dceefa;--paper:#ffffff;--pale:#f4f9fc;--line:#d8e5ee;--muted:#66829a;--accent:#eb6e4b;--board:#153454;--flap:#fbfdff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--navy);font-family:"DM Sans",sans-serif}.site-header{height:88px;display:flex;justify-content:space-between;align-items:center;padding:0 6.5vw;border-bottom:1px solid var(--line)}.brand{color:var(--navy);text-decoration:none;letter-spacing:.12em;font-family:"DM Mono",monospace;font-size:11px;font-weight:500}.brand-mark{font-size:14px;margin-right:7px;color:var(--accent)}nav{display:flex;align-items:center;gap:27px}nav a{color:var(--navy);text-decoration:none;font-size:13px}.nav-contact{border:1px solid #9bb5c9;border-radius:100px;padding:10px 15px}.nav-contact span,.text-link span{margin-left:5px}.hero{display:grid;grid-template-columns:1.1fr .9fr;min-height:700px}.hero-copy{padding:13vw 6.5vw 9vw}.eyebrow{font-family:"DM Mono",monospace;font-size:10px;letter-spacing:.1em;color:var(--muted);margin:0 0 25px}h1,h2{font-family:Fraunces,serif;margin:0;letter-spacing:-.065em;line-height:1.02}h1{font-size:clamp(54px,6.5vw,98px);font-weight:600}em{font-style:italic;color:var(--blue)}.intro{font-size:17px;line-height:1.65;max-width:410px;margin:36px 0;color:#506d83}.round-link{display:inline-flex;gap:20px;align-items:center;color:var(--navy);text-decoration:none;border-bottom:1px solid #9bb5c9;padding-bottom:8px;font-size:13px;font-weight:600}.round-link span{font-size:18px}.hero-map{background:var(--sky);padding:11% 8%;display:flex;flex-direction:column;justify-content:center;position:relative}.hero-map:before{content:"";position:absolute;width:190px;height:190px;border:1px solid rgba(31,95,157,.18);border-radius:50%;right:-77px;top:59px}.hero-map:after{content:"";position:absolute;width:120px;height:120px;border:1px solid rgba(31,95,157,.18);border-radius:50%;right:-43px;top:94px}.terminal-note,.coordinates{position:relative;z-index:1;margin:0;font:9px "DM Mono",monospace;letter-spacing:.09em;color:#587a94}.terminal-note{display:flex;justify-content:space-between;margin-bottom:13px}.terminal-board{position:relative;z-index:1;background:var(--board);padding:14px 16px;box-shadow:9px 10px 0 rgba(21,52,84,.12)}.terminal-heading,.terminal-row{display:grid;grid-template-columns:20% 57% 23%;gap:5px}.terminal-heading{font:8px "DM Mono",monospace;letter-spacing:.08em;color:#9ab4c9;padding:2px 6px 8px}.terminal-row{border-top:1px solid #466682;padding:8px 6px;color:var(--flap);font:11px "DM Mono",monospace;align-items:center}.terminal-row strong{font-weight:500;letter-spacing:.06em;background:linear-gradient(transparent 48%,#0d2944 49%,#0d2944 52%,transparent 53%);padding:4px 0}.terminal-row i{font-style:normal;color:#a6d8e3;font-size:9px;text-align:right}.coordinates{margin-top:15px}.work-section{padding:135px 6.5vw}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:62px;gap:30px}h2{font-size:clamp(40px,4.5vw,64px)}.filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:end}.filters button{font:10px "DM Mono",monospace;letter-spacing:.04em;color:var(--navy);border:1px solid var(--line);border-radius:99px;background:transparent;padding:10px 13px;cursor:pointer}.filters button.active,.filters button:hover{background:var(--navy);color:var(--paper);border-color:var(--navy)}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:76px 30px}.project-card{cursor:pointer}.project-card.hidden{display:none}.project-art{min-height:360px;padding:21px;position:relative;overflow:hidden}.project-art:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.45) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.45) 1px,transparent 1px);background-size:30px 30px}.project-art>*{position:relative;z-index:1}.art-1{background:#b9d8e7}.art-2{background:#c9e0ec}.art-3{background:#b9d1e2}.art-4{background:#d9eaf3}.art-number{font:10px "DM Mono",monospace}.shape{position:absolute;border:1px solid rgba(21,52,84,.5);border-radius:50%;width:280px;height:280px;right:-30px;bottom:-90px}.shape:after{content:"";position:absolute;inset:29px;border:1px solid rgba(21,52,84,.5);border-radius:50%}.river{position:absolute;width:125%;height:66px;border-radius:50%;border:22px solid #f8fdff;border-left-color:transparent;transform:rotate(-20deg);top:38%;left:-19%}.blocks{position:absolute;display:grid;grid-template-columns:repeat(5,44px);gap:6px;transform:rotate(-12deg);right:15%;top:22%}.blocks i{display:block;height:42px;background:rgba(255,255,255,.7)}.contours{position:absolute;inset:13% 8%;border:1px solid rgba(21,52,84,.5);border-radius:48% 52% 43% 57%/55% 42% 58% 45%}.contours:before,.contours:after{content:"";position:absolute;inset:13px;border:1px solid rgba(21,52,84,.5);border-radius:inherit}.contours:after{inset:28px}.project-meta{display:flex;justify-content:space-between;padding:18px 0 8px;font:10px "DM Mono",monospace;letter-spacing:.07em;color:var(--muted)}.project-title{font:600 26px Fraunces,serif;margin:0;letter-spacing:-.035em}.about{background:var(--pale);padding:130px 6.5vw}.about-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px}.about-grid em{color:var(--blue)}.about-grid p:not(.eyebrow){font-size:18px;line-height:1.65;margin:4px 0 30px;max-width:470px;color:#506d83}.text-link{color:var(--navy);text-decoration:none;border-bottom:1px solid var(--navy);padding-bottom:6px;font-size:13px;font-weight:600}footer{display:flex;justify-content:space-between;padding:29px 6.5vw;font:10px "DM Mono",monospace;color:var(--muted)}footer a{color:var(--navy);text-decoration:none}dialog{color:var(--navy);border:0;max-width:650px;width:calc(100% - 32px);padding:45px;background:var(--paper);box-shadow:0 18px 70px rgba(0,0,0,.2)}.dialog-close{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:30px;cursor:pointer;color:var(--navy)}dialog::backdrop{background:rgba(21,52,84,.6)}.dialog-type{font:10px "DM Mono",monospace;color:var(--blue);letter-spacing:.08em}.dialog-title{font:48px Fraunces,serif;letter-spacing:-.04em;margin:12px 0}.dialog-content{font-size:17px;line-height:1.6;color:#506d83}.dialog-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:25px}.dialog-tags span{border:1px solid var(--line);border-radius:30px;padding:6px 10px;font:10px "DM Mono",monospace}@media(max-width:720px){.site-header{padding:0 6vw;height:76px}.site-header nav a:not(.nav-contact){display:none}.hero{grid-template-columns:1fr}.hero-copy{padding:88px 6vw 76px}.hero-map{min-height:370px;padding:11% 6%}.terminal-note span{display:none}.work-section,.about{padding:78px 6vw}.section-heading,.about-grid{display:block}.filters{justify-content:start;margin-top:30px}.project-grid{grid-template-columns:1fr;gap:48px}.project-art{min-height:290px}.about-grid p:not(.eyebrow){margin-top:30px}footer{padding:22px 6vw;gap:12px;flex-wrap:wrap}footer span:nth-child(2){display:none}}
/* Real-photo project cards */
.project-art.has-image{padding:0;background:#d8e5ee}.project-art.has-image:after{background:none}.project-art.has-image img{width:100%;height:100%;min-height:360px;display:block;object-fit:cover}
/* Helvetica typography */
body,h1,h2,.project-title,.dialog-title{font-family:Helvetica,Arial,sans-serif}
h1,h2,.project-title,.dialog-title{font-weight:500;letter-spacing:-.055em}
/* Scroll motion: light, calm, and respectful of accessibility preferences */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease var(--delay,0ms),transform .7s cubic-bezier(.2,.7,.2,1) var(--delay,0ms)}.reveal.is-visible{opacity:1;transform:translateY(0)}.hero-map.reveal{transform:translateX(25px)}.hero-map.reveal.is-visible{transform:translateX(0)}.project-card{transition:transform .35s ease}.project-card:hover{transform:translateY(-7px)}.project-art{transition:transform .55s cubic-bezier(.2,.7,.2,1)}.project-card:hover .project-art{transform:rotate(-.75deg) scale(1.015)}@media(prefers-reduced-motion:reduce){.reveal,.project-card,.project-art{opacity:1;transform:none;transition:none}.project-card:hover{transform:none}.project-card:hover .project-art{transform:none}}
/* Calm map illustration in the hero */
.hero-map{position:relative}.city-map{position:absolute;inset:7%;width:86%;height:86%}.map-grid{stroke:#8fb6cf;stroke-width:1;opacity:.42}.map-river{fill:none;stroke:#fafdff;stroke-width:46}.map-route{fill:none;stroke:#1f5f9d;stroke-width:2;stroke-dasharray:4 7}.map-point{fill:#eb6e4b}.map-ring{fill:none;stroke:#eb6e4b;stroke-width:1.5}.map-label{position:absolute;z-index:1;top:11%;left:10%;margin:0;font:9px "DM Mono",monospace;letter-spacing:.1em;color:#587a94}.hero-map .coordinates{position:absolute;z-index:1;bottom:9%;left:10%}
.skyline-fill{fill:#1f5f9d}.skyline-detail{stroke:#b9d9ec;stroke-width:3}.harbor{fill:#fafdff}.water-line{fill:none;stroke:#8fb6cf;stroke-width:2}.sky-sun{fill:#eef8fc;stroke:#9fc4da;stroke-width:1}.sky-cloud{fill:#fafdff;opacity:.9}
.contact-links{display:grid;gap:10px;margin-top:28px}.contact-links a{display:flex;justify-content:space-between;align-items:center;color:var(--navy);text-decoration:none;border:1px solid var(--line);padding:14px 16px;font:500 13px "DM Mono",monospace}.contact-links a:hover{border-color:var(--navy);background:var(--pale)}
