:root{--ip-ink:#201916;--ip-muted:#6f625b;--ip-red:#d6250d;--ip-orange:#f26500;--ip-gold:#ffbf39;--ip-cream:#fff8ee;--ip-soft:#fffdf9;--ip-line:#efcbb5;--ip-navy:#082d55;--ip-shadow:0 18px 45px rgba(68,38,22,.09)}
.ip-page{margin:0;color:var(--ip-ink);background:var(--ip-soft)}
.ip-page *{box-sizing:border-box}
.ip-page a{text-decoration:none}
.ip-container{width:min(1320px,calc(100% - 40px));margin-inline:auto}
.ip-skip{position:absolute;left:-9999px;top:8px;z-index:9999;padding:10px 14px;color:#fff;background:#111}
.ip-skip:focus{left:8px}
.ip-hero{position:relative;overflow:hidden;border-bottom:1px solid #f2d29c;background:linear-gradient(112deg,#ffd77c 0,#ffedc4 54%,#fff8ed 100%)}
.ip-hero:before,.ip-hero:after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.ip-hero:before{width:260px;height:260px;right:4%;top:-145px;border:40px solid rgba(255,255,255,.48)}
.ip-hero:after{width:170px;height:170px;left:-75px;bottom:-105px;background:rgba(255,255,255,.3)}
.ip-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 410px;gap:58px;align-items:center;min-height:330px;padding-block:46px}
.ip-eyebrow,.ip-kicker{display:block;color:#c92810;font-size:11px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.ip-eyebrow{width:max-content;padding:7px 12px;border:1px solid rgba(198,41,16,.2);border-radius:999px;background:rgba(255,255,255,.7)}
.ip-hero h1{max-width:820px;margin:14px 0 10px;font-size:clamp(39px,4vw,60px);line-height:1.03;letter-spacing:-.045em}
.ip-hero-copy>p{max-width:760px;margin:0;color:#634d41;font-size:18px;line-height:1.58}
.ip-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:22px}
.ip-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 19px;border:1px solid transparent;border-radius:999px;font-size:14px;font-weight:850;transition:transform .2s ease,box-shadow .2s ease}
.ip-btn:hover{transform:translateY(-2px)}
.ip-btn-primary{color:#fff;background:linear-gradient(100deg,var(--ip-orange),var(--ip-red));box-shadow:0 12px 25px rgba(208,47,12,.18)}
.ip-btn-light{color:#c72c11;border-color:#edc5ad;background:#fff}
.ip-hero-media{position:relative;overflow:hidden;height:235px;border:9px solid rgba(255,255,255,.72);border-radius:25px;background:#fff;box-shadow:0 22px 50px rgba(82,49,25,.16)}
.ip-hero-media img{width:100%;height:100%;object-fit:cover;display:block}
.ip-hero-media:after{content:"";position:absolute;inset:auto 0 0;height:34%;background:linear-gradient(transparent,rgba(31,22,17,.38))}
.ip-breadcrumb-wrap{margin-top:16px}
.ip-breadcrumb{display:flex;align-items:center;gap:0;margin:0;padding:12px 17px;border:1px solid #efd3c2;border-radius:999px;background:#fff;list-style:none;font-size:13px}
.ip-breadcrumb li+li:before{content:"/";padding:0 10px;color:#baa499}
.ip-breadcrumb a{color:#ce2c12;font-weight:750}
.ip-breadcrumb li:last-child{color:#75675f}
.ip-section{padding:68px 0}
.ip-section-soft{background:var(--ip-cream)}
.ip-section-dark{color:#fff;background:linear-gradient(115deg,#1d1714,#332117)}
.ip-section-dark .ip-kicker{color:#ffbd43}
.ip-section-dark .ip-section-head>p{color:#d9c9c0}
.ip-section-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:28px}
.ip-section-head>div{max-width:810px}
.ip-section-head>p{max-width:470px;margin:0;color:var(--ip-muted);line-height:1.65}
.ip-section h2,.ip-section-head h2,.ip-final h2{margin:8px 0 0;font-size:clamp(30px,3vw,45px);line-height:1.08;letter-spacing:-.035em}
.ip-quick{display:grid;grid-template-columns:.72fr 1.28fr;gap:42px;align-items:center;padding:50px 0 34px}
.ip-quick-copy{padding:27px 30px;border:1px solid var(--ip-line);border-left:6px solid var(--ip-orange);border-radius:22px;background:linear-gradient(120deg,#fff7e8,#fff)}
.ip-quick-copy>span{display:block;margin-bottom:7px;color:#c92710;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.ip-quick-copy p{margin:0;color:#4e4038;font-size:16px;line-height:1.72}
.ip-feature-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:24px}
.ip-feature{display:grid;grid-template-columns:43px 1fr;gap:12px;align-items:center;padding:15px;border:1px solid #edcbb7;border-radius:16px;background:#fff}
.ip-feature-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;color:#fff;background:linear-gradient(145deg,var(--ip-orange),var(--ip-red));font-size:18px;font-weight:900}
.ip-feature strong{display:block;font-size:14px}
.ip-feature small{display:block;margin-top:2px;color:var(--ip-muted);font-size:11px;line-height:1.35}
.ip-final{padding:58px 0;color:#fff;background:linear-gradient(100deg,#f26700,#d7190b)}
.ip-final-grid{display:grid;grid-template-columns:1fr auto;gap:42px;align-items:center}
.ip-final .ip-kicker{color:#fff0c8}
.ip-final p{margin:10px 0 0;color:#fff0e8}
.ip-final-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px}
.ip-final-actions a{display:inline-flex;align-items:center;min-height:45px;padding:10px 17px;border:1px solid rgba(255,255,255,.65);border-radius:999px;color:#fff;font-size:13px;font-weight:850}
.ip-final-actions a:first-child{color:#ce2b10;border-color:#fff;background:#fff}
.ip-page a:focus-visible,.ip-page button:focus-visible,.ip-page summary:focus-visible{outline:3px solid #1567d7;outline-offset:3px}

/* Director message */
.director-hero .ip-hero-media img{object-position:center 25%}
.director-layout{display:grid;grid-template-columns:350px minmax(0,1fr);gap:34px;align-items:start}
.director-profile{position:sticky;top:22px;overflow:hidden;border:1px solid #eec7b0;border-radius:25px;background:#fff;box-shadow:var(--ip-shadow)}
.director-profile img{width:100%;aspect-ratio:1/1.05;object-fit:cover;object-position:center top;display:block}
.director-profile-copy{padding:22px}
.director-profile-copy h2{margin:0;font-size:24px}
.director-profile-copy p{margin:5px 0 0;color:var(--ip-muted);font-size:13px;line-height:1.55}
.director-facts{display:grid;gap:8px;margin-top:18px}
.director-facts div{display:grid;grid-template-columns:84px 1fr;gap:9px;padding:10px 11px;border-radius:12px;background:#fff7ee}
.director-facts strong{color:#cf2f12;font-size:13px}
.director-facts span{color:#5f5048;font-size:12px;line-height:1.4}
.director-letter{padding:38px 42px;border:1px solid #edcdbb;border-radius:27px;background:#fff;box-shadow:var(--ip-shadow)}
.director-letter>span{display:block;color:#c62a11;font-family:Georgia,serif;font-size:23px;font-weight:700}
.director-letter p{margin:17px 0;color:#4f433d;font-size:16px;line-height:1.82}
.director-letter a{color:#ca2c12;font-weight:750}
.director-pullquote{margin:31px 0 24px;padding:26px 29px;border-left:5px solid var(--ip-orange);border-radius:0 20px 20px 0;color:#fff;background:linear-gradient(120deg,var(--ip-navy),#0b4f85)}
.director-pullquote p{margin:0;color:#fff;font-family:Georgia,serif;font-size:20px;line-height:1.55}
.director-signoff{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:23px;border-top:1px solid #efded3}
.director-signoff p{margin:0;font-size:14px;line-height:1.5}
.director-signoff strong{display:block;color:#c72c11;font-size:18px}
.director-signoff span{display:block;color:var(--ip-muted)}

/* Galleries */
.gallery-hero .ip-hero-media{height:245px}
.gallery-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.gallery-nav a{padding:9px 13px;border:1px solid #eecab5;border-radius:999px;color:#6b5041;background:#fff;font-size:12px;font-weight:800}
.gallery-nav a:hover{color:#fff;border-color:#dc300e;background:#dc300e}
.gallery-block+.gallery-block{margin-top:55px}
.gallery-title-row{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:19px}
.gallery-title-row h2{margin:0;font-size:clamp(26px,2.5vw,37px)}
.gallery-title-row p{max-width:480px;margin:0;color:var(--ip-muted);font-size:14px;line-height:1.55}
.ip-media-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ip-media-grid.ip-media-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ip-media-card{overflow:hidden;border:1px solid #ebc8b4;border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(60,35,22,.06)}
.ip-media-card button{width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;text-align:left}
.ip-media-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .3s ease}
.ip-media-card button:hover img{transform:scale(1.035)}
.ip-media-card figcaption{padding:12px 13px;color:#4c4039;font-size:12px;font-weight:750;line-height:1.45}
.ip-media-card figcaption span{display:block;margin-top:3px;color:#9b7763;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.ip-media-card.ip-portrait img{aspect-ratio:4/5;object-position:center top}
.ip-media-card.ip-wide{grid-column:span 2}
.ip-media-card.ip-wide img{aspect-ratio:16/9}
.gallery-year{scroll-margin-top:24px}
.gallery-year+.gallery-year{margin-top:38px;padding-top:38px;border-top:1px solid #efdbcf}
.gallery-year-head{display:flex;align-items:center;gap:13px;margin-bottom:17px}
.gallery-year-head span{display:grid;place-items:center;min-width:66px;height:38px;padding:0 12px;border-radius:12px;color:#fff;background:linear-gradient(100deg,var(--ip-orange),var(--ip-red));font-size:13px;font-weight:900}
.gallery-year-head h3{margin:0;font-size:22px}

/* Hostel */
.hostel-hero .ip-hero-media img{object-position:center}
.hostel-overview{display:grid;grid-template-columns:minmax(0,1.25fr) .75fr;gap:23px}
.hostel-story,.hostel-cost{padding:30px;border:1px solid var(--ip-line);border-radius:23px;background:#fff;box-shadow:var(--ip-shadow)}
.hostel-story p{margin:0;color:#51443d;font-size:15px;line-height:1.75}
.hostel-story p+p{margin-top:15px}
.hostel-cost{color:#fff;border-color:#173f64;background:linear-gradient(145deg,#082d55,#0b507e)}
.hostel-cost .ip-kicker{color:#ffca60}
.hostel-price{display:block;margin:12px 0 4px;font-size:36px;font-weight:900;letter-spacing:-.04em}
.hostel-cost p{margin:0;color:#d8e7f5;font-size:13px;line-height:1.55}
.hostel-cost ul{display:grid;gap:9px;margin:20px 0 0;padding:0;list-style:none}
.hostel-cost li{position:relative;padding-left:22px;color:#edf5fc;font-size:13px}
.hostel-cost li:before{content:"\2713";position:absolute;left:0;color:#ffbd3a;font-weight:900}
.hostel-note{margin-top:18px;padding:15px 17px;border:1px solid #f0c8ad;border-radius:14px;color:#654b3e;background:#fff6e8;font-size:13px;line-height:1.58}
.hostel-note strong{color:#c92d11}

/* Library */
.library-hero .ip-hero-media img{object-position:center}
.library-benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.library-benefit{padding:23px;border:1px solid #ecc9b5;border-radius:20px;background:#fff;box-shadow:0 12px 30px rgba(66,38,22,.06)}
.library-benefit>span{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;color:#fff;background:linear-gradient(145deg,var(--ip-orange),var(--ip-red));font-size:20px;font-weight:900}
.library-benefit h3{margin:17px 0 7px;font-size:19px}
.library-benefit p{margin:0;color:var(--ip-muted);font-size:13px;line-height:1.58}
.library-study{display:grid;grid-template-columns:.9fr 1.1fr;gap:36px;align-items:center}
.library-study img{width:100%;height:350px;object-fit:cover;border:8px solid #fff;border-radius:25px;box-shadow:var(--ip-shadow)}
.library-study-copy p{margin:15px 0 0;color:#51443d;line-height:1.75}
.library-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:21px}
.library-links a{padding:10px 14px;border:1px solid #edc5ae;border-radius:999px;color:#c82d11;background:#fff;font-size:12px;font-weight:800}

/* Lightweight shared image viewer */
.media-lightbox{position:fixed;inset:0;z-index:10000;display:none;place-items:center;padding:22px;background:rgba(12,9,8,.91)}
.media-lightbox.is-open{display:grid}
.media-lightbox-dialog{position:relative;width:min(1080px,100%);max-height:calc(100vh - 44px);display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;border-radius:19px;background:#16110f;box-shadow:0 28px 80px rgba(0,0,0,.5)}
.media-lightbox-image-wrap{display:grid;place-items:center;min-height:240px;overflow:hidden}
.media-lightbox img{max-width:100%;max-height:calc(100vh - 125px);object-fit:contain;display:block}
.media-lightbox-caption{padding:13px 75px;color:#f9eee8;text-align:center;font-size:13px}
.media-lightbox-close,.media-lightbox-prev,.media-lightbox-next{position:absolute;z-index:2;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);border-radius:50%;color:#fff;background:rgba(23,16,13,.72);cursor:pointer}
.media-lightbox-close{width:40px;height:40px;right:12px;top:12px;font-size:24px}
.media-lightbox-prev,.media-lightbox-next{width:45px;height:45px;top:50%;transform:translateY(-50%);font-size:23px}
.media-lightbox-prev{left:12px}.media-lightbox-next{right:12px}
.media-lightbox button:hover{background:#d52a0e}
body.lightbox-lock{overflow:hidden}

@media(max-width:1100px){.ip-hero-grid{grid-template-columns:minmax(0,1fr) 360px;gap:34px}.ip-feature-strip,.library-benefits{grid-template-columns:1fr 1fr}.ip-media-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.director-layout{grid-template-columns:300px minmax(0,1fr)}}
@media(max-width:850px){.ip-container{width:min(100% - 28px,720px)}.ip-hero-grid,.ip-quick,.ip-final-grid,.director-layout,.hostel-overview,.library-study{grid-template-columns:1fr}.ip-hero-grid{padding-block:40px}.ip-hero-media{height:270px}.ip-section{padding:55px 0}.ip-section-head{display:grid;gap:13px}.ip-final-actions{justify-content:flex-start}.director-profile{position:static;display:grid;grid-template-columns:245px 1fr}.director-profile img{height:100%;aspect-ratio:auto}.ip-media-grid,.ip-media-grid.ip-media-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.library-study img{height:320px}}
@media(max-width:620px){.ip-container{width:calc(100% - 22px)}.ip-hero-grid{min-height:0;padding-block:32px}.ip-hero h1{font-size:37px}.ip-hero-copy>p{font-size:16px}.ip-actions{display:grid}.ip-btn{width:100%}.ip-hero-media{height:225px;border-width:6px;border-radius:20px}.ip-breadcrumb-wrap{margin-top:10px}.ip-breadcrumb{border-radius:15px}.ip-quick{gap:18px;padding-top:38px}.ip-quick-copy{padding:22px}.ip-section h2,.ip-section-head h2,.ip-final h2{font-size:31px}.ip-feature-strip,.library-benefits{grid-template-columns:1fr}.ip-final-actions{display:grid}.ip-final-actions a{justify-content:center}.director-profile{display:block}.director-profile img{aspect-ratio:1/1.04}.director-letter{padding:26px 21px;border-radius:21px}.director-letter p{font-size:15px;line-height:1.75}.director-pullquote{padding:22px}.director-pullquote p{font-size:18px}.director-signoff{align-items:flex-start;flex-direction:column}.gallery-title-row{align-items:flex-start;flex-direction:column}.ip-media-grid,.ip-media-grid.ip-media-grid-3{grid-template-columns:1fr 1fr;gap:9px}.ip-media-card{border-radius:13px}.ip-media-card figcaption{padding:9px;font-size:11px}.ip-media-card.ip-wide{grid-column:1/-1}.hostel-story,.hostel-cost{padding:23px}.library-study img{height:235px}.media-lightbox{padding:10px}.media-lightbox-caption{padding:11px 56px}}
@media(max-width:430px){.ip-media-grid,.ip-media-grid.ip-media-grid-3{grid-template-columns:1fr}.ip-media-card.ip-wide{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.ip-page *{scroll-behavior:auto!important;transition:none!important}}
