/* ===== Works filter & grid (works.html) ===== */
.filter-bar{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:70px;}
.filter-bar button{
  background:none;border:1px solid var(--line);color:var(--ink-soft);
  padding:11px 26px;font-size:.78rem;letter-spacing:.1em;cursor:pointer;
  font-family:var(--sans);transition:all .35s ease;
}
.filter-bar button:hover{border-color:var(--gold);color:var(--ink);}
.filter-bar button.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper);}

.works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px 36px;}
.work-card{cursor:pointer;}
.work-card .thumb{position:relative;overflow:hidden;aspect-ratio:4/3;margin-bottom:22px;}
.work-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.25,1,.5,1);filter:saturate(.85);}
.work-card:hover .thumb img{transform:scale(1.07);}
.work-card .thumb::after{
  content:'';position:absolute;inset:0;border:1px solid transparent;
  transition:border-color .4s ease, inset .4s ease;
}
.work-card:hover .thumb::after{border-color:var(--gold);inset:10px;}
.work-card .ord{font-family:var(--serif);color:var(--gold);font-size:.85rem;letter-spacing:.1em;}
.work-card .tag{font-family:var(--eng);font-style:italic;color:var(--ink-soft);font-size:.78rem;letter-spacing:.08em;opacity:.7;}
.work-card h3{font-size:1.08rem;margin:10px 0 8px;letter-spacing:.04em;}
.work-card p{font-size:.82rem;margin:0;}
.work-card[data-cat]{display:none;}
.work-card[data-cat].is-shown{display:block;animation:fadein .5s ease;}
@keyframes fadein{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}

/* ===== Work detail (work-detail.html) ===== */
.wd-head{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;margin-bottom:60px;}
.wd-meta{display:flex;flex-direction:column;gap:18px;}
.wd-meta dt{font-size:.74rem;letter-spacing:.12em;color:var(--gold);font-family:var(--eng);font-style:italic;margin-bottom:4px;}
.wd-meta dd{margin:0;font-size:.9rem;}
.wd-meta-row{border-bottom:1px solid var(--line);padding-bottom:16px;}
.wd-hero-img{width:100%;aspect-ratio:21/10;object-fit:contain;background:var(--ink);margin-bottom:90px;}

/* ===== Work detail slider ===== */
.wd-slider{margin-bottom:90px;}
.wd-slider-stage{
  position:relative;
  display:flex;align-items:center;gap:16px;
  margin-bottom:14px;
}
.slider-track-wrap{
  flex:1;overflow:hidden;
  background:var(--ink);
  aspect-ratio:21/10;
}
.slider-track{
  display:flex;
  transition:transform .45s cubic-bezier(.65,0,.35,1);
  height:100%;
}
.slider-track img{
  flex-shrink:0;width:100%;height:100%;
  object-fit:contain;
}
.slider-btn{
  flex-shrink:0;
  width:44px;height:44px;
  background:var(--paper);border:1px solid var(--line);
  color:var(--ink);font-size:1.5rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .3s,border-color .3s;
  z-index:2;
  line-height:1;
}
.slider-btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.slider-btn:disabled{opacity:.3;cursor:default;}
.slider-thumbs{
  display:flex;gap:8px;justify-content:center;
}
.slider-thumb{
  width:80px;height:54px;object-fit:contain;
  background:var(--ink);
  cursor:pointer;opacity:.45;border:2px solid transparent;
  transition:opacity .3s,border-color .3s;
  flex-shrink:0;
}
.slider-thumb.is-active{opacity:1;border-color:var(--gold);}
.slider-thumb:hover{opacity:.8;}
.wd-body{display:grid;grid-template-columns:2fr 1fr;gap:80px;}
.wd-body h2{font-size:1.5rem;margin:48px 0 22px;}
.wd-body h2:first-child{margin-top:0;}
.wd-body p{font-size:.92rem;margin-bottom:0;}
.wd-gallery{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:36px 0;}
.wd-gallery img{aspect-ratio:4/3;object-fit:cover;}
.wd-gallery img.is-screenshot{object-fit:contain;background:var(--ink);}
.wd-side{position:sticky;top:120px;align-self:start;background:var(--paper-deep);padding:40px 32px;border:1px solid var(--line);}
.wd-side h4{font-size:.85rem;letter-spacing:.12em;margin-bottom:24px;color:var(--gold);}
.wd-side ul{list-style:none;padding:0;margin:0 0 30px;}
.wd-side li{display:flex;justify-content:space-between;font-size:.84rem;padding:12px 0;border-bottom:1px solid var(--line);}
.wd-side li span:first-child{color:var(--ink-soft);opacity:.7;}
.wd-nav{display:flex;justify-content:space-between;margin-top:100px;padding-top:40px;border-top:1px solid var(--line);}
.wd-nav a{font-size:.82rem;letter-spacing:.08em;display:flex;align-items:center;gap:10px;}
.wd-nav a:hover{color:var(--gold);}

