
:root{
 --bg:#f5f3ee;--paper:#fbfaf7;--fog:#e5e5e1;--silver:#b7babd;--graph:#50545a;--ink:#0c0d10;
 --accent:#536e72;--violet:#74677f;--line:rgba(12,13,16,.16);
 --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
 --sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
 --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
 --w:min(1180px,calc(100vw - 44px));
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-underline-offset:3px;overflow-wrap:anywhere}.skip-link{position:fixed;left:14px;top:12px;z-index:1000;transform:translateY(-180%);background:var(--ink);color:var(--paper);padding:10px 14px;text-decoration:none;font:600 .68rem var(--mono);letter-spacing:.08em;text-transform:uppercase}.skip-link:focus{transform:none}button,input,textarea,select{font:inherit}button,a,summary,label[for]{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.wrap{width:var(--w);margin:auto}.topbar{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 max(22px,calc((100vw - 1180px)/2));position:sticky;top:0;z-index:20;background:rgba(245,243,238,.9);backdrop-filter:blur(16px);border-bottom:1px solid rgba(12,13,16,.08)}
.wordmark{text-decoration:none;text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;display:flex;align-items:center;gap:10px}.wordmark span{width:8px;height:8px;transform:rotate(45deg);background:var(--ink)}.wordmark b{font-weight:700}
.topbar nav{display:flex;gap:12px;align-items:center}.topbar nav a{min-height:44px;display:inline-flex;align-items:center;padding:0 8px;text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font:600 .64rem var(--mono);color:var(--graph);transition:background .18s,color .18s,border-color .18s}.topbar nav a:hover{background:rgba(83,110,114,.08);color:var(--ink)}.topbar nav .navcta{border:1px solid var(--ink);padding:0 14px;color:var(--ink)}.topbar nav .navcta:hover{background:var(--ink);color:var(--paper)}
main{min-height:65vh}.hero{padding:100px 0 80px}.micro{font:600 .65rem/1.4 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}
h1,h2,h3{margin:0;letter-spacing:-.035em;line-height:1}.display{font-size:clamp(3.4rem,7vw,7.1rem);max-width:13ch}.display em,h2 em{font-family:var(--serif);font-weight:400;color:var(--graph)}
.lead{font:italic clamp(1.25rem,2.2vw,1.65rem)/1.45 var(--serif);max-width:36ch;color:var(--graph);margin:28px 0}.intro{max-width:64ch;color:var(--graph);font-size:1.04rem}
.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}.btn{min-height:46px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--ink);padding:12px 18px;text-transform:uppercase;letter-spacing:.1em;font:600 .68rem var(--mono);cursor:pointer;transition:background .18s,color .18s,transform .18s}.btn:hover{transform:translateY(-1px);background:var(--fog)}.btn:active{transform:translateY(0)}.btn.primary{background:var(--ink);color:var(--paper)}.btn.primary:hover{background:var(--accent);border-color:var(--accent)}
.section{padding:80px 0;border-top:1px solid var(--line)}.section h2{font-size:clamp(2.4rem,5vw,5rem);max-width:17ch;margin:16px 0 22px}.split{display:grid;grid-template-columns:1fr .82fr;gap:8vw;align-items:start}
.cardgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:44px}.card{border:1px solid var(--line);background:rgba(255,255,255,.42);padding:24px;min-height:220px}.card .micro{margin-bottom:22px}.card h3{font-size:1.7rem;line-height:1.05;margin-bottom:16px}.card p{color:var(--graph);margin:0}.card a{min-height:44px;display:inline-flex;align-items:center;margin-top:20px;font:600 .62rem var(--mono);letter-spacing:.09em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--line);padding:6px 0}.card a:hover{border-bottom-color:var(--accent);color:var(--accent)}
.list{border-top:1px solid var(--line);margin-top:40px}.row{display:grid;grid-template-columns:120px 1fr auto;gap:22px;padding:18px 0;border-bottom:1px solid var(--line);align-items:start}.row .kind{font:600 .6rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.row h3{font-size:1.35rem}.row p{margin:5px 0 0;color:var(--graph)}
.note{border-left:2px solid var(--accent);padding-left:15px;color:var(--graph);max-width:68ch}
.callout{padding:34px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(255,255,255,.55),rgba(229,229,225,.35));margin-top:36px}
.article{max-width:760px;margin:0 auto;padding:80px 0;border-top:1px solid var(--line)}.article:first-child{border-top:0}.article h2{font-size:clamp(2.3rem,5vw,4.8rem);max-width:16ch}.article h3{font-size:1.35rem;margin:32px 0 8px}.article p{color:#292c31}.article .standfirst{font:italic 1.4rem/1.5 var(--serif);color:var(--graph)}
.form{max-width:760px;display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:40px}.form label{display:flex;flex-direction:column;gap:7px}.form .full{grid-column:1/-1}.form label span{font:600 .6rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.form input,.form textarea,.form select{min-height:46px;background:rgba(255,255,255,.46);border:1px solid transparent;border-bottom-color:var(--ink);padding:12px;color:var(--ink);font:inherit;transition:border-color .18s,background .18s}.form input:hover,.form textarea:hover,.form select:hover{background:rgba(255,255,255,.72)}.form input:focus,.form textarea:focus,.form select:focus{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent)}.form textarea{resize:vertical}.legal-copy{max-width:820px}.legal-copy h2{font-size:2rem;margin-top:46px}.legal-copy h3{font-size:1.15rem;margin-top:30px}.legal-copy p,.legal-copy li{color:#303338}
.footer{background:#090a0c;color:#d3d4d5;padding:58px 0 28px;margin-top:80px}.footgrid{display:grid;grid-template-columns:1.5fr .8fr .8fr;gap:50px}.footgrid strong{font-size:1.15rem}.footgrid p{max-width:34ch;color:#8d9299}.footgrid>div:not(:first-child){display:flex;flex-direction:column;gap:8px}.footgrid a{display:inline-flex;align-items:center;min-height:36px;text-decoration:underline;text-decoration-color:rgba(211,212,213,.32);font-size:.83rem}.footgrid a:hover{text-decoration-color:currentColor}.legal{border-top:1px solid rgba(255,255,255,.12);margin-top:44px;padding-top:18px;font: .64rem var(--mono);color:#777d85}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 28px}.filter{min-height:44px;border:1px solid var(--line);background:rgba(255,255,255,.28);padding:8px 12px;font:600 .58rem var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .18s,border-color .18s,color .18s}.filter:hover{border-color:var(--accent);background:rgba(83,110,114,.07)}.filter[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent)}
.search{width:100%;max-width:560px;min-height:48px;background:rgba(255,255,255,.36);border:1px solid var(--line);border-bottom-color:var(--ink);padding:12px 14px;font:italic 1.3rem var(--serif);outline:none}.search:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(83,110,114,.12)}
.interaction-guide{display:inline-flex;align-items:center;gap:9px;margin:22px 0 0;padding:10px 12px;border:1px solid rgba(83,110,114,.35);background:rgba(83,110,114,.07);font:600 .6rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.interaction-guide::before{content:"↘";font-size:.9rem}.problem{border-top:1px solid var(--line)}.problem summary{list-style:none;display:grid;grid-template-columns:70px 130px 1fr auto;gap:18px;min-height:64px;padding:20px 10px;cursor:pointer;transition:background .18s,color .18s}.problem summary:hover{background:rgba(83,110,114,.06)}.problem[open] summary{background:rgba(83,110,114,.07)}.problem summary::-webkit-details-marker{display:none}.problem .num{font:.62rem var(--mono);color:#63686e}.problem .cat{font:600 .6rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.problem .title{font-size:1.22rem;line-height:1.2}.detail{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:0 0 26px 218px}.detail>div{padding:18px 18px 6px 0}.detail>div+div{padding-left:18px;border-left:1px solid rgba(12,13,16,.08)}.detail h4{font:600 .58rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 8px}.detail p{font-size:.88rem;color:var(--graph);margin:0}
@media(max-width:900px){.topbar>nav{display:none}.split,.cardgrid,.footgrid{grid-template-columns:1fr}.cardgrid{grid-template-columns:1fr 1fr}.detail{grid-template-columns:1fr;padding-left:88px}.detail>div+div{border-left:0}.problem summary{grid-template-columns:58px 110px 1fr auto}}
@media(max-width:620px){:root{--w:min(100% - 30px,1180px)}.hero{padding:70px 0 54px}.section{padding:60px 0}.cardgrid{grid-template-columns:1fr}.form{grid-template-columns:1fr}.form .full{grid-column:auto}.problem summary{grid-template-columns:45px 1fr 24px}.problem .cat{grid-column:2}.problem .title{grid-column:2;grid-row:2}.detail{padding-left:57px}.row{grid-template-columns:1fr}}

.problem .open-cue{display:inline-flex;align-items:center;gap:7px;font:600 .57rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);white-space:nowrap}
.problem .open-cue::after{content:"+";font-size:1rem;line-height:1;transition:transform .18s}
.problem[open] .open-cue::before{content:"Close"}
.problem[open] .open-cue{font-size:0}
.problem[open] .open-cue::before{font:600 .57rem var(--mono);letter-spacing:.08em;text-transform:uppercase}
.problem[open] .open-cue::after{transform:rotate(45deg);font-size:1rem}
@media (hover:hover) and (pointer:fine){
  .btn,.filter,.problem summary,.topbar nav a,.card a{cursor:pointer}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Preview image placements */
.contact-hero-grid{display:grid;grid-template-columns:1.05fr .85fr;gap:7vw;align-items:end}
.contact-visual{min-height:300px;border:1px solid var(--line);position:relative;overflow:hidden;background:
linear-gradient(180deg,rgba(251,250,247,.08),rgba(251,250,247,.28)),
radial-gradient(55% 90% at 18% 12%,rgba(255,255,255,.88),transparent 70%),
linear-gradient(135deg,#d7d0c5 0%,#eee7dc 40%,#b8afa4 100%)}
.contact-visual::before{content:"";position:absolute;inset:0;background:
repeating-linear-gradient(90deg,transparent 0 58px,rgba(12,13,16,.035) 58px 59px),
repeating-linear-gradient(0deg,transparent 0 44px,rgba(12,13,16,.028) 44px 45px);mix-blend-mode:multiply}
.contact-visual::after{content:"DAYLIGHT STRATEGY IMAGE · PREVIEW POSITION";position:absolute;left:18px;bottom:16px;padding:8px 10px;background:rgba(251,250,247,.82);backdrop-filter:blur(8px);font:600 .56rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--graph)}
@media(max-width:900px){.contact-hero-grid{grid-template-columns:1fr}.contact-visual{min-height:220px}}

/* Glossary */
.glossary-index{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0}
.glossary-index a{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);text-decoration:none;font:600 .65rem var(--mono);color:var(--graph);background:rgba(255,255,255,.3)}
.glossary-index a:hover,.glossary-index a:focus-visible{border-color:var(--accent);color:var(--accent);background:rgba(83,110,114,.07)}
.glossary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 54px;margin-top:34px;border-top:1px solid var(--line)}
.glossary-entry{padding:28px 0;border-bottom:1px solid var(--line);scroll-margin-top:92px}
.glossary-entry h2{font-size:1.55rem;margin:0 0 9px;max-width:none;letter-spacing:-.02em}
.glossary-entry p{margin:0;color:var(--graph);max-width:58ch;line-height:1.65}
.glossary-entry:target{background:linear-gradient(90deg,rgba(83,110,114,.08),transparent);box-shadow:inset 3px 0 0 var(--accent);padding-left:16px}
.glossary-empty{padding:50px 0}
@media(max-width:760px){.glossary-grid{grid-template-columns:1fr}.glossary-index a{width:34px;height:34px}}

/* Device-appropriate interaction guidance */
.touch-copy{display:none}
@media (hover:none), (pointer:coarse){.mouse-copy{display:none}.touch-copy{display:inline}}

/* Accessible mobile navigation */
.site-menu-toggle{display:none;min-width:48px;min-height:44px;border:1px solid var(--ink);background:rgba(255,255,255,.55);color:var(--ink);padding:8px 10px;align-items:center;justify-content:center;gap:3px;cursor:pointer}
.site-menu-toggle>span{display:block;width:15px;height:1px;background:currentColor;transition:transform .18s,opacity .18s}
.site-menu-toggle b{font:600 .58rem var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-left:5px}
.site-menu-toggle.is-open>span:nth-child(1){transform:translate(3px,4px) rotate(45deg)}
.site-menu-toggle.is-open>span:nth-child(2){opacity:0}
.site-menu-toggle.is-open>span:nth-child(3){transform:translate(-3px,-4px) rotate(-45deg)}
.site-mobile-menu[hidden]{display:none!important}
.site-mobile-menu{position:fixed;z-index:900;inset:70px 0 0;background:rgba(245,243,238,.985);backdrop-filter:blur(18px);padding:24px;overflow:auto}
.site-mobile-menu nav{max-width:680px;margin:0 auto;display:flex;flex-direction:column}
.site-mobile-menu a{min-height:56px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);text-decoration:none;font-size:1.15rem}
.site-mobile-menu a::after{content:"→";font-family:var(--mono);color:var(--accent)}
.site-mobile-menu a[aria-current="page"]{color:var(--accent);font-weight:700}
.menu-open{overflow:hidden}
@media(max-width:980px){.site-menu-toggle{display:inline-flex}.topbar>nav{display:none}}
@media(forced-colors:active){.site-menu-toggle,.filter,.btn,.problem summary{border:1px solid ButtonText}.glossary-term{text-decoration-style:solid}}

img{max-width:100%;height:auto}
