:root{
  --paper:#ffffff; --ink:#232323; --bordeaux:#980517; --brass:#c89605;
  --forest:#1f1f1f; --ivory:#ffffff; --rule: #424242;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'Gentium Book Basic', serif; font-size:17px; line-height:1.6; font-weight:400;
}
h1,h2,h3{font-family:'Open Sans',sans-serif; font-weight:600; letter-spacing:.02em; margin:0; text-transform:uppercase;}
a{color:#434343; text-decoration:none; transition:color .3s ease;}
a:hover{color:var(--ink); border-bottom:1px solid currentColor;}
.wrap{max-width:1040px; margin:0 auto; padding:0 6vw;}

/* ---- hamburger navigation (sliding panel, as on the source site) ---- */
.menu-toggle{position:fixed; top:2.5rem; left:3rem; z-index:70;}
.menu-toggle input{display:block; width:40px; height:32px; position:absolute; top:-8px; left:-4px; opacity:0; cursor:pointer; z-index:72;}
.site-mark{position:fixed; top:28px; left:50%; transform:translateX(-50%); z-index:50; font-family:'Source Sans 3',sans-serif; font-weight:300; font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink);}
.site-mark a{color:inherit; text-decoration:none; border:0;}
.burger{display:block; position:relative; z-index:71; width:35px;}
.burger span{display:block; width:35px; height:2px; margin-bottom:8px; background:var(--ink); border-radius:3px; transition:transform .4s cubic-bezier(.77,.2,.05,1), opacity .4s ease;}
#nav-toggle:checked ~ .burger span:nth-child(1){transform:rotate(45deg) translate(3px,3px);}
#nav-toggle:checked ~ .burger span:nth-child(2){opacity:0;}
#nav-toggle:checked ~ .burger span:nth-child(3){transform:rotate(-45deg) translate(3px,-3px);}
#mainnav{
  position:fixed; inset:0; width:100vw; padding:10rem 3rem 3rem; z-index:65;
  transform:translateX(-100%); transition:transform .5s cubic-bezier(.77,.2,.05,1);
  background-image:linear-gradient(to right, rgba(31,31,31,1), rgba(31,31,31,.88) 60%, rgba(31,31,31,.74));
  display:flex; flex-direction:column; gap:.4rem;
}
#nav-toggle:checked ~ #mainnav{transform:translate(0);}
#mainnav a{
  color:#fff; font-family:'Source Sans 3',sans-serif; font-weight:300; text-transform:uppercase;
  font-size:clamp(1.6rem,4.5vh,2.6rem); line-height:1.4; border:0;
}
#mainnav a:hover, #mainnav a[aria-current="page"]{border-bottom:1px solid currentColor;}

/* ---- section titles: "floating title on a rule" ---- */
.page-hero{text-align:center; margin-top:6.5rem; padding-bottom:1.5rem;}
.spine{font-family:'Source Sans 3',sans-serif; font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; color:var(--bordeaux); margin-bottom:1.2rem;}
.page-hero h1{
  display:flex; align-items:center; gap:1.6rem; font-size:clamp(1.7rem,4vw,2.5rem); font-weight:600;
}
.page-hero h1::before, .page-hero h1::after{content:""; flex:1; height:1px; background:var(--rule);}
.page-hero .sub{margin-top:1.2rem; max-width:52ch; opacity:.75; font-size:1.05rem; margin-left:auto; margin-right:auto; font-style:italic;}

section{padding:3.5rem 0;}
section:last-of-type{padding-bottom:clamp(4rem, 10vw, 8rem);}
h2.head{
  display:flex; align-items:center; gap:1.4rem; text-align:center;
  font-size:1.15rem; font-weight:600;
}
h2.head::before, h2.head::after{content:""; flex:1; height:1px; background:var(--rule);}
h2.head.no-rule::before, h2.head.no-rule::after{display:none;}
h2.head.no-rule{justify-content:center;}

.lede{display:grid; grid-template-columns:.4fr 1fr; gap:3rem;}
.lede .drop{font-family:'Source Sans 3',sans-serif; text-transform:uppercase; font-size:.8rem; letter-spacing:.1em; color:var(--bordeaux);}
.lede p{max-width:62ch; font-size:1.08rem;}
.lede p + p{margin-top:1.2rem;}

.bio-grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:4rem; align-items:start;}
.bio-grid img{width:100%; height:auto; filter:grayscale(.3) contrast(1.05);}
.bio-grid figcaption{margin-top:.7rem; font-size:.8rem; opacity:.6; font-family:'Source Sans 3',sans-serif;}

