@font-face{font-family:Roboto;src:url('/codex/assets/roboto.woff2?v=27d7d8298c') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Forum;src:url('/codex/assets/forum.woff2?v=d8b0248f81') format('woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'Libre Franklin';src:url('/codex/assets/libre-franklin.woff2?v=ce9c7ffbc1') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
:root{--bg:#171a19;--panel:#202421;--ink:#f1ede3;--muted:#c5c4b9;--accent:#c3ae7f;--line:#51554d;--display:Roboto,'Helvetica Neue',Arial,sans-serif;--body:Roboto,'Helvetica Neue',Arial,sans-serif;--max:1480px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 var(--body);-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--display);font-weight:400}h1{font-size:clamp(60px,6.7vw,116px);line-height:.97;letter-spacing:-.055em}h2{font-size:clamp(42px,4.6vw,72px);line-height:1.08;letter-spacing:-.035em}h3{font-size:34px;line-height:1.15}.preview-stripe{text-align:center;background:#ede8dd;color:#34372f;padding:7px 12px;font-size:12px;letter-spacing:.025em}.preview-stripe span{padding:0 9px}.site-header{max-width:var(--max);margin:auto;padding:25px 5%;display:flex;align-items:center;justify-content:space-between;gap:30px}.wordmark img{width:132px;height:47px;object-fit:contain}nav{display:flex;gap:32px;align-items:center}nav>a{font-size:14px;min-height:44px;display:inline-flex;align-items:center}.button{border:1px solid var(--accent);color:var(--bg);background:var(--accent);display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:15px 23px;min-height:54px;font-size:14px;line-height:1.4;transition:background .2s,color .2s}.button:hover{background:var(--ink);border-color:var(--ink)}.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.button.secondary:hover{background:var(--panel)}.header-reserve{background:transparent;color:var(--ink);padding:12px 18px;min-height:46px}.header-reserve:hover{color:var(--bg)}.hero{position:relative;max-width:var(--max);margin:auto;padding:24px 5% 75px;display:grid;grid-template-columns:.88fr 1.12fr;gap:6%;align-items:center}.hero-copy{padding:48px 0 70px;position:relative;z-index:1}.location-note,.section-kicker{font-size:13px;color:var(--accent);margin-bottom:25px;letter-spacing:.035em}.hero-description{font-size:17px;color:var(--muted);max-width:350px;line-height:1.75;margin-top:29px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:36px}.text-link{display:inline-flex;align-items:center;gap:22px;border-bottom:1px solid var(--line);min-height:44px;padding:8px 0;font-size:14px}.text-link:hover{border-color:var(--accent)}.hero-footnote{font-size:12px;color:var(--muted);margin-top:60px}.hero-visual{min-width:0;position:relative}.hero-image-wrap{height:clamp(480px,48vw,720px);overflow:hidden}.hero-photo{height:100%;width:100%;object-fit:cover}.hero-visual figcaption{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:11px;margin-top:15px}.hero-accent{position:absolute;width:92px;height:92px;border:1px solid var(--accent);border-radius:50%;bottom:100px;left:39%;z-index:2;pointer-events:none}.hero-accent:after{content:'';position:absolute;inset:11px;border:1px solid var(--accent);border-radius:50%}.room-section,.atmosphere,.arrival{max-width:var(--max);margin:auto;padding:80px 5%}.room-section{border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:50px;margin-bottom:42px}.section-heading>p{max-width:340px;color:var(--muted);font-size:15px}.section-heading .section-kicker{margin-bottom:15px}summary{list-style:none;cursor:pointer;min-height:56px}summary::-webkit-details-marker{display:none}.room-disclosure{border:1px solid var(--line)}.room-disclosure>summary{padding:23px 28px;display:flex;align-items:center;justify-content:space-between;font-size:18px}.room-disclosure>summary>span:last-child{font-size:28px;line-height:1}.room-disclosure[open]>summary>span:last-child{transform:rotate(45deg)}.room-content{padding:0 28px 28px}.room-content.reveal{animation:room-enter .6s ease-out}.photo-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:26px;align-items:start}.photo-grid figure:nth-child(2){margin-top:110px}.photo-grid img{width:100%;height:440px;object-fit:cover}.photo-grid figure:nth-child(2) img{height:350px}.photo-grid figcaption{font-size:12px;color:var(--muted);padding-top:13px}.arrival{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:70px;padding-top:75px;padding-bottom:90px}.arrival-content{padding-top:35px}.address{font-size:23px;line-height:1.6;max-width:400px}.arrival details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:30px 0 20px}.arrival summary{display:flex;justify-content:space-between;align-items:center}.arrival details p{color:var(--muted);font-size:14px;padding-bottom:20px}.booking-fallback{max-width:900px;text-align:center;margin:0 auto;padding:0 25px 65px}.booking-fallback p{color:var(--muted);font-size:14px;margin-bottom:20px}footer{border-top:1px solid var(--line);max-width:var(--max);margin:auto;padding:35px 5%;display:flex;align-items:center;gap:30px;font-size:12px;color:var(--muted)}.footer-logo{width:100px;height:50px;object-fit:contain}footer>p:nth-of-type(2){margin-left:auto}.preview-controls{position:relative;max-width:260px;font-size:12px}.preview-controls summary{min-height:44px;display:flex;align-items:center}.preview-controls[open]{padding:12px;border:1px solid var(--line)}.preview-controls label{display:block}.preview-controls select{width:100%;margin:8px 0}.preview-controls p{font-size:11px}.skip{position:fixed;top:-100px;left:20px;background:var(--ink);color:var(--bg);padding:14px;z-index:50}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.fallback-room{width:100%}
/* The room explorer uses the supplied plan and measured pin coordinates. */
.map-explorer{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:22px}.map-caption{font-size:12px;color:var(--muted);margin-bottom:12px}.map-viewport{position:relative;background:#eceae5;overflow:hidden;min-height:260px;border:1px solid var(--line);isolation:isolate}.map-stage{position:relative;width:100%;transform-origin:0 0;transition:transform 550ms cubic-bezier(.2,.65,.25,1)}.map-stage.zooming{transition-duration:250ms}.plan-image{width:100%;height:auto}.map-pin{position:absolute;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:0;background:transparent;transform:translate(-50%,-50%);padding:0;z-index:1}.map-pin span{background:#202723;color:#fff;border:1px solid #fff;border-radius:50%;min-width:28px;height:28px;padding:0 5px;font:11px/26px var(--body);box-shadow:0 2px 8px #0004}.map-pin[aria-pressed=true]{z-index:3}.map-pin[aria-pressed=true] span{background:#f4de8d;color:#151515;box-shadow:0 0 0 3px #151515}.map-toolbar{display:flex;gap:8px;align-items:center;margin-top:12px}.icon-button{border:1px solid var(--line);background:transparent;color:var(--ink);height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;font-size:23px}.map-toolbar .reset-map{font-size:12px;padding:0 14px;margin-left:auto}.map-list{display:flex;flex-wrap:wrap;gap:7px;max-height:280px;overflow:auto;padding:4px;margin:12px -4px}.table-choice{min-height:44px;padding:9px 12px;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:12px}.table-choice[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--bg)}.map-sidebar h3{font-family:var(--body);font-size:16px}.map-sidebar>p{font-size:12px;color:var(--muted);margin-top:8px}.map-selected{font-size:13px!important;color:var(--ink)!important}.map-sidebar .button{width:100%;margin-top:15px;font-size:12px;padding:12px}.map-note{font-size:11px;color:var(--muted);margin-top:12px}
/* Shared reservation experience. */
dialog{padding:0;border:1px solid var(--line);background:var(--bg);color:var(--ink);width:min(1000px,calc(100% - 32px));max-height:calc(100dvh - 40px);overscroll-behavior:contain}dialog::backdrop{background:#050807d9;backdrop-filter:blur(5px)}.booking-shell{padding:32px 36px}.booking-header{display:flex;align-items:flex-start;justify-content:space-between;gap:30px}.booking-header .section-kicker{font-size:11px;margin-bottom:10px}.booking-header h2{font-size:42px}.steps{list-style:none;padding:20px 0;margin:18px 0 25px;display:flex;gap:40px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.steps li{display:flex;gap:10px}.steps li[aria-current=step]{color:var(--accent)}.steps li[aria-current=step] span{text-decoration:underline;text-underline-offset:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:25px}label{display:block;font-size:13px}input,select{display:block;width:100%;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:0;padding:12px;min-height:48px;margin-top:7px;color-scheme:dark}input[type=checkbox]{width:20px;min-height:20px;margin:0;accent-color:var(--accent)}.field-note{font-size:12px;color:var(--muted);margin-top:6px}.booking-intro{font-size:14px;color:var(--muted);margin:0 0 22px;max-width:620px}.booking-actions{display:flex;justify-content:space-between;gap:15px;margin-top:26px}.booking-actions .button:only-child{margin-left:auto}.booking-safety{border-top:1px solid var(--line);padding-top:18px;margin-top:25px;font-size:11px;color:var(--muted)}.status-message{padding:16px;border:1px solid var(--accent);background:var(--panel);font-size:14px;margin:18px 0}.status-message button{margin-top:12px}.form-error{color:#ffd4b7;font-size:13px;min-height:20px;margin-top:12px}.review-list{margin:0;border-top:1px solid var(--line)}.review-list>div{display:grid;grid-template-columns:150px 1fr;padding:13px 0;border-bottom:1px solid var(--line);gap:20px}.review-list dt{color:var(--muted);font-size:13px}.review-list dd{margin:0;font-size:15px}.review-consent{display:flex;align-items:flex-start;gap:12px;margin-top:24px;font-size:13px}.complete-state{padding:30px 0;text-align:center}.complete-symbol{width:60px;height:60px;border:1px solid var(--accent);border-radius:50%;display:grid;place-items:center;margin:0 auto 25px;font-size:24px;color:var(--accent)}.complete-state h3{font-size:42px;max-width:480px;margin:0 auto 20px}.complete-state p{color:var(--muted);font-size:14px}.complete-state .button{margin-top:25px}.sample-panel{padding:18px;border-left:2px solid var(--accent);background:var(--panel);margin-bottom:25px;font-size:14px}
/* Saint Yves: axial composition, champagne lines and a single architectural arch. */
html[data-venue="sy"],html[data-venue="saintyves"]{--bg:#121c2b;--panel:#1a273a;--ink:#f4f0e6;--muted:#c2c7ce;--accent:#d1bd92;--line:#485368;--display:Forum,Georgia,serif;--body:'Libre Franklin','Helvetica Neue',Arial,sans-serif}html[data-venue="sy"] .hero,html[data-venue="saintyves"] .hero{display:block;text-align:center;padding-top:10px;padding-bottom:65px}html[data-venue="sy"] .hero-copy,html[data-venue="saintyves"] .hero-copy{padding:30px 0 36px;max-width:1000px;margin:auto}html[data-venue="sy"] h1,html[data-venue="saintyves"] h1{font-size:clamp(52px,6.1vw,90px);line-height:1.13;letter-spacing:-.045em}html[data-venue="sy"] .hero-description,html[data-venue="saintyves"] .hero-description{max-width:520px;margin:20px auto 0}html[data-venue="sy"] .hero-actions,html[data-venue="saintyves"] .hero-actions{justify-content:center;margin-top:25px}html[data-venue="sy"] .hero-footnote,html[data-venue="saintyves"] .hero-footnote{display:none}html[data-venue="sy"] .hero-visual,html[data-venue="saintyves"] .hero-visual{max-width:1100px;margin:0 auto}html[data-venue="sy"] .hero-image-wrap,html[data-venue="saintyves"] .hero-image-wrap{height:500px;border-radius:45% 45% 0 0/62% 62% 0 0;border:1px solid var(--accent);padding:8px}html[data-venue="sy"] .hero-photo,html[data-venue="saintyves"] .hero-photo{border-radius:inherit}html[data-venue="sy"] .hero-accent,html[data-venue="saintyves"] .hero-accent{display:none}html[data-venue="sy"] .hero-visual figcaption,html[data-venue="saintyves"] .hero-visual figcaption{justify-content:center;gap:30px}html[data-venue="sy"] .photo-grid,html[data-venue="saintyves"] .photo-grid{grid-template-columns:1fr 1fr}html[data-venue="sy"] .photo-grid figure:nth-child(2),html[data-venue="saintyves"] .photo-grid figure:nth-child(2){margin-top:0}html[data-venue="sy"] .photo-grid img,html[data-venue="saintyves"] .photo-grid img{height:420px}html[data-venue="sy"] .room-content.reveal,html[data-venue="saintyves"] .room-content.reveal{animation:arch-enter .6s ease-out}
/* Strand: a wide photo band, graphic type and platinum/blue light. */
html[data-venue="st"],html[data-venue="strand"]{--bg:#13161a;--panel:#20262d;--ink:#e8ebef;--muted:#b9c2cf;--accent:#a9c8f6;--line:#48515e;--display:Roboto,'Arial Narrow',Arial,sans-serif;--body:Roboto,'Helvetica Neue',Arial,sans-serif}html[data-venue="st"] .hero,html[data-venue="strand"] .hero{display:flex;flex-direction:column;align-items:stretch;gap:0;padding-top:18px}html[data-venue="st"] .hero-copy,html[data-venue="strand"] .hero-copy{display:grid;grid-template-columns:1.3fr .7fr;column-gap:8%;padding:25px 0 40px}html[data-venue="st"] .hero-copy .location-note,html[data-venue="strand"] .hero-copy .location-note{grid-column:1/-1;margin-bottom:20px}html[data-venue="st"] h1,html[data-venue="strand"] h1{font-size:clamp(62px,7vw,110px);font-weight:500;line-height:1.02;letter-spacing:-.07em}html[data-venue="st"] .hero-description,html[data-venue="strand"] .hero-description{align-self:center;margin:0;font-size:15px;max-width:310px}html[data-venue="st"] .hero-actions,html[data-venue="strand"] .hero-actions{grid-column:1/-1;margin-top:28px}html[data-venue="st"] .hero-footnote,html[data-venue="strand"] .hero-footnote{display:none}html[data-venue="st"] .hero-image-wrap,html[data-venue="strand"] .hero-image-wrap{height:480px}html[data-venue="st"] .hero-accent,html[data-venue="strand"] .hero-accent{left:auto;right:8%;bottom:60px;width:130px;height:130px;border-color:var(--accent);border-radius:0;transform:rotate(45deg);opacity:.75}html[data-venue="st"] .hero-accent:after,html[data-venue="strand"] .hero-accent:after{border-radius:0}html[data-venue="st"] h2,html[data-venue="strand"] h2{font-weight:500;letter-spacing:-.055em}html[data-venue="st"] .map-pin[aria-pressed=true] span,html[data-venue="strand"] .map-pin[aria-pressed=true] span{background:#b9d4ff}html[data-venue="st"] .room-content.reveal,html[data-venue="strand"] .room-content.reveal{animation:light-enter .6s ease-out}
@keyframes room-enter{from{clip-path:inset(0 50%)}to{clip-path:inset(0)}}@keyframes arch-enter{from{clip-path:ellipse(35% 50% at 50% 50%)}to{clip-path:ellipse(100% 100% at 50% 50%)}}@keyframes light-enter{from{filter:brightness(.65)}to{filter:brightness(1)}}
@media(min-width:1500px){.site-header,.hero,.room-section,.atmosphere,.arrival,footer{padding-left:70px;padding-right:70px}}
@media(max-width:800px){.site-header{padding:20px 6%;gap:15px}.wordmark img{width:110px;height:40px}nav{gap:17px}nav>a{font-size:12px}.header-reserve{padding:10px 12px;gap:15px}.hero{padding:10px 6% 50px;gap:35px;grid-template-columns:1fr}.hero-copy{padding:25px 0 0}.hero h1{font-size:clamp(62px,11vw,90px);max-width:580px}.hero-description{font-size:15px;max-width:450px;margin-top:22px}.hero-actions{margin-top:25px}.hero-footnote{display:none}.location-note{margin-bottom:18px}.hero-image-wrap{height:490px}.hero-accent{left:auto;right:3%;bottom:80px;width:70px;height:70px}.room-section,.atmosphere,.arrival{padding:50px 6%}.section-heading{display:block;margin-bottom:28px}.section-heading>p{margin-top:20px;max-width:450px;font-size:14px}.photo-grid{gap:16px}.photo-grid img{height:310px}.photo-grid figure:nth-child(2){margin-top:70px}.photo-grid figure:nth-child(2) img{height:260px}.arrival{grid-template-columns:1fr 1fr;gap:35px}.arrival-content{padding:0}.address{font-size:17px}footer{padding:25px 6%;flex-wrap:wrap;gap:20px}footer>p:nth-of-type(2){margin-left:0}.preview-controls{flex-basis:100%}.map-explorer{grid-template-columns:1fr}.map-list{max-height:155px}.map-sidebar .button{width:auto}.room-content{padding:0 15px 20px}.room-disclosure>summary{padding:18px}.booking-shell{padding:25px}.booking-header h2{font-size:35px}.map-viewport{min-height:0}html[data-venue="sy"] .hero-image-wrap,html[data-venue="saintyves"] .hero-image-wrap{height:400px}html[data-venue="st"] .hero-copy,html[data-venue="strand"] .hero-copy{display:block}html[data-venue="st"] .hero-description,html[data-venue="strand"] .hero-description{margin-top:25px;max-width:430px}html[data-venue="st"] .hero-image-wrap,html[data-venue="strand"] .hero-image-wrap{height:400px}html[data-venue="st"] .hero-accent,html[data-venue="strand"] .hero-accent{width:80px;height:80px;right:10%;bottom:45px}}
@media(max-width:480px){.site-header nav>a:nth-child(2){display:none}.hero h1{font-size:64px}.hero-image-wrap{height:400px}.hero-actions{gap:20px}.hero-actions .button{padding:14px 17px;gap:20px}.hero-visual figcaption{font-size:10px}.section-heading h2,.arrival h2{font-size:42px}.photo-grid{grid-template-columns:1fr}.photo-grid figure:nth-child(2){margin-top:18px}.photo-grid img,.photo-grid figure:nth-child(2) img{height:320px}.arrival{grid-template-columns:1fr;gap:25px}.arrival h2 br{display:none}.address{font-size:21px}.booking-shell{padding:22px 18px}.booking-header h2{font-size:30px}.booking-header{gap:10px}.booking-header .section-kicker{max-width:220px}.steps{gap:25px;font-size:11px;padding:16px 0}.form-grid{grid-template-columns:1fr;gap:15px}.review-list>div{grid-template-columns:90px 1fr;gap:12px}.review-list dd{font-size:13px;overflow-wrap:anywhere}.booking-actions .button{padding:13px 16px;gap:12px;font-size:13px}.complete-state h3{font-size:34px}dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px)}html[data-venue="sy"] h1,html[data-venue="saintyves"] h1{font-size:49px}html[data-venue="sy"] .hero-image-wrap,html[data-venue="saintyves"] .hero-image-wrap{height:320px}html[data-venue="sy"] .photo-grid,html[data-venue="saintyves"] .photo-grid{grid-template-columns:1fr}html[data-venue="sy"] .photo-grid img,html[data-venue="saintyves"] .photo-grid img{height:320px}html[data-venue="st"] h1,html[data-venue="strand"] h1{font-size:59px}html[data-venue="st"] .hero-image-wrap,html[data-venue="strand"] .hero-image-wrap{height:330px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

button:disabled{opacity:.45;cursor:not-allowed}.map-pin:disabled{opacity:1}html[data-venue="st"] .location-note,html[data-venue="st"] .section-kicker{font-family:var(--body);font-size:11px;letter-spacing:.02em}

.photo-grid figure:only-child{grid-column:1/-1}.photo-grid figure:only-child img{height:clamp(300px,40vw,580px)}.room-disclosure[open]{background:var(--panel)}.room-disclosure[open] .map-sidebar{padding-top:5px}

[hidden]{display:none!important}
.hero-copy{animation:copy-arrive .85s cubic-bezier(.22,.65,.25,1) both}.hero-photo{animation:photo-arrive 1.6s cubic-bezier(.22,.65,.25,1) both}.hero-visual{animation:frame-arrive 1s ease-out both}.button span,.text-link span{transition:transform .25s ease}.button:hover span,.text-link:hover span{transform:translate(3px,-3px)}
@keyframes copy-arrive{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes photo-arrive{from{transform:scale(1.075)}to{transform:scale(1)}}
@keyframes frame-arrive{from{opacity:.25;clip-path:inset(0 0 10% 0)}to{opacity:1;clip-path:inset(0)}}
