:root{--ink:#24211d;--tan:#cfc3b1;--tan-light:#ded5c8;--umber:#5b3027;--muted:#756d62;--line:rgba(36,33,29,0.28)}*{box-sizing:border-box}body,html{background:var(--tan)}body{min-width:320px;margin:0;overflow:hidden;color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}dd,dl,h1,h2,h3,ol,p{margin:0}ol{padding:0;list-style:none}a:focus-visible{outline:2px solid var(--umber);outline-offset:4px}::selection{color:var(--tan-light);background:var(--umber)}.portfolio{width:100%;height:100svh;display:grid;grid-template-rows:64px minmax(0,1.12fr) minmax(0,.88fr) 48px;padding:0 24px;overflow:hidden}.site-footer,.site-header{display:grid;align-items:center;border-color:var(--ink);text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:.08em}.site-header{grid-template-columns:1fr auto 1fr;border-bottom:1px solid}.identity{display:flex;align-items:center;gap:11px;width:-moz-fit-content;width:fit-content}.identity-mark{display:grid;width:30px;height:30px;place-items:center;color:var(--tan-light);background:var(--ink);font-size:10px}.header-role{color:var(--muted)}.header-link{justify-self:end}.hero{min-height:0;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.72fr) minmax(260px,.68fr);border-bottom:1px solid}.intro{min-width:0;display:flex;flex-direction:column;padding:clamp(20px,3.3vh,38px) 28px 22px 0}.location,.panel-index{color:var(--umber);text-transform:uppercase;font-family:Courier New,monospace;font-size:10px;font-weight:700;letter-spacing:.08em}.intro h1{max-width:780px;margin-top:auto;font-size:clamp(54px,6.6vw,106px);font-weight:700;line-height:.82;letter-spacing:-.078em}.intro h1 span{display:block;color:var(--umber)}.intro-copy{max-width:430px;margin-top:clamp(18px,3vh,34px);font-size:clamp(14px,1.15vw,17px);line-height:1.35}.portrait-panel{position:relative;margin:0;min-width:0;overflow:hidden;border-left:1px solid;background:var(--tan-light)}.portrait-panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 34%;filter:saturate(.8) contrast(1.03)}.portrait-panel:after{position:absolute;inset:0;content:"";background:linear-gradient(180deg,transparent 58%,rgba(36,33,29,.46))}.portrait-panel svg{position:absolute;z-index:1;inset:auto 0 0;width:100%;height:42%;opacity:.44}.portrait-panel path{fill:none;stroke:var(--tan-light);stroke-width:1}.portrait-panel figcaption{position:absolute;z-index:2;right:12px;bottom:11px;color:var(--tan-light);font-family:Courier New,monospace;font-size:8px;text-transform:uppercase;letter-spacing:.08em}.about-panel{display:flex;flex-direction:column;padding:clamp(20px,3.3vh,38px) 0 22px 24px;border-left:1px solid}.about-panel h2{max-width:360px;margin-top:auto;font-size:clamp(24px,2.3vw,36px);line-height:.98;letter-spacing:-.045em}.about-panel>p:nth-of-type(2){max-width:390px;margin-top:18px;font-size:clamp(11px,.9vw,14px);line-height:1.45}.about-panel dl{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-top:22px;padding-top:12px;border-top:1px solid var(--line)}.about-panel dt{margin-bottom:4px;color:var(--muted);text-transform:uppercase;font-size:8px;font-weight:700;letter-spacing:.08em}.about-panel dd{font-size:10px}.work-panel{min-height:0;display:grid;grid-template-columns:25% 75%;border-bottom:1px solid}.work-heading{padding:18px 20px 14px 0}.work-heading h2{margin-top:11px;font-size:clamp(34px,4vw,60px);line-height:.9;letter-spacing:-.06em}.work-instruction{max-width:145px;margin-top:14px;color:var(--muted);font-size:9px;line-height:1.35}.site-footer{grid-template-columns:1fr auto}.site-footer>div{display:flex;align-items:center;gap:24px}.site-footer span{color:var(--muted)}.header-link:hover,.site-footer a:hover{color:var(--umber)}.project-list{min-height:0;display:grid;grid-template-rows:repeat(3,1fr);border-left:1px solid}.project-list li{min-height:0}.project-list li+li{border-top:1px solid var(--line)}.project-row{position:relative;width:100%;height:100%;display:grid;grid-template-columns:36px minmax(0,1.5fr) minmax(155px,.8fr) 20px;grid-gap:14px;gap:14px;align-items:center;padding:7px 0 7px 18px;overflow:hidden;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer;isolation:isolate}.project-row>span{position:relative;z-index:1}.project-row:focus-visible,.project-row:hover{color:var(--umber)}.project-row:focus-visible{outline:2px solid var(--umber);outline-offset:-3px}.project-number,.project-tools{color:var(--muted);font-family:Courier New,monospace;font-size:9px;text-transform:uppercase;transition:color .52s ease}.project-name{min-width:0}.project-title-line{display:flex;align-items:center;gap:12px;min-width:0}.project-name strong{display:block;flex:0 1 auto;font-size:clamp(15px,1.45vw,22px);line-height:1;letter-spacing:-.03em;transition:color .52s ease,transform .65s cubic-bezier(.22,1,.36,1)}.project-summary{display:block;margin-top:3px;overflow:hidden;color:#625b52;font-size:clamp(9px,.78vw,12px);text-overflow:ellipsis;white-space:nowrap;transition:color .52s ease}.project-arrow{color:var(--umber);font-size:16px;transition:color .52s ease,transform .65s cubic-bezier(.22,1,.36,1)}.project-row:focus-visible .project-name strong,.project-row:hover .project-name strong{transform:translateX(2px)}.project-row:focus-visible .project-arrow,.project-row:hover .project-arrow{transform:translate(1px,-1px)}.rock-stack-stage{flex:0 0 82px;width:82px;height:42px;margin-block:-12px;overflow:hidden;pointer-events:none}.rock-stack-canvas{width:100%!important;height:100%!important;animation:rocks-in .42s ease both}@keyframes rocks-in{0%{opacity:0}}.project-detail{min-height:0;grid-row:2/4;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden;color:var(--ink);background:var(--tan-light);border-bottom:1px solid;animation:detail-in .52s cubic-bezier(.22,1,.36,1) both}.detail-footer,.detail-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;font-family:Courier New,monospace;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.detail-header{border-bottom:1px solid var(--line)}.detail-header button{display:flex;align-items:center;gap:9px;padding:0;border:0;color:inherit;background:transparent;font:inherit;text-transform:uppercase;cursor:pointer}.detail-header button span{font:20px/.5 Arial,sans-serif;transition:transform .22s ease}.detail-header button:hover span{transform:rotate(90deg)}.detail-title{position:relative;padding:clamp(28px,6vh,68px) 24px;border-bottom:1px solid var(--line)}.detail-title>p{color:var(--umber);font-family:Courier New,monospace;font-size:9px;text-transform:uppercase}.detail-title h1{max-width:1050px;margin-top:14px;font-size:clamp(58px,8.5vw,136px);line-height:.84;letter-spacing:-.07em}.status{position:absolute;top:22px;right:24px;padding:6px 9px;border:1px solid var(--line);border-radius:999px;font-size:8px;text-transform:uppercase;letter-spacing:.06em}.detail-body{min-height:0;display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr)}.detail-statement{display:flex;flex-direction:column;padding:24px;border-right:1px solid var(--line)}.detail-statement>p{max-width:520px;font-size:clamp(18px,1.8vw,28px);line-height:1.22;letter-spacing:-.025em}.detail-statement ul{display:flex;flex-wrap:wrap;gap:5px;margin:auto 0 0;padding:18px 0 0;list-style:none}.detail-statement li{padding:5px 7px;border:1px solid var(--line);font-family:Courier New,monospace;font-size:8px;text-transform:uppercase}.detail-facts{min-height:0;display:grid;grid-template-rows:repeat(3,1fr)}.detail-facts div{display:grid;grid-template-columns:88px minmax(0,680px);grid-gap:20px;gap:20px;align-content:center;padding:16px 24px}.detail-facts div+div{border-top:1px solid var(--line)}.detail-facts dt{color:var(--umber);font-family:Courier New,monospace;font-size:8px;text-transform:uppercase}.detail-facts dd{font-size:clamp(12px,1vw,16px);line-height:1.4}.detail-footer{border-top:1px solid var(--line);color:var(--muted)}@keyframes detail-in{0%{opacity:0;transform:translateY(10px)}}@media (max-width:900px){.portfolio{grid-template-rows:56px minmax(0,1.1fr) minmax(0,.9fr) 42px;padding-inline:16px}.hero{grid-template-columns:minmax(0,1fr) 34%}.portrait-panel{display:none}.intro h1{font-size:clamp(48px,9.2vw,82px)}.about-panel{padding-left:18px}.project-row{grid-template-columns:28px minmax(0,1fr) 18px;padding-left:12px}.project-tools{display:none}}@media (max-width:620px){.portfolio{grid-template-rows:48px minmax(0,1.18fr) minmax(0,.82fr) 38px;padding-inline:12px}.site-header{grid-template-columns:1fr auto}.header-role,.identity-mark{display:none}.hero{grid-template-columns:minmax(0,1.35fr) minmax(135px,.65fr)}.intro{padding:15px 10px 12px 0}.intro h1{font-size:clamp(38px,11vw,58px);line-height:.86}.intro-copy{margin-top:12px;font-size:11px}.about-panel{padding:15px 0 12px 11px}.about-panel h2{font-size:clamp(18px,5vw,25px)}.about-panel dl,.about-panel>p:nth-of-type(2){display:none}.work-panel{grid-template-columns:31% 69%}.work-heading{padding-top:12px}.work-heading h2{font-size:clamp(27px,8vw,40px)}.project-row{grid-template-columns:20px minmax(0,1fr) 12px;gap:5px;padding:4px 0 4px 7px}.project-name strong{font-size:12px}.project-summary{display:none}.project-number{font-size:7px}.rock-stack-stage{flex-basis:48px;width:52px;height:34px;margin-block:-9px}.site-footer{font-size:8px}.site-footer>div{gap:10px}.site-footer a:nth-child(2),.work-instruction{display:none}.detail-title{padding-block:22px}.detail-title h1{max-width:75%;font-size:clamp(38px,12vw,58px)}.detail-body{grid-template-columns:1fr;overflow-y:auto}.detail-statement{border-right:0;border-bottom:1px solid var(--line)}.detail-statement ul{margin-top:20px}}@media (max-height:650px){.portfolio{grid-template-rows:46px minmax(0,1.05fr) minmax(0,.95fr) 36px}.about-panel,.intro{padding-top:13px;padding-bottom:10px}.about-panel dl,.about-panel>p:nth-of-type(2),.intro-copy{margin-top:10px}.detail-title{padding-block:18px}.detail-title h1{font-size:clamp(36px,8vh,60px)}.detail-footer,.detail-header{padding-block:11px}}@media (prefers-reduced-motion:reduce){.detail-header button span,.project-arrow,.project-name strong{transition:none}.project-detail,.rock-stack-canvas{animation:none}}