.portfolio-document { margin:0; background:#f3f0ea; }
.extended-page { --ep-ink:#171714; --ep-muted:#68635d; --ep-line:#d8d2ca; --ep-paper:#f3f0ea; --ep-gold:#ae8954; min-height:100vh; background:var(--ep-paper); color:var(--ep-ink); font-family:Manrope,"Segoe UI",Arial,sans-serif; font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
.extended-page *, .extended-page *::before, .extended-page *::after { box-sizing:border-box; }
.extended-page a { color:inherit; text-decoration:none; }
.extended-page button { font:inherit; }
.extended-page [hidden] { display:none !important; }
.extended-page :is(a,summary,button):focus-visible { outline:2px solid #78532d; outline-offset:6px; }
.extended-page img { display:block; max-width:100%; }
.ep-wrap { width:min(1200px,calc(100% - 72px)); margin-inline:auto; }
.ep-header { position:sticky; top:0; z-index:20; background:var(--ep-paper); border-bottom:1px solid var(--ep-line); }
.ep-header-inner { min-height:100px; display:flex; align-items:center; justify-content:space-between; gap:28px; padding-block:18px; }
.ep-brand { display:flex; gap:12px; align-items:center; font-size:19px; font-weight:800; letter-spacing:.01em; line-height:1.3; flex-shrink:0; }
.ep-brand img { width:48px; height:48px; object-fit:contain; }
.ep-brand small { display:block; margin-top:3px; font-size:12px; font-weight:500; letter-spacing:.03em; color:var(--ep-muted); }
.ep-gold { color:#92703f; }
.ep-back { display:inline-flex; align-items:center; min-height:44px; font-size:14px; border-bottom:1px solid transparent; }
.ep-back:hover { border-bottom-color:currentColor; }
.ep-button { display:inline-flex; justify-content:center; align-items:center; min-height:52px; padding:14px 24px; background:var(--ep-gold); color:var(--ep-ink); font-size:14px; font-weight:700; line-height:1.4; text-align:center; }
.ep-button:hover { background:#bc985f; }
.ep-main { padding-block:62px 70px; }
.ep-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:32px; padding-bottom:42px; }
.ep-heading h1 { max-width:820px; margin:0; font-size:clamp(42px,5.5vw,76px); line-height:1.02; letter-spacing:-.05em; font-weight:500; }
.ep-heading em { display:block; color:#92703f; font-family:"Cormorant Garamond",Georgia,serif; font-size:1.13em; font-weight:400; letter-spacing:-.03em; }
.ep-heading p { margin:0 0 6px; max-width:190px; color:var(--ep-muted); font-size:15px; }
.ep-projects { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px 32px; align-items:start; }
.ep-project { min-width:0; border-bottom:1px solid var(--ep-line); scroll-margin-top:118px; }
.ep-project summary { list-style:none; cursor:pointer; }
.ep-project summary::-webkit-details-marker { display:none; }
.ep-cover { display:block; overflow:hidden; aspect-ratio:1.1; background:#e9e3da; }
.ep-cover img { width:100%; height:100%; object-fit:cover; }
.ep-project-intro { display:block; padding:24px 0 22px; }
.ep-project-number { display:block; margin-bottom:12px; color:var(--ep-muted); font-size:12px; font-weight:600; letter-spacing:.1em; }
.ep-project h2 { margin:0; font-size:clamp(23px,2.25vw,31px); line-height:1.22; letter-spacing:-.035em; font-weight:500; }
.ep-project-action { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:24px; font-size:14px; }
.ep-plus { font-size:30px; font-weight:400; line-height:1; }
.ep-action-less { display:none; }
.ep-project[open] { grid-column:1/-1; }
.ep-project[open] summary { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1fr); gap:clamp(28px,6vw,80px); align-items:center; }
.ep-project[open] .ep-cover { aspect-ratio:auto; }
.ep-project[open] .ep-cover img { height:auto; object-fit:contain; }
.ep-project[open] h2 { font-size:clamp(28px,3.5vw,46px); }
.ep-project[open] .ep-action-more { display:none; }
.ep-project[open] .ep-action-less { display:inline; }
.ep-project[open] .ep-plus { transform:rotate(45deg); }
.ep-project-body { padding-bottom:32px; }
.ep-cover-caption { margin:18px 0 30px; max-width:640px; font-size:15px; color:var(--ep-muted); }
.ep-cover-caption:empty { margin:0 0 32px; }
.ep-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; align-items:start; }
.ep-photo { margin:0; min-width:0; }
.ep-photo img { width:100%; height:auto; }
.ep-photo figcaption { display:flex; gap:16px; margin-top:12px; font-size:14px; color:var(--ep-muted); }
.ep-photo-count { flex-shrink:0; font-size:12px; line-height:1.9; letter-spacing:.07em; }
.ep-cover-block { display:block; min-width:0; }
.ep-area { display:block; margin-top:12px; color:var(--ep-muted); font-size:18px; }
.ep-cover-note, .ep-case-description { display:none; }
.ep-project-detailed[open] .ep-cover-note { display:flex; gap:16px; margin-top:18px; cursor:text; }
.ep-project-detailed[open] .ep-case-description { display:block; margin-top:24px; max-width:490px; font-size:16px; line-height:1.7; color:var(--ep-muted); }
.ep-project-detailed[open] .ep-project-body { padding-top:28px; }
.ep-project-detailed .ep-caption-copy { display:block; min-width:0; color:var(--ep-muted); font-size:16px; line-height:1.65; }
.ep-project-detailed .ep-caption-copy strong { display:block; margin-bottom:8px; color:var(--ep-ink); font-size:18px; font-weight:600; line-height:1.35; }
.ep-project-detailed .ep-caption-copy > span { display:block; }
.ep-project-detailed .ep-photo-count { padding-top:2px; }
.ep-close-project { display:block; width:100%; min-height:52px; margin-top:32px; padding:12px 20px; border:1px solid var(--ep-line); color:var(--ep-ink); background:transparent; cursor:pointer; }
.ep-close-project:hover { background:#e9e3da; }
.ep-bottom { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:64px; }
.ep-footer { padding:32px 0; color:#f3f0ea; background:#171714; }
.ep-footer .ep-wrap { display:flex; justify-content:space-between; gap:20px; font-size:14px; }
.ep-footer span { font-weight:700; letter-spacing:.1em; }
.ep-mobile-bar { display:none; }
.ep-skip { position:absolute; left:20px; top:-100px; padding:12px; background:#fff; z-index:30; }
.ep-skip:focus { top:12px; }
@media(max-width:760px) {
  .ep-wrap { width:calc(100% - 36px); }
  .ep-header-inner { min-height:78px; padding-block:14px; gap:16px; flex-wrap:wrap; }
  .ep-brand { font-size:16px; gap:8px; }
  .ep-brand img { width:36px; height:36px; }
  .ep-brand small { font-size:11px; }
  .ep-header-cta { display:none; }
  .ep-back { font-size:13px; }
  .ep-main { padding-top:36px; padding-bottom:40px; }
  .ep-heading { display:block; padding-bottom:28px; }
  .ep-heading h1 { font-size:clamp(34px,7.7vw,55px); line-height:1.05; overflow-wrap:anywhere; }
  .ep-heading p { max-width:none; margin:18px 0 0; font-size:14px; }
  .ep-projects { grid-template-columns:1fr; gap:32px; }
  .ep-project { scroll-margin-top:100px; }
  .ep-project-intro { padding-top:20px; }
  .ep-project h2, .ep-project[open] h2 { font-size:26px; }
  .ep-project-action { margin-top:20px; }
  .ep-project[open] summary { display:block; }
  .ep-gallery { grid-template-columns:1fr; gap:26px; }
  .ep-cover-caption { margin:0 0 26px; }
  .ep-gallery figcaption { gap:12px; }
  .ep-project-detailed[open] .ep-cover-note { gap:12px; }
  .ep-project-detailed[open] .ep-project-body { padding-top:4px; }
  .ep-bottom { flex-direction:column; align-items:stretch; margin-top:36px; }
  .ep-bottom .ep-back { justify-content:center; }
  .ep-footer { padding-bottom:calc(108px + env(safe-area-inset-bottom,0px)); }
  .ep-footer .ep-wrap { flex-direction:column; gap:12px; }
  .ep-mobile-bar { display:grid; grid-template-columns:1fr 1fr; gap:6px; position:fixed; z-index:30; left:12px; right:12px; bottom:calc(10px + env(safe-area-inset-bottom,0px)); padding:6px; background:#171714; }
  .ep-mobile-bar .ep-button { padding-inline:8px; font-size:16px; }
  .ep-call { background:#fffdf9; }
}
@media(prefers-reduced-motion:reduce) { .portfolio-document { scroll-behavior:auto; } }