.sub-head{font-family:'Open Sans',sans-serif; text-transform:uppercase; font-size:1.15rem; font-weight:700; color:var(--bordeaux); margin:2.6rem 0 1rem; letter-spacing:.01em;}
.sub-head:first-child{margin-top:0;}
.formation-row{display:grid; grid-template-columns:1.1fr 1.5fr; gap:2rem; padding:1rem 0; border-bottom:1px solid #e4e4e4;}
.formation-row:first-of-type{border-top:1px solid #e4e4e4;}
.formation-row .inst{font-weight:700; font-size:1.02rem;}
.formation-row .disc{opacity:.65; font-size:.92rem; align-self:center; font-style:italic;}

.video-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:2.4rem;}
.video-card figure{margin:0;}
.video-card iframe{width:100%; aspect-ratio:16/9; border:0; display:block;}
.video-card .cap{margin-top:.8rem;}
.video-card .cap .t{font-weight:700; font-size:1rem; font-family:'Open Sans',sans-serif;}
.video-card .cap .d{font-size:.85rem; opacity:.65; margin-top:.2rem; font-style:italic;}

.oeuvre{max-width:640px; margin-left:auto; margin-right:auto; text-align:center;}
.oeuvre .title{font-size:1.5rem; font-weight:700; font-family:'Open Sans',sans-serif; text-transform:uppercase;}
.oeuvre .prize{margin-top:.6rem; font-size:.92rem; color:var(--bordeaux); font-style:italic;}

.links{display:flex; gap:3rem; flex-wrap:wrap; justify-content:center; text-align:center;}
.links div{max-width:280px;}
.links .t{font-weight:700; font-size:1rem; font-family:'Open Sans',sans-serif; text-transform:uppercase;}
.links p{opacity:.65; font-size:.9rem; margin-top:.4rem;}

form.contact{display:grid; gap:1.3rem; max-width:560px; margin:0 auto;}
form.contact label{display:block; font-size:.78rem; opacity:.65; margin-bottom:.4rem; font-family:'Source Sans 3',sans-serif; text-transform:uppercase; letter-spacing:.06em;}
form.contact input, form.contact select, form.contact textarea{
  width:100%; padding:.7rem .2rem; border:0; border-bottom:1px solid var(--rule); background:transparent;
  font-family:'Gentium Book Basic', serif; font-size:1rem; color:var(--ink); border-radius:0;
}
form.contact textarea{min-height:140px; resize:vertical;}
form.contact button{
  justify-self:center; margin-top:1rem; padding:.9rem 2.4rem; background:var(--bordeaux); color:#fff;
  border:1px solid var(--bordeaux); font-family:'Source Sans 3',sans-serif; font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; cursor:pointer;
}
form.contact button:hover{background:#6e0410;}

.legal{max-width:640px; margin:0 auto;}
.legal p, .legal li{max-width:70ch; font-size:.98rem; opacity:.85;}
.legal h3{font-size:.85rem; margin:1.8rem 0 .6rem; text-transform:uppercase; color:var(--bordeaux); font-family:'Source Sans 3',sans-serif; letter-spacing:.06em;}
.legal .fill{background:rgba(152,5,23,.08); padding:.05rem .3rem;}

footer{background:var(--forest); color:#fff; padding:4rem 0 2.4rem; text-align:center;}
footer .rule{border:0; border-top:1px solid rgba(255,255,255,.15); margin:2rem 0;}
footer a{color:#fff; opacity:.7;}
footer a:hover{opacity:1;}
footer .bottom{display:flex; justify-content:center; gap:2rem; font-size:.78rem; opacity:.5; flex-wrap:wrap; font-family:'Source Sans 3',sans-serif;}
footer nav{display:flex; justify-content:center; flex-wrap:wrap; gap:0 1.6rem; margin-bottom:.5rem;}
footer nav a{font-size:.75rem; text-transform:uppercase; letter-spacing:.06em; font-family:'Source Sans 3',sans-serif;}

@media (max-width:760px){
  .bio-grid{grid-template-columns:1fr;}
  .lede{grid-template-columns:1fr; gap:1rem;}
  .formation-row{grid-template-columns:1fr; gap:.2rem; text-align:left;}
  .menu-toggle{top:2rem; left:1.5rem;}
  #mainnav{padding:8rem 2rem 2rem;}
}
:focus-visible{outline:1px solid var(--bordeaux); outline-offset:3px;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
