/* Shared text origins: October 24 revision pp.2,9.
   Professor names start in column 4; committee names in column 3. */
.about-copy{--roster-column:12.5%;container-type:inline-size}
.graduate-row{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:0}
.graduate-row .roster-wide{grid-column:span 2}
.people-table>div{grid-template-columns:repeat(8,minmax(0,1fr))}
.faculty dt{grid-column:1 / 4}
.faculty dd{grid-column:4 / -1;display:flex;gap:1em;white-space:nowrap}
.faculty-name{display:block}
.committee dt{grid-column:1 / 3}
.committee dd{grid-column:3 / -1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.committee-name{white-space:nowrap}
@media(min-width:701px) and (max-width:1100px){
 .graduate-desktop,.people-table>div{font-size:min(clamp(11px,1.17vw,13px),3.7cqi)}
 .graduate-desktop .roster-four{font-size:.9em;letter-spacing:-.06em}
}
/* Four-character names must also fit when the compact desktop rule ends. */
@media(min-width:1101px){
 .graduate-desktop .roster-four{font-size:min(1em,2.95cqi)}
}
.site-footer{font-family:var(--received-text)}
.interview-grid{letter-spacing:0}
.interview-grid h3,.floorplan-profile .interview-grid h3{letter-spacing:-.08em;font-weight:600;line-height:1}
.interview-grid p{letter-spacing:0}
@media(max-width:700px){.interview-grid h3,.floorplan-profile .interview-grid h3{font-size:14px;line-height:1}.interview-grid p{line-height:1.7}}
/* Blending must happen against the page, never an opacity-isolated ancestor.
   Keep the prototype's dissolve on individual painted elements instead. */
.designers-layout{animation:none}
.designer-tabs,.designer-card>strong,.designer-english,.designer-shape{animation:designer-page-arrival .8s cubic-bezier(0,0,.58,1)}
.designer-visual{mix-blend-mode:normal}
.designer-shape{mix-blend-mode:multiply}
.designer-card{isolation:auto}
/* Oct 25: the received PNG already contains the rays, blur and artwork.
   Display the complete image; applying the old mask/cover would cut it twice. */
@media(min-width:701px){
 .designer-profile:not(.floorplan-profile) .profile-ray:not(.received-ray){height:auto;aspect-ratio:2112/4104}
 .designer-profile:not(.floorplan-profile) .profile-ray.received-ray{height:auto;mask:none;-webkit-mask:none;background:none;overflow:visible}
 .designer-profile:not(.floorplan-profile) .profile-ray.received-ray a{height:auto}
 .profile-ray.received-ray a img{display:block;width:100%;height:auto;object-fit:contain;transform:none;filter:none;mix-blend-mode:multiply}
}
@media(max-width:700px){
 /* Scale the fixed eight-column roster against its actual available width.
    14px at the supplied 353px content width; no minimum that can collide
    in narrow views. Share the scale with the aligned faculty/committee. */
 .graduate-mobile,.people-table>div{font-size:min(14px,3.9660056657cqi)}
 .graduate-mobile .graduate-row{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:0}
 .graduate-mobile .roster-four{font-size:.9em;letter-spacing:-.11em}
 .faculty dd{gap:.6em}
 .floorplan-profile .profile-top{grid-template-rows:auto auto auto 1fr auto}
 .floorplan-profile .profile-picture{grid-row:1 / span 4;width:100%;min-width:0;height:100%;aspect-ratio:auto;align-self:stretch}
 .floorplan-profile .profile-text>h1{grid-row:1;align-self:start}
 .floorplan-profile .profile-english{grid-row:2}
 .floorplan-profile .profile-contacts{grid-row:3;align-self:start}
 .floorplan-profile .profile-work-links{display:grid;grid-column:2;grid-row:4;align-self:end;margin-top:0;padding-top:16px}
 .floorplan-profile .profile-interview{grid-row:5;margin-top:42px}
}
@media(prefers-reduced-motion:reduce){
 .designer-tabs,.designer-card>strong,.designer-english,.designer-shape{animation:none}
}

/* Stored glyph outlines use Noto Sans KR v1 in ABOUT and message list/form,
   and Noto Sans KR v2 in designer profiles, revised work details and message detail.
   Keep the original face versions instead of guessing a visually similar font. */
.page-about,.message-board,.message-form{--hangul-font:"Noto Sans KR v1";--received-text:InterDigits,SuiteLatin,Inter,var(--hangul-font),sans-serif}
.message-form{font-family:var(--received-text)}
@media(max-width:700px){.venue>p{--hangul-font:"Noto Sans KR";--received-text:InterDigits,SuiteLatin,Inter,var(--hangul-font),sans-serif}}
/* PDF p10 / mobile Figma 7:2852: numeric runs are Inter Regular,
   independently of the surrounding SUITE Medium English address. */
@media(max-width:700px){.venue-number{font-family:Inter,sans-serif;font-weight:400}}
/* The received mobile designer frame 15:7764 retains the v1 regular outline. */
@media(max-width:700px){.designer-profile:not(.floorplan-profile) .interview-grid>div:nth-child(2)>p{font-family:Inter,"Noto Sans KR v1",sans-serif}}
/* Figma 20:9852 is solid #E6E7E9; only the designer list/profile uses four stops. */
body:has(.floorplan-layout){background:#e6e7e9}
/* Figma 20:9489, 20:9485, 20:9490, 20:9510-12. */
.profile-text h1{letter-spacing:0}
.profile-english,.profile-contacts,.profile-work-links small{letter-spacing:-.04em}
/* Figma contacts use SUITE as a whole run, including digits/punctuation. */
.profile-contacts,.work-author-contacts{font-family:SUITE,var(--hangul-font),sans-serif}
.profile-work-links strong{font-weight:400;letter-spacing:0}
.profile-interview h2,.profile-works-section h2{letter-spacing:-.04em;line-height:1}
/* E24 revised work frame 4:98 / 4:9-17: 176px graphic, 32/22px author,
   22px regular contacts. Retain the actual supplied PNG (including its centre). */
@media(min-width:701px){
 .work-author-person{grid-template-columns:clamp(100px,9.17635vw,176.186px) minmax(0,1fr);column-gap:clamp(16px,1.39755vw,26.833px)}
 .work-author-person>a>img{width:clamp(100px,9.17635vw,176.186px);height:auto;aspect-ratio:1}
 .work-author-person>a>span{font-size:clamp(14px,1.145833vw,22px);font-weight:800;letter-spacing:-.04em;padding-top:.78125vw;line-height:1.52}
 .work-author strong{font-size:clamp(20px,1.666667vw,32px);font-weight:900;letter-spacing:0;line-height:1.0444;margin-bottom:2px}
 .work-author-contacts{font-size:clamp(13px,1.145833vw,22px);font-weight:400;letter-spacing:-.04em;line-height:1;margin-top:.9375vw;gap:1.041667vw}
 .work-author .contact-icon{width:clamp(13px,1.041667vw,20px);height:clamp(13px,1.041667vw,20px)}
}
@media(max-width:700px){
 .work-author-person>a>span{font-size:12px;font-weight:900;letter-spacing:-.04em;line-height:1.41}
 .work-author strong{font-size:16px;font-weight:900;letter-spacing:0;line-height:1.06}
 .work-author-contacts{font-size:12px;font-weight:400;letter-spacing:-.04em;line-height:1;gap:6px}
}

@media(min-width:701px){.work-end{align-items:start}.work-author{padding-top:.46573vw}}

/* PDF pp20,23 / Figma 20:10105 and 5:2278: pink blurred marker, white code. */
.booth:hover,.booth:focus-visible,.booth[aria-pressed=true]{background:transparent;box-shadow:none}
.booth:before{content:'';position:absolute;inset:4%;border-radius:50%;background:#f31192;filter:blur(4px);opacity:0;transition:opacity .2s;pointer-events:none}
.booth:hover:before,.booth:focus-visible:before,.booth[aria-pressed=true]:before{opacity:1}
.booth>span:first-child{position:relative;z-index:1}
/* PDF p22 / mobile Figma 15:7752-59: Light 12px courses and Medium 12px titles. */
@media(max-width:700px){
 .booth:before{inset:0;filter:blur(3px)}
 .profile-english{font-weight:700}
 .profile-contacts{font-size:12px;font-weight:300}
 .profile-work-links small{font-size:12px;font-weight:300;line-height:1;letter-spacing:-.04em}
 .profile-work-links strong{font-size:12px;font-weight:500;letter-spacing:-.08em;line-height:1}
 .profile-works-section h2{font-size:18px;line-height:1}
}

/* Decoration must not capture the neighbouring category's tap (PDF pp31,34). */
.category-nav a:after{pointer-events:none}
.category-nav a:not([aria-current]){z-index:1}

/* PDF p18: leave enough painted area for 1.1x hover, including the title. */
@media(min-width:701px){.profile-works{padding-left:3%;padding-right:3%;margin-left:-3%;margin-right:-3%}}
