@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800&display=swap');
:root{--ivory:#f4eee3;--blue:#102d4a;--black:#111;--line:#cfc8bc}
*{box-sizing:border-box}html,body{margin:0;background:var(--ivory);color:var(--black)}
body{font-family:Montserrat,Arial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}
header{height:78px;padding:18px 4vw;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:rgba(244,238,227,.96);position:fixed;top:0;width:100%;z-index:5}
.brand{color:var(--blue);display:flex;flex-direction:column;line-height:.8}.brand b{font-size:21px;letter-spacing:-.06em}.brand small{font-size:7px;letter-spacing:.34em;margin:7px 0 0 2px}
nav{display:flex;gap:2rem;font-size:11px;letter-spacing:.13em;font-weight:600}nav a:hover{text-decoration:underline;text-underline-offset:5px}nav a.gallery-link{color:#b00000}
.home{height:100vh;padding:108px 5vw 30px;display:grid;grid-template-columns:45% 55%;gap:4vw;align-items:center}
.photo{height:calc(100vh - 138px);overflow:hidden}.photo img{width:100%;height:100%;object-fit:cover;object-position:center 28%}
.hero{color:var(--blue)}.artist{font-family:Georgia,serif;font-size:clamp(3rem,7vw,7.5rem);font-weight:200;line-height:.82;letter-spacing:-.065em}.present{text-align:center;font:italic 16px Georgia,serif;letter-spacing:.08em;margin:14px 0 24px}
.vanished,.america{font-size:clamp(3.8rem,8.7vw,9rem);font-weight:800;line-height:.78;letter-spacing:-.075em}.vanished{animation:vanish 4.8s ease-in-out infinite}
.america{margin-top:16px;background:linear-gradient(to bottom,#173b64 0 14%,#f4eee3 14% 25%,#9a2433 25% 39%,#f4eee3 39% 50%,#9a2433 50% 64%,#f4eee3 64% 75%,#9a2433 75% 89%,#f4eee3 89%);-webkit-background-clip:text;background-clip:text;color:transparent}
.process-head{padding:112px 7vw 35px;display:grid;grid-template-columns:.65fr .55fr 1.55fr;gap:4vw}.process-head span,.page>span{font-size:10px;letter-spacing:.2em;color:var(--blue)}.process-head h1,.page h1{font:300 clamp(48px,7vw,94px)/.85 Georgia,serif;color:var(--blue);letter-spacing:-.07em;margin:0}.process-head p{font-size:clamp(16px,1.7vw,23px);line-height:1.18;letter-spacing:-.025em}
.grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--black);border-bottom:1px solid var(--black)}
.grid article{padding:0 1.6vw 2.2vw;border-right:1px solid var(--line)}.grid article:last-child{border:0}
.grid article>div{min-height:10vh;display:flex;align-items:center;justify-content:center;background:var(--blue);color:var(--ivory);font-size:clamp(15px,1.7vw,25px);font-weight:500}.grid .response{background:transparent;color:var(--blue);border:1px solid var(--blue)}
.grid h2{font:400 clamp(21px,2.1vw,32px)/.95 Georgia,serif;letter-spacing:-.045em;margin:1.45vw 0 1vw}.grid p{font-size:13px;line-height:1.4}
.principle{padding:4vh 7vw;border-block:1px solid var(--black);display:grid;grid-template-columns:.7fr 1.6fr;gap:5vw}.principle small{letter-spacing:.2em;color:var(--blue)}.principle p{font:clamp(23px,3vw,42px)/1.03 Georgia,serif;margin:0;letter-spacing:-.04em}
.note{padding:3vh 7vw 4vh;max-width:1150px}.note p{font-size:14px;line-height:1.5;margin:0}
.page{min-height:100vh;padding:130px 8vw 80px}.page h1{font-size:clamp(64px,10vw,150px);margin:25px 0}.page hr{border:0;border-top:1px solid var(--blue);margin:35px 0}.page p{max-width:760px;font:clamp(20px,2.3vw,32px)/1.3 Georgia,serif}
@keyframes vanish{0%,20%{opacity:1}45%,70%{opacity:.08;transform:translateY(8px)}90%,100%{opacity:1;transform:translateY(0)}}
@media(max-width:850px){header{position:relative;height:auto;gap:16px;flex-wrap:wrap}nav{width:100%;gap:18px;flex-wrap:wrap}.home{height:auto;padding:35px 6vw 55px;display:block}.photo{height:54vh;margin-bottom:35px}.hero{text-align:center}.artist,.vanished,.america{font-size:clamp(3.2rem,15vw,6rem)}.process-head{padding:55px 6vw 45px;display:block}.process-head h1{margin:22px 0}.grid{grid-template-columns:1fr 1fr}.grid article{padding:0 4vw 7vw}.principle{grid-template-columns:1fr;gap:25px;padding:10vw 7vw}.page{padding:70px 7vw}}@media(max-width:560px){.grid{grid-template-columns:1fr}.grid article{border-right:0;border-bottom:1px solid var(--line);padding:0 6vw 9vw}}

.works-page{min-height:100vh;padding:130px 8vw 80px}.works-intro{display:grid;grid-template-columns:.65fr 1.35fr;gap:4vw;align-items:end}.works-intro>span,.section-top span{font-size:10px;letter-spacing:.2em;color:var(--blue)}.works-intro h1{font:300 clamp(64px,10vw,150px)/.85 Georgia,serif;color:var(--blue);letter-spacing:-.07em;margin:0}.works-choice{display:grid;grid-template-columns:1fr 1fr;gap:2vw;margin-top:70px}.works-card{min-height:300px;border:1px solid var(--blue);padding:30px 3vw 28px;display:flex;flex-direction:column;transition:background .2s,color .2s}.works-card:hover{background:var(--blue);color:var(--ivory)}.card-number{font-size:11px;letter-spacing:.18em;color:var(--blue)}.works-card:hover .card-number{color:var(--ivory)}.works-card h2{font:300 clamp(45px,6vw,88px)/.85 Georgia,serif;color:var(--blue);letter-spacing:-.06em;margin:45px 0 20px}.works-card:hover h2{color:var(--ivory)}.works-card p{font-size:14px;line-height:1.45;max-width:430px;margin:0}.card-link{margin-top:auto;padding-top:35px;font-size:10px;letter-spacing:.16em;font-weight:600;color:var(--blue)}.works-card:hover .card-link{color:var(--ivory)}
.work-section-page{min-height:100vh;padding:125px 8vw 70px}.section-top{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.16em}.section-top a{color:var(--blue);font-weight:600}.work-section-page>h1{font:300 clamp(62px,9vw,140px)/.85 Georgia,serif;color:var(--blue);letter-spacing:-.07em;margin:28px 0 38px}.work-intro{max-width:850px;border-top:1px solid var(--blue);border-bottom:1px solid var(--blue);padding:28px 0 24px}.work-intro p{font:clamp(19px,2vw,28px)/1.25 Georgia,serif;margin:0 0 14px;letter-spacing:-.025em}.work-intro p:last-child{margin-bottom:0}.series{margin-top:60px}.series-head{display:grid;grid-template-columns:.7fr 1fr 1.3fr;gap:3vw;align-items:end}.series-head>span{font-size:10px;letter-spacing:.18em;color:var(--blue)}.series-head h2{font:300 clamp(34px,4.5vw,65px)/.9 Georgia,serif;color:var(--blue);letter-spacing:-.055em;margin:0}.series-head p{font-size:13px;line-height:1.4;margin:0}.series-placeholder{margin-top:24px;border:1px dashed var(--line);height:210px;display:flex;align-items:center;justify-content:center;color:#777;font-size:10px;letter-spacing:.16em}.future{margin-top:55px}.symbols-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:55px}.symbol-placeholder{min-height:190px;background:var(--ivory);display:flex;align-items:center;justify-content:center;text-align:center;padding:25px;color:var(--blue);font-size:11px;font-weight:600;letter-spacing:.15em}@media(max-width:850px){.works-page{padding:75px 7vw}.works-intro{display:block}.works-intro h1{margin-top:22px}.works-choice{grid-template-columns:1fr;margin-top:45px}.work-section-page{padding:75px 7vw}.section-top{gap:15px;flex-wrap:wrap}.series-head{display:block}.series-head h2{margin:18px 0}.symbols-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.symbols-grid{grid-template-columns:1fr}}

/* MAPS GALLERY */
.maps-gallery-page{min-height:100vh;padding:125px 8vw 70px}
.series-head-gallery{display:grid;grid-template-columns:1.2fr 1fr;gap:5vw;align-items:end;margin-bottom:30px}
.series-head-gallery>div>span{font-size:10px;letter-spacing:.18em;color:var(--blue)}
.series-head-gallery h2{font:300 clamp(38px,4.8vw,68px)/.9 Georgia,serif;color:var(--blue);letter-spacing:-.055em;margin:15px 0 0}
.series-head-gallery p{font-size:13px;line-height:1.4;margin:0;max-width:460px}
.map-series{margin-top:60px}
.map-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.map-card{cursor:pointer;min-width:0}
.thumb{aspect-ratio:3/4;overflow:hidden;background:#ddd;position:relative}
.thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.map-card:hover .thumb img{transform:scale(1.025)}
.map-meta{display:grid;grid-template-columns:28px 1fr;gap:8px;margin-top:12px;font-size:10px;line-height:1.35;letter-spacing:.08em}
.map-meta b{font-weight:500;color:var(--blue)}
.map-meta span{color:#101d32}
.colorslands{border-top:1px solid var(--line);padding-top:52px}
.map-note{margin:48px 0 15px;max-width:650px;font-size:12px;line-height:1.5;color:#4c4c4c}
.hover-preview{position:fixed;z-index:50;transform:translateX(-50%);width:330px;background:var(--ivory);border:1px solid var(--blue);box-shadow:0 16px 40px rgba(0,0,0,.18);opacity:0;pointer-events:none;transition:opacity .16s ease;overflow:hidden}
.hover-preview.show{opacity:1}
.hover-image{height:310px;background:#eee}
.hover-image img{width:100%;height:100%;object-fit:contain;display:block}
.hover-caption{padding:13px 16px 15px}
.hover-caption span{display:block;font-size:9px;letter-spacing:.15em;color:var(--blue);margin-bottom:5px}
.hover-caption strong{font-size:12px;letter-spacing:.08em;font-weight:600}
.map-modal{position:fixed;inset:0;z-index:100;background:rgba(10,22,40,.72);display:flex;align-items:center;justify-content:center;padding:35px;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}
.map-modal.show{opacity:1;visibility:visible}
.modal-content{max-width:1050px;max-height:90vh;background:var(--ivory);display:grid;grid-template-columns:minmax(350px,1fr) 310px;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.modal-content>img{width:100%;height:78vh;object-fit:contain;background:#eee;display:block}
.modal-info{padding:40px 30px;align-self:center}
.modal-info>span{font-size:9px;letter-spacing:.16em;color:var(--blue)}
.modal-info h2{font:300 42px/.95 Georgia,serif;color:var(--blue);letter-spacing:-.04em;margin:18px 0 25px}
.modal-info p{font-size:12px;line-height:1.5;margin:8px 0}
.modal-info .provisional{color:#666}
.modal-close{position:absolute;right:25px;top:15px;border:0;background:transparent;color:white;font-size:38px;line-height:1;cursor:pointer}
body.modal-open{overflow:hidden}
@media(max-width:1000px){
  .map-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .modal-content{grid-template-columns:1fr;max-width:760px}
  .modal-content>img{height:65vh}
  .modal-info{padding:22px 25px}
}
@media(max-width:650px){
  .maps-gallery-page{padding:80px 7vw 50px}
  .series-head-gallery{display:block}
  .series-head-gallery p{margin-top:16px}
  .map-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}
  .hover-preview{display:none}
  .map-modal{padding:15px}
  .modal-content>img{height:55vh}
  .modal-info h2{font-size:30px}
}
