/* Avada Kedavra 2.0 | Cinematic communal rooms and editable faculty portraits */
.ak2-communal-page, .ak2-faculty-reimagined { background:#0b0d11; color:#eae4d8; }
.ak2-communal-page { --house-accent:#d9bb83;--house-deep:#251c16;--house-glow:rgba(192,118,47,.28);--house-window:#432926;--house-ink:#e9d7b6; overflow:clip; }
.ak2-communal.house-gryffindor {--house-accent:#e8bb74;--house-deep:#2c1019;--house-glow:rgba(175,47,49,.34);--house-window:#5c2531;--house-ink:#f3d8b4;}
.ak2-communal.house-slytherin {--house-accent:#bbd0be;--house-deep:#0a2525;--house-glow:rgba(27,116,85,.34);--house-window:#0d5952;--house-ink:#e5e8e3;}
.ak2-communal.house-ravenclaw {--house-accent:#e0c491;--house-deep:#101b3c;--house-glow:rgba(50,91,164,.40);--house-window:#183c6c;--house-ink:#c8dff1;}
.ak2-communal.house-hufflepuff {--house-accent:#e9c978;--house-deep:#302519;--house-glow:rgba(183,126,42,.38);--house-window:#75562b;--house-ink:#f9e7b4;}
.ak2-communal-preview { display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 18px;padding:14px 20px;background:#191a1c;border-bottom:1px solid #9b896c40;font:10px/1.6 Interface,Arial,sans-serif;letter-spacing:.05em; }
.ak2-communal-preview span {font-weight:700;color:#d9bd89;letter-spacing:.12em;}
.ak2-communal-preview a {color:#d9d2c6;padding:6px 9px;border:1px solid #afa18c34;text-decoration:none;}
.ak2-communal-preview a:hover,.ak2-communal-preview a[aria-current="page"] {border-color:#d9bd89;background:#594a333f;}
.ak2-communal-pending {min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px;padding:85px 20px;background:radial-gradient(ellipse at 50% 50%,#64492b30,transparent 60%),#0b0d11;}
.ak2-pending-glyph {font:115px/1 Georgia,serif;color:#c0a46e;}
.ak2-communal-pending h1 {font:clamp(48px,7vw,84px)/1.09 Editorial,Georgia,serif;margin:0;}
.ak2-communal-pending h1 em {color:#e4c589;}
.ak2-communal-pending>p:not(.ak2-section-kicker){max-width:670px;color:#bdb5ac;line-height:1.9;font-size:14px;}
.ak2-communal-pending .ak2-communal-muted {font-size:12px!important;}
.ak2-room-hero {isolation:isolate;position:relative;min-height:clamp(620px,76vh,830px);display:flex;justify-content:center;align-items:center;text-align:center;overflow:hidden;padding:100px 20px 120px;background:#080a0d;}
.ak2-room-scene {position:absolute;z-index:-2;inset:0;overflow:hidden;background:radial-gradient(ellipse at 50% 70%,var(--house-glow),transparent 43%),radial-gradient(ellipse at 50% 25%,color-mix(in srgb,var(--house-window) 70%,transparent),transparent 62%),linear-gradient(180deg,#040609 0%,var(--house-deep) 45%,#08090e 100%);background-position:center;background-size:cover;}
.ak2-room-scene::before {content:"";position:absolute;inset:-8%;background:repeating-linear-gradient(90deg,transparent 0 calc(15% - 2px),rgba(234,217,179,.05) calc(15% - 1px) 15%),repeating-linear-gradient(0deg,transparent 0 84px,rgba(0,0,0,.21) 85px 87px);mask-image:linear-gradient(to bottom,#000 3%,transparent 88%);}
.ak2-room-scene::after {content:"";position:absolute;inset:0;background:linear-gradient(180deg,#07090ca1 0%,#0a0e1659 38%,#0a0a10c5 80%,#0b0d11 100%),radial-gradient(ellipse at 50% 94%,#a67b4923,transparent 55%);}
.ak2-scene-window {position:absolute;top:6%;height:79%;width:24%;border:12px solid #b39f7652;border-bottom:6px solid #b39f7652;border-radius:46% 46% 2% 2%;box-shadow:0 0 0 12px #090b0e91,inset 0 0 60px #000c,0 0 70px var(--house-glow);background:radial-gradient(ellipse at 50% 80%,#a9a18715,transparent 55%),linear-gradient(130deg,#141925,#1e2535 40%,var(--house-window) 70%,#0b0e15);opacity:.65;}
.ak2-scene-window::after {content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 7px #0b121d91;background:linear-gradient(90deg,transparent calc(50% - 3px),#b4a27766 50%,transparent calc(50% + 3px)),linear-gradient(0deg,transparent 47%,#b4a27766 48%,#b4a27766 50%,transparent 51%);}
.ak2-scene-window-one {left:-8%;transform:scale(.83);opacity:.4;}
.ak2-scene-window-two {left:38%;}
.ak2-scene-window-three {right:-8%;transform:scale(.83);opacity:.4;}
.ak2-scene-altar {position:absolute;left:50%;bottom:3%;transform:translateX(-50%);width:min(560px,52vw);height:22%;border:12px solid #beaa7b2f;border-bottom-width:34px;border-radius:58% 58% 0 0;background:radial-gradient(ellipse at 50% 75%,#c09b482b,transparent 70%),linear-gradient(#0000,#030507);box-shadow:0 -12px 65px #0008;}
.ak2-scene-light {position:absolute;top:5%;left:50%;height:23%;width:7px;transform:translateX(-50%);background:linear-gradient(#514b3f66,#b89d5e77);box-shadow:0 0 44px 17px #d9ab5530;}
.ak2-room-hero-inner {max-width:990px!important;position:relative;z-index:2;padding:26px 0;display:flex;align-items:center;flex-direction:column;}
.ak2-room-hero .ak2-section-kicker {color:var(--house-accent);font-size:10px;letter-spacing:.35em;}
.ak2-room-seal {color:var(--house-accent);margin:20px auto 15px;filter:drop-shadow(0 5px 17px #0009);}
.ak2-room-seal svg {width:104px;height:126px;}
.ak2-room-label {font:11px/1.5 Interface,Arial,sans-serif;color:var(--house-ink);letter-spacing:.4em;}
.ak2-room-hero h1 {font:clamp(70px,11vw,152px)/.91 Editorial,Georgia,serif;color:#fff2df;letter-spacing:-.052em;margin:24px 0 20px;text-shadow:0 10px 45px #000b;}
.ak2-room-hero h1 span {color:var(--house-accent);}
.ak2-room-intro {font:clamp(18px,2vw,23px)/1.55 Editorial,Georgia,serif;color:#e7dccd;max-width:670px;}
.ak2-room-explore {display:inline-block;margin-top:36px;padding:15px 26px;border:1px solid #e2c9946b;color:#f4e5cd;text-transform:uppercase;letter-spacing:.15em;font:10px Interface,Arial,sans-serif;text-decoration:none;background:#090b0e78;}
.ak2-room-explore:hover {background:#d2b47f29;}
.ak2-room-bottomnote {position:absolute;bottom:32px;left:50%;transform:translateX(-50%);color:#e9d3b583;font:9px Interface,Arial,sans-serif;letter-spacing:.28em;white-space:nowrap;}
.ak2-communal-content {padding-block:85px 150px;}
.ak2-communal-content .ak2-chapter-heading {color:var(--house-accent);margin-bottom:42px;}
.ak2-communal-content .ak2-roman {color:var(--house-accent);}
.ak2-room-story {display:grid;grid-template-columns:1fr 1fr;gap:clamp(35px,6vw,90px);margin-bottom:110px;}
.ak2-room-story h2,.ak2-house-director h2,.ak2-salon-notice h2,.ak2-salon-chat h2 {font-family:Editorial,Georgia,serif;letter-spacing:-.025em;font-weight:400;}
.ak2-room-story h2 {font-size:clamp(45px,5.5vw,74px);line-height:1.02;margin:16px 0;}
.ak2-room-story h2 em,.ak2-salon-notice h2 em {color:var(--house-accent);}
.ak2-room-emblem {opacity:.55;margin-top:18px;color:var(--house-accent);}
.ak2-room-emblem svg {height:110px;width:95px;}
.ak2-room-story-copy {padding:24px 0 0;border-top:1px solid #b89c6d55;}
.ak2-room-story-copy>p {max-width:590px;color:#b7b2ac;font:14px/2 Interface,Arial,sans-serif;white-space:pre-wrap;}
.ak2-room-story-copy .ak2-story-lead {font:clamp(24px,3vw,34px)/1.4 Editorial,Georgia,serif;color:#e7d2b2;margin-bottom:28px;}
.ak2-room-story-copy a {display:inline-block;margin-top:24px;}
.ak2-house-director {min-height:430px;display:grid;grid-template-columns:43% 1fr;margin-bottom:120px;overflow:hidden;border:1px solid #b79a6b44;background:radial-gradient(ellipse at 80% 10%,var(--house-glow),transparent 55%),linear-gradient(110deg,var(--house-deep),#17191d 65%);}
.ak2-house-director-image {position:relative;min-height:430px;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;background:radial-gradient(ellipse at 50% 67%,var(--house-glow),transparent 70%),#0b0c10;}
.ak2-house-director-image::before {content:"";position:absolute;inset:22px;border:1px solid #d7c39925;border-radius:48% 48% 3% 3%;}
.ak2-house-director-image img {position:relative;width:100%;height:100%;max-height:540px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 15px 18px #0008);}
.ak2-house-director-placeholder {display:flex;align-items:center;justify-content:center;height:100%;width:100%;color:var(--house-accent);opacity:.75;}
.ak2-house-director-placeholder svg {width:130px;height:160px;}
.ak2-house-director-description {padding:clamp(36px,6vw,78px) clamp(28px,5vw,74px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;}
.ak2-house-director-description h2 {font:clamp(38px,5vw,72px)/1.08 Editorial,Georgia,serif;margin:18px 0 0;color:#f2e8d9;}
.ak2-director-separator {margin:29px 0;width:90px;height:1px;background:var(--house-accent);}
.ak2-director-quotation {font:italic clamp(20px,2.3vw,30px)/1.5 Editorial,Georgia,serif;color:var(--house-ink);white-space:pre-wrap;}
.ak2-director-signature {margin-top:38px;font:10px Interface,Arial,sans-serif;letter-spacing:.25em;color:#aaa39a;}
.ak2-salon-grid {display:grid;grid-template-columns:minmax(250px,.75fr) minmax(0,1.65fr);gap:24px;align-items:start;}
.ak2-salon-aside {display:grid;gap:24px;}
.ak2-salon-notice {position:relative;min-height:405px;padding:35px;border:1px solid #bbab8347;background:linear-gradient(150deg,var(--house-deep),#13151a 86%);}
.ak2-notice-icon {font:42px/1 Georgia,serif;color:var(--house-accent);margin-bottom:36px;}
.ak2-salon-notice h2 {font-size:clamp(30px,3.1vw,43px);line-height:1.15;margin:21px 0;}
.ak2-salon-notice>p:last-child {white-space:pre-wrap;font:13px/1.85 Interface,Arial,sans-serif;color:#c2bdb6;}
.ak2-salon-detail {border:1px solid #9b845b36;padding:27px;min-height:180px;}
.ak2-salon-detail-inner {display:flex;align-items:center;gap:26px;margin-top:23px;color:var(--house-accent);}
.ak2-salon-detail-inner svg {width:64px;height:70px;flex:none;}
.ak2-salon-detail-inner p {font:17px Editorial,Georgia,serif;color:#d3c4ae;}
.ak2-salon-chat {border:1px solid #bba47942;background:linear-gradient(150deg,#17191f,#0c0f14);min-width:0;}
.ak2-salon-chat-head {padding:30px 34px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #bba47935;}
.ak2-salon-chat h2 {font-size:clamp(28px,3vw,42px);line-height:1.2;margin:12px 0 0;}
.ak2-salon-chat h2 em {color:var(--house-accent);}
.ak2-salon-refresh {border:1px solid #b9a37855;color:#e1d1b5;white-space:nowrap;padding:10px 15px;background:transparent;cursor:pointer;}
.ak2-salon-preview-label {margin:20px 34px 0;color:#c7b990;font-size:12px;line-height:1.6;}
.ak2-chat-messages {height:min(52vh,530px);min-height:360px;margin:0 15px;padding:26px 19px!important;}
.ak2-chat-messages .ak2-message {background:#252731!important;border:1px solid #c7af8047!important;max-width:88%;border-radius:2px 16px 16px 16px;padding:14px 18px;}
.ak2-chat-messages .ak2-message.mine {background:color-mix(in srgb,var(--house-deep) 80%,#242c36)!important;align-self:flex-end;border-color:var(--house-accent)!important;border-radius:16px 2px 16px 16px;}
.ak2-chat-messages .ak2-message header strong {color:var(--house-accent);}
.ak2-chat-messages .ak2-message time {color:#b7b0a2;}
.ak2-chat-messages .ak2-message p {color:#eee7df;}
.ak2-chat-messages .communal-empty {margin:auto;color:#c7b9a5;font:italic 21px/1.5 Editorial,Georgia,serif;text-align:center;}
.ak2-salon-compose {display:flex;flex-direction:column;padding:24px 30px 30px;border-top:1px solid #bba47934;gap:12px;}
.ak2-salon-compose label {font:11px Interface,Arial,sans-serif;color:#e6d3ac;letter-spacing:.13em;text-transform:uppercase;}
.ak2-salon-compose textarea {display:block;width:100%;min-height:96px;resize:vertical;background:#080a0e;color:#f2eadb;border:1px solid #bba47966;padding:18px;font:14px/1.5 Interface,Arial,sans-serif;border-radius:3px;}
.ak2-salon-compose textarea:focus {outline:2px solid var(--house-accent);outline-offset:2px;}
.ak2-salon-compose>div {display:flex;align-items:center;justify-content:space-between;gap:12px;}
.ak2-salon-compose small {color:#aba9a5;font-size:11px;}
.ak2-salon-send {padding:14px 19px;border:1px solid var(--house-accent);color:#101217;background:var(--house-accent);font:11px Interface,Arial,sans-serif;font-weight:700;cursor:pointer;}
.ak2-salon-send:disabled {opacity:.45;cursor:not-allowed;}
/* Official portraits + new professor listing. */
.ak2-faculty-reimagined .ak2-director-profile {margin-bottom:110px;}
.ak2-faculty-reimagined .ak2-director-visual {min-height:500px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;}
.ak2-faculty-reimagined .ak2-director-visual img {width:100%;height:500px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 20px 25px #000a);}
.ak2-faculty-image-placeholder {height:100%;min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;color:#c9ac7b;}
.ak2-faculty-image-placeholder svg {width:140px;height:165px;}
.ak2-faculty-image-placeholder span,.ak2-faculty-image-placeholder small {display:block;text-align:center;font:10px/1.9 Interface,Arial,sans-serif;letter-spacing:.19em;color:#ccb287;}
.ak2-faculty-reimagined .ak2-director-copy blockquote,.ak2-professor-details blockquote {margin:12px 0 35px;padding-left:20px;border-left:2px solid #c9a671;color:#f1d6ab;font:italic 23px/1.5 Editorial,Georgia,serif;}
.ak2-faculty-roster-heading {max-width:800px;margin-bottom:50px;}
.ak2-faculty-roster-heading h2 {font-size:clamp(43px,5.5vw,74px);line-height:1.05;margin:18px 0;}
.ak2-faculty-roster-heading h2 em {color:#e9cc91;}
.ak2-professors-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;}
.ak2-professor-card {display:grid;grid-template-columns:43% 1fr;min-height:360px;border:1px solid #bea47454;background:linear-gradient(120deg,#202127,#111319);overflow:hidden;}
.ak2-professor-portrait {min-height:350px;background:radial-gradient(ellipse at 50% 50%,#9d79522f,transparent 68%),#101318;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.ak2-professor-portrait img {width:100%;height:100%;max-height:430px;object-fit:contain;object-position:center bottom;}
.ak2-professor-portrait .ak2-faculty-image-placeholder>span {font-size:62px;}
.ak2-professor-details {display:flex;flex-direction:column;align-items:flex-start;padding:32px 26px;}
.ak2-professor-details h3 {font:clamp(29px,3.4vw,46px)/1.12 Editorial,Georgia,serif;margin:15px 0;}
.ak2-professor-details>p {font:13px/1.8 Interface,Arial,sans-serif;color:#bdb8b1;}
.ak2-professor-details blockquote {font-size:18px;margin:18px 0;}
.ak2-professor-position {margin-top:auto;padding-top:25px;color:#b8a781;font:10px/1.5 Interface,Arial,sans-serif;letter-spacing:.13em;}
.ak2-faculty-ending {text-align:center;margin-top:100px;border-top:1px solid #b89b6d43;padding:85px 15px 0;}
.ak2-faculty-ending>span {font:50px Georgia,serif;color:#d4b77c;}
.ak2-faculty-ending h2 {font:clamp(40px,5vw,69px)/1.15 Editorial,Georgia,serif;margin:25px 0 18px;}
.ak2-faculty-ending h2 em {color:#e3c78f;}
.ak2-faculty-ending p {color:#aaa8a4;font-size:14px;line-height:1.7;}
/* Admin media picker. */
.ak2-admin-upload {display:flex!important;flex-direction:column;align-items:flex-start;gap:10px;padding:17px;background:#171a1f;border:1px solid #b79c694d;margin:15px 0!important;}
.ak2-admin-upload input[type=file] {width:100%;font-size:12px;color:#ddd1c1;}
.ak2-admin-upload small {color:#bcb0a0;font:11px/1.7 Interface,Arial,sans-serif;}
.ak2-admin-thumb {width:100%;max-width:235px;height:130px;object-fit:contain;object-position:center bottom;background:#10151a;border:1px solid #b9a07459;margin:8px 0;}
.ak2-admin-info {color:#bfb5a6;font:13px/1.7 Interface,Arial,sans-serif;margin:12px 0 22px;}
@media(max-width:1050px){.ak2-professors-grid {grid-template-columns:1fr;}.ak2-salon-grid {grid-template-columns:1fr;}.ak2-salon-aside {grid-template-columns:1fr 1fr;}.ak2-room-story {gap:35px;}}
@media(max-width:700px){.ak2-communal-preview {justify-content:flex-start;}.ak2-room-hero {min-height:600px;padding:75px 13px 95px;}.ak2-room-seal svg {width:77px;height:96px;}.ak2-room-hero h1 {font-size:clamp(59px,14vw,90px);}.ak2-room-label {font-size:9px;letter-spacing:.26em;}.ak2-room-intro {font-size:19px;}.ak2-scene-window {width:50%;}.ak2-scene-window-one {left:-24%;}.ak2-scene-window-two {left:25%;}.ak2-scene-window-three {right:-24%;}.ak2-communal-content {padding-block:58px 95px;}.ak2-room-story {grid-template-columns:1fr;margin-bottom:75px;}.ak2-room-story h2 {font-size:clamp(42px,9.5vw,65px);}.ak2-room-emblem {display:none;}.ak2-house-director {grid-template-columns:1fr;margin-bottom:83px;}.ak2-house-director-image {min-height:310px;max-height:360px;}.ak2-house-director-image img {max-height:360px;}.ak2-house-director-description {padding:35px 28px 45px;}.ak2-house-director-description h2 {font-size:clamp(40px,10vw,64px);}.ak2-salon-aside {grid-template-columns:1fr;}.ak2-salon-notice {min-height:0;padding:30px;}.ak2-salon-chat-head {padding:24px;flex-wrap:wrap;}.ak2-salon-compose {padding:20px;}.ak2-chat-messages {margin:0 10px;min-height:300px;height:380px;padding:20px 10px!important;}.ak2-faculty-reimagined .ak2-director-visual,.ak2-faculty-reimagined .ak2-director-visual img {min-height:340px;height:340px;}.ak2-professor-card {grid-template-columns:1fr;}.ak2-professor-portrait {min-height:260px;max-height:360px;}.ak2-professor-portrait img {max-height:360px;}.ak2-professor-details {padding:28px;}.ak2-faculty-ending {margin-top:75px;padding-top:65px;}}
@media(max-width:380px){.ak2-room-hero h1 {font-size:58px;}.ak2-room-hero .ak2-section-kicker {letter-spacing:.15em;}.ak2-salon-chat-head h2 {font-size:28px;}.ak2-chat-messages .ak2-message {max-width:97%;}.ak2-house-director-description h2 {font-size:39px;}}
@media(prefers-reduced-motion:reduce){.ak2-communal * {scroll-behavior:auto!important;}}