/* ===== Founder concept (company page) ===== */
.concept-block{max-width:760px;margin:0 auto;text-align:center;}
.concept-logo{width:min(360px,70%);margin:0 auto 40px;display:block;}
.concept-block .concept-lead{
  font-family:var(--serif);font-size:1.5rem;line-height:2.1;color:var(--ink);
  margin-bottom:40px;
}
.concept-block .concept-lead .accent{color:var(--gold);}
.concept-block p{font-size:.92rem;text-align:left;margin-bottom:1.6em;}
.concept-block p:last-child{margin-bottom:0;}
.founder-row{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px;
  margin-top:50px;padding-top:40px;border-top:1px solid var(--line);
}
.founder-row .fr-role{font-size:.78rem;color:var(--gold);letter-spacing:.14em;}
.fr-name-svg{
  width:min(300px,70%);
  display:block;
  overflow:visible;
}
.fr-name-svg path.is-ready{
  animation:founder-draw 2s cubic-bezier(.65,0,.35,1) forwards .2s;
}
@keyframes founder-draw{
  from{clip-path:inset(0 100% 0 0);}
  to{clip-path:inset(0 0% 0 0);}
}
@media(prefers-reduced-motion:reduce){
  .fr-name-svg path.is-ready{animation:none;}
}

/* ===== Sole proprietor profile table ===== */

@media(max-width:700px){
  .concept-block .concept-lead{font-size:1.2rem;}
  .founder-row{flex-direction:column;gap:6px;}
}
.profile-table tr{border-bottom:1px solid var(--line);}
.profile-table th,.profile-table td{padding:24px 0;text-align:left;font-size:.9rem;font-weight:400;}
.profile-table th{width:200px;color:var(--gold);letter-spacing:.1em;font-size:.78rem;font-family:var(--eng);font-style:italic;vertical-align:top;}
.history-list{list-style:none;padding:0;margin:0;}
.history-list li{display:grid;grid-template-columns:120px 1fr;gap:30px;padding:26px 0;border-bottom:1px solid var(--line);font-size:.88rem;}
.history-list .yr{font-family:var(--eng);font-style:italic;color:var(--gold);}
.member-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;}
.member-card{text-align:center;}
.member-card .ph{width:160px;height:160px;border-radius:50%;margin:0 auto 24px;overflow:hidden;border:1px solid var(--gold-pale);}
.member-card .ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(.3);}
.member-card h4{font-size:1.02rem;margin-bottom:6px;}
.member-card .role{font-size:.78rem;color:var(--gold);letter-spacing:.08em;display:block;margin-bottom:14px;}
.member-card p{font-size:.82rem;}

/* ===== Contact ===== */
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;}
.contact-info h3{font-size:.85rem;letter-spacing:.12em;color:var(--gold);margin-bottom:20px;}
.contact-info .ci-item{margin-bottom:36px;}
.contact-info .ci-item .lbl{font-size:.74rem;opacity:.6;letter-spacing:.08em;display:block;margin-bottom:6px;}
.contact-info .ci-item .val{font-size:1rem;}
.form-group{margin-bottom:30px;}
.form-group label{display:block;font-size:.8rem;letter-spacing:.06em;margin-bottom:10px;color:var(--ink-soft);}
.form-group label .req{color:var(--gold);font-size:.7rem;margin-left:8px;}
.form-group input,.form-group select,.form-group textarea{
  width:100%;border:none;border-bottom:1px solid var(--line);
  background:transparent;padding:12px 4px;font-size:.95rem;font-family:var(--sans);
  color:var(--ink);transition:border-color .3s ease;
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  outline:none;border-color:var(--gold);
}
.form-group textarea{resize:vertical;min-height:140px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:30px;}
.form-submit{margin-top:20px;}
.form-submit button{
  background:var(--ink);color:var(--paper);border:1px solid var(--ink);
  padding:18px 56px;font-size:.85rem;letter-spacing:.16em;cursor:pointer;
  font-family:var(--sans);transition:background .4s ease, color .4s ease;
}
.form-submit button:hover{background:transparent;color:var(--ink);}
.form-note{font-size:.78rem;opacity:.6;margin-top:18px;}

@media(max-width:900px){
  .works-grid{grid-template-columns:1fr 1fr;}
  .wd-head{grid-template-columns:1fr;gap:30px;}
  .wd-body{grid-template-columns:1fr;}
  .wd-side{position:static;}
  .wd-gallery{grid-template-columns:1fr;}
  .member-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;gap:50px;}
  .form-row{grid-template-columns:1fr;}
  .history-list li{grid-template-columns:80px 1fr;}
}
