/* Portfolio gallery + case-study extensions */
body.modal-open{overflow:hidden}.works-gallery{padding-top:20px}.works-gallery-head{display:grid;grid-template-columns:.6fr 1.4fr;gap:48px;align-items:end;margin-bottom:42px;border-top:1px solid var(--line);padding-top:22px}.works-gallery-head>div{display:flex;gap:20px;align-items:baseline}.works-gallery-head span{font-size:10px;letter-spacing:.15em;color:var(--muted)}.works-gallery-head h2{font-size:clamp(38px,5vw,72px);line-height:.92;letter-spacing:-.055em;margin:0}.works-gallery-head p{margin:0;color:var(--muted);font-size:17px;max-width:760px}.work-card{appearance:none;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:16px;text-align:left;min-height:540px;display:flex;flex-direction:column;cursor:pointer;position:relative;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}.work-card:nth-child(1){grid-column:span 12;min-height:620px}.work-card:not(:first-child){grid-column:span 6}.work-card:hover,.work-card:focus-visible{transform:translateY(-5px);box-shadow:0 24px 70px rgba(17,17,15,.08);outline:none}.work-card-index{font-size:10px;letter-spacing:.14em}.work-card-art{position:relative;overflow:hidden;display:grid;place-items:center;min-height:330px;margin:18px 0 28px;background:#111;color:#fff}.work-card:first-child .work-card-art{min-height:420px}.work-card-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.72;transition:transform .8s var(--ease),opacity .35s var(--ease)}.work-card:hover .work-card-art img{transform:scale(1.035) rotate(.4deg);opacity:.9}.work-card-art>span{position:relative;z-index:1;font-size:clamp(72px,12vw,180px);line-height:.75;font-weight:900;letter-spacing:-.09em}.work-card-coral .work-card-art{background:var(--coral);color:var(--ink)}.work-card-ink .work-card-art{background:#0c0c0b}.work-card-gradient .work-card-art{background:linear-gradient(135deg,#ff5338,#a632d6 55%,#2448ff)}.work-card-paper .work-card-art{background:#dedbd3;color:var(--ink)}.work-card-copy{margin-top:auto;display:grid;grid-template-columns:1fr auto;align-items:end;gap:18px}.work-card-copy small{grid-column:1/-1;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.work-card-copy h3{margin:0;font-size:clamp(38px,4.8vw,72px);line-height:.9;letter-spacing:-.06em}.work-card-copy>span{font-size:10px;letter-spacing:.12em;text-transform:uppercase}.work-modal{position:fixed;z-index:500;inset:0;display:grid;place-items:center;padding:clamp(14px,3vw,42px);opacity:0;pointer-events:none;transition:opacity .22s ease}.work-modal[hidden]{display:none}.work-modal.is-open{opacity:1;pointer-events:auto}.work-modal-backdrop{position:absolute;inset:0;background:rgba(10,10,9,.78);backdrop-filter:blur(12px)}.work-modal-panel{position:relative;z-index:1;width:min(1180px,100%);max-height:min(88vh,900px);overflow:auto;background:var(--paper);display:grid;grid-template-columns:1.2fr .8fr;box-shadow:0 40px 120px rgba(0,0,0,.35);outline:none;transform:translateY(18px) scale(.985);transition:transform .28s var(--ease)}.work-modal.is-open .work-modal-panel{transform:none}.work-modal-close{position:absolute;z-index:4;right:16px;top:16px;width:44px;height:44px;border:1px solid rgba(255,255,255,.35);background:#111;color:#fff;font-size:30px;line-height:1;cursor:pointer}.work-modal-media{min-height:620px;background:#111;display:grid;place-items:center;overflow:hidden}.work-modal-media img{width:100%;height:100%;object-fit:cover;max-height:760px}.work-modal-copy{padding:clamp(34px,5vw,70px);display:flex;flex-direction:column}.work-modal-meta{display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.work-modal-copy h2{font-size:clamp(48px,6vw,88px);line-height:.86;letter-spacing:-.065em;margin:auto 0 30px}.work-modal-copy p{font-size:18px;line-height:1.55;margin:0 0 30px}.work-modal-copy small{color:var(--muted);font-family:Arial,sans-serif;line-height:1.6}.project-case-hero-meta{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:54px}.project-case-hero-meta>div{padding:18px 22px 18px 0;border-right:1px solid var(--line)}.project-case-hero-meta small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.13em;margin-bottom:8px}.project-case-cover{min-height:min(72vw,900px);display:grid;place-items:center;position:relative;overflow:hidden;background:#111;color:#fff}.project-case-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.72}.project-case-cover strong{position:relative;font-size:clamp(72px,15vw,220px);letter-spacing:-.09em;line-height:.7}.project-case-section{display:grid;grid-template-columns:.55fr 1.45fr;gap:clamp(42px,8vw,130px);border-top:1px solid var(--line);padding-top:30px;margin-top:60px}.project-case-section>div:first-child{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.project-case-section h2{font-size:clamp(42px,5vw,78px);line-height:.94;letter-spacing:-.055em;margin:0 0 28px}.project-case-section p{font-family:Arial,sans-serif;font-size:19px;line-height:1.7;color:#504d48;max-width:780px}.project-case-tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}.project-case-tools span{border:1px solid var(--line);padding:9px 12px;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.project-gallery-placeholder{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:50px}.project-gallery-placeholder>div{min-height:360px;background:#111;color:#fff;display:grid;place-items:center;font-size:10px;letter-spacing:.14em}.project-gallery-placeholder>div:first-child{grid-column:1/-1;min-height:520px;background:var(--coral);color:var(--ink)}.form-status{margin:0 0 24px;padding:18px 20px;border:1px solid var(--line);font-family:Arial,sans-serif;font-size:14px}.form-status-success{background:#e9f6e9}.form-status-error{background:#ffe7e0;border-color:rgba(255,83,56,.45)}.contact-social{display:flex;flex-direction:column;gap:8px;margin-top:36px;font-size:13px}.contact-social a{font-size:13px}.form-note{grid-column:1/-1;margin:20px 0 0;color:var(--muted);font-family:Arial,sans-serif;font-size:12px;line-height:1.55;max-width:620px}.about-profile-copy{max-width:780px;margin-top:42px;border-top:1px solid var(--line);padding-top:26px}.about-profile-copy p{font-family:Arial,sans-serif;font-size:17px;line-height:1.65;color:#504d48}.portrait-frame{margin:0;aspect-ratio:4/5;overflow:hidden;background:#111}.portrait-frame img{width:100%;height:100%;object-fit:cover}.reference-section{border-top:1px solid var(--line)}.reference-intro{max-width:720px;color:var(--muted);font-family:Arial,sans-serif;font-size:16px;line-height:1.6}.reference-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:42px;border-top:1px solid var(--line);border-left:1px solid var(--line)}.reference-grid>div{min-height:150px;display:grid;place-items:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:clamp(18px,2.2vw,30px);font-weight:800}.cv-pending{display:inline-block;margin-top:20px;padding:10px 12px;border:1px solid var(--line);font-size:10px;letter-spacing:.12em;color:var(--muted)}
@media(max-width:900px){.works-gallery-head,.work-modal-panel,.project-case-section{grid-template-columns:1fr}.work-card:not(:first-child){grid-column:span 12}.project-case-hero-meta{grid-template-columns:1fr 1fr}.work-modal-media{min-height:380px}.work-modal-copy h2{margin:40px 0 24px}.project-gallery-placeholder{grid-template-columns:1fr}.project-gallery-placeholder>div:first-child{grid-column:auto}.reference-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.project-case-hero-meta{grid-template-columns:1fr}.project-case-hero-meta>div{border-right:0;border-bottom:1px solid var(--line)}.work-modal{padding:0}.work-modal-panel{width:100%;height:100%;max-height:none}.work-modal-media{min-height:42vh}.work-modal-copy{padding:28px}.work-card{min-height:460px}.work-card:first-child{min-height:520px}.work-card-art,.work-card:first-child .work-card-art{min-height:300px}.reference-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.work-card,.work-card-art img,.work-modal,.work-modal-panel{transition:none!important}}
