@font-face{font-family:"Barlow Condensed";src:url("assets/fonts/barlow-condensed-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("assets/fonts/barlow-condensed-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("assets/fonts/ibm-plex-mono-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("assets/fonts/ibm-plex-mono-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

:root{--paper:#e8e8e4;--paper-deep:#d5d6d3;--ink:#111315;--muted:#656a6d;--line:#b9bcbd;--blue:#164ee8;--white:#f7f7f4;--header:78px;--aside:258px;--ease:cubic-bezier(.2,.78,.2,1)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}
button,a{font:inherit}
button{color:inherit}
img{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.skip-link{position:fixed;z-index:1000;top:10px;left:10px;padding:12px 16px;background:var(--ink);color:#fff;transform:translateY(-150%)}
.skip-link:focus{transform:none}
.site-header{position:fixed;z-index:50;inset:0 0 auto 0;height:var(--header);display:grid;grid-template-columns:var(--aside) 1fr auto;align-items:center;border-bottom:1px solid var(--line);background:rgba(232,232,228,.94);backdrop-filter:blur(14px)}
.wordmark{height:100%;display:flex;flex-direction:column;justify-content:center;padding:0 28px;border-right:1px solid var(--line);font:600 23px/.76 "Barlow Condensed",sans-serif;letter-spacing:.04em;text-transform:uppercase;text-decoration:none}
.header-label,.header-contact{margin:0;font:500 11px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.09em}
.header-label{padding-left:32px;color:#505557}
.header-contact{height:100%;display:flex;align-items:center;gap:24px;padding:0 30px;border-left:1px solid var(--line);text-decoration:none;transition:background .2s,color .2s}
.header-contact:hover{background:var(--blue);color:#fff}
.site-grid{display:grid;grid-template-columns:var(--aside) minmax(0,1fr);padding-top:var(--header)}
.showroom-map{position:sticky;top:var(--header);height:calc(100vh - var(--header));padding:26px 20px;border-right:1px solid var(--line);background:var(--paper);z-index:20}
.map-heading{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font:400 9px/1.2 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em}
.progress-track{height:2px;margin:16px 0 24px;background:var(--line);overflow:hidden}
.progress-track span{display:block;width:10%;height:100%;background:var(--blue);transition:width .4s var(--ease)}
.map-list{display:flex;flex-direction:column}
.map-link{position:relative;display:grid;grid-template-columns:27px 1fr;gap:8px;padding:10px 4px 10px 9px;border-left:1px solid transparent;text-decoration:none;color:#565b5d;font:500 13px/1.05 "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.02em;transition:color .2s,padding .2s,border .2s}
.map-link small{font:400 8px/1.3 "IBM Plex Mono",monospace}
.map-link:hover,.map-link.active{color:var(--ink);padding-left:14px;border-color:var(--blue)}
.map-link.active::after{content:"";position:absolute;right:2px;top:50%;width:5px;height:5px;background:var(--blue);border-radius:50%;transform:translateY(-50%)}
main{min-width:0}
.intro{min-height:calc(100vh - var(--header));padding:clamp(70px,11vw,150px) clamp(24px,7vw,110px) 60px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);align-content:center;gap:32px;border-bottom:1px solid var(--line);background:linear-gradient(145deg,var(--paper) 0 58%,#dcddda 58% 100%)}
.eyebrow{margin:0 0 22px;color:var(--blue);font:500 10px/1.4 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.12em}
.intro h1{grid-column:1/-1;margin:0;font:600 clamp(76px,13vw,180px)/.72 "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:-.045em}
.intro-copy{margin:16px 0 0;max-width:500px;color:#3d4245;font-size:clamp(16px,1.4vw,21px);line-height:1.5}
.enter-link{align-self:end;justify-self:end;font:500 10px/1.3 "IBM Plex Mono",monospace;text-transform:uppercase;text-underline-offset:6px}
.hall{position:relative;min-height:100vh;padding:clamp(64px,8vw,120px) clamp(22px,6vw,92px);border-bottom:1px solid var(--line);isolation:isolate;overflow:hidden}
.hall:nth-child(even){background:#e0e1de}
.hall-heading{position:relative;display:grid;grid-template-columns:70px minmax(0,1fr) minmax(230px,.45fr);align-items:end;gap:22px;margin-bottom:44px;z-index:2}
.hall-number{align-self:start;padding-top:8px;font:400 10px/1.2 "IBM Plex Mono",monospace;color:var(--blue)}
.title-lockup{position:relative;min-width:0;padding-left:clamp(42px,6vw,86px)}
.brand-logo{position:absolute;z-index:-1;left:0;top:50%;width:clamp(92px,10vw,150px);height:clamp(84px,8vw,128px);object-fit:contain;filter:grayscale(1) brightness(0);opacity:.11;transform:translate(-12%,-53%) rotate(-13deg)}
.brand-logo[src$="pagani.png"]{filter:grayscale(1) contrast(1.15);opacity:.2}
.manufacturer{margin:0 0 2px;font:500 13px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.15em;color:#4c5153}
.hall h2{margin:0;max-width:720px;font:600 clamp(60px,8.2vw,126px)/.78 "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:-.035em;text-wrap:balance}
.hall-description{margin:0 0 5px;max-width:390px;color:#363b3d;font-size:15px;line-height:1.5}
.hall-meta{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:16px;font:400 9px/1.3 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.07em;color:#505557}
.hall-meta span+span::before{content:"·";margin-right:20px;color:var(--blue)}
.gallery-workbench{position:relative;max-width:1320px;margin:0 auto}
.photo-wall{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));grid-template-rows:repeat(14,clamp(31px,4.35vw,62px));padding:38px 0 24px;isolation:isolate}
.wall-photo{position:relative;min-width:0;min-height:0;padding:0;border:0;background:transparent;cursor:zoom-in;isolation:isolate}
.wall-photo-main{grid-column:4/11;grid-row:2/10;z-index:3}
.wall-photo-side-a{grid-column:1/4;grid-row:8/14;z-index:5;transform:rotate(-1.8deg)}
.wall-photo-side-b{grid-column:11/15;grid-row:1/7;z-index:4;transform:rotate(1.5deg)}
.wall-photo-detail{grid-column:7/11;grid-row:11/15;z-index:6;transform:rotate(.6deg)}
.hall:nth-child(even) .wall-photo-main{grid-column:2/9;grid-row:2/10}
.hall:nth-child(even) .wall-photo-side-a{grid-column:10/14;grid-row:8/14;transform:rotate(1.7deg)}
.hall:nth-child(even) .wall-photo-side-b{grid-column:9/13;grid-row:1/6;transform:rotate(-1.2deg)}
.hall:nth-child(even) .wall-photo-detail{grid-column:5/10;grid-row:11/15;transform:rotate(-.7deg)}
.hall:nth-child(3n) .wall-photo-main{grid-column:6/13;grid-row:2/10}
.hall:nth-child(3n) .wall-photo-side-a{grid-column:2/6;grid-row:1/7}
.hall:nth-child(3n) .wall-photo-side-b{grid-column:11/15;grid-row:9/15}
.hall:nth-child(3n) .wall-photo-detail{grid-column:4/9;grid-row:10/14}
.wall-photo-surface,.peek-card{position:absolute;inset:0;display:block;overflow:hidden;background:#111;box-shadow:0 16px 42px rgba(18,21,22,.2)}
.wall-photo-surface{z-index:2;border:6px solid var(--white);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.wall-photo img{width:100%;height:100%;object-fit:cover;transition:transform .65s var(--ease),filter .3s}
.wall-photo:hover .wall-photo-surface img{transform:scale(1.018)}
.wall-photo:hover .wall-photo-surface{box-shadow:0 24px 58px rgba(18,21,22,.27)}
.wall-photo-index{position:absolute;z-index:3;right:10px;bottom:10px;display:grid;place-items:center;width:29px;height:29px;background:rgba(17,19,21,.84);color:#fff;font:400 8px/1 "IBM Plex Mono",monospace}
.peek-card{z-index:1;inset:3%;border:6px solid var(--white);opacity:0;pointer-events:none;transform:translate(0,0) rotate(0);transition:transform .48s var(--ease),opacity .25s}
.peek-card img{filter:saturate(.92)}
@media(hover:hover) and (pointer:fine){.wall-photo-main:hover .peek-card,.wall-photo-main:focus-visible .peek-card{opacity:1}.wall-photo-main:hover .peek-card-left,.wall-photo-main:focus-visible .peek-card-left{transform:translate(-15%,-2%) rotate(-7deg)}.wall-photo-main:hover .peek-card-right,.wall-photo-main:focus-visible .peek-card-right{transform:translate(15%,-2%) rotate(7deg)}.wall-photo-main:hover .wall-photo-surface,.wall-photo-main:focus-visible .wall-photo-surface{transform:translateY(-7px) scale(1.01)}}
.hall-actions{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:2px clamp(8px,2vw,28px) 0}
.wall-instruction{max-width:480px;margin:0;color:#666b6d;font:400 8px/1.5 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.05em}
.text-button{min-height:46px;padding:13px 18px;border:1px solid var(--ink);background:transparent;font:500 9px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:background .2s,color .2s,border .2s}
.text-button.primary{background:var(--ink);color:#fff}
.text-button:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.contact-room{min-height:100vh;display:grid;grid-template-columns:minmax(0,.92fr) minmax(320px,1.08fr);background:var(--ink);color:var(--white)}
.contact-copy{padding:clamp(70px,9vw,140px) clamp(26px,6vw,90px);display:flex;flex-direction:column;justify-content:center}
.contact-copy h2{margin:0 0 38px;font:600 clamp(90px,13vw,180px)/.72 "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:-.04em}
.contact-copy>p:not(.eyebrow,.affiliation,.rights-note){max-width:550px;margin:0 0 20px;font-size:clamp(17px,1.5vw,22px);line-height:1.5;color:#c9ccca}
.affiliation{margin:0;color:#909594;font:400 10px/1.4 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em}
.contact-links{display:grid;grid-template-columns:1fr 1fr;margin-top:60px;border-top:1px solid #3a3d3e;border-bottom:1px solid #3a3d3e}
.contact-links a{display:flex;min-height:110px;flex-direction:column;justify-content:space-between;padding:20px;text-decoration:none;transition:background .2s}
.contact-links a+a{border-left:1px solid #3a3d3e}
.contact-links a:hover{background:var(--blue)}
.contact-links span{font:400 9px/1.3 "IBM Plex Mono",monospace;text-transform:uppercase;color:#999e9c}
.contact-links strong{font:500 25px/1 "Barlow Condensed",sans-serif;text-transform:uppercase}
.rights-note{max-width:590px;margin:34px 0 0;color:#919795;font:400 8px/1.5 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.03em}
.contact-copy .eyebrow{color:#86a0ff}
.contact-image{position:relative;margin:0;min-height:100vh;overflow:hidden}
.contact-image{background:#202426}
.contact-image>img,.contact-image>noscript img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.06)}
.contact-image::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,19,21,.25),transparent 35%)}
.contact-image figcaption{position:absolute;z-index:2;right:20px;bottom:20px;color:#fff;font:400 8px/1 "IBM Plex Mono",monospace;text-transform:uppercase}
.lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#0d0f10;color:#fff;overflow:hidden}
.lightbox[open]{display:block}
.lightbox::backdrop{background:rgba(0,0,0,.92)}
.lightbox-shell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) 105px}
.lightbox-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:16px 24px;border-bottom:1px solid #303334}
.lightbox-header p{margin:0;color:#898e8d;font:400 8px/1.4 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em}
.lightbox-header h2{margin:2px 0 0;font:500 27px/1 "Barlow Condensed",sans-serif;text-transform:uppercase}
.lightbox-counter{justify-self:center;color:#fff!important}
.icon-button{justify-self:end;min-height:44px;padding:9px 0 9px 15px;border:0;background:none;color:#fff;font:400 9px/1 "IBM Plex Mono",monospace;text-transform:uppercase;cursor:pointer}
.icon-button span{font-size:25px;vertical-align:-2px;margin-left:8px}
.lightbox-stage{position:relative;min-height:0;display:grid;grid-template-columns:70px minmax(0,1fr) 70px;align-items:center;touch-action:pan-y}
.lightbox-stage figure{height:100%;min-height:0;margin:0;display:grid;place-items:center;padding:18px}
.lightbox-stage img{max-width:100%;max-height:calc(100dvh - 210px);width:auto;height:auto;object-fit:contain}
.lightbox-arrow{height:100%;border:0;background:transparent;color:#fff;font-size:28px;cursor:pointer;transition:background .2s}
.lightbox-arrow:hover{background:#181b1c}
.lightbox-thumbnails{display:flex;gap:8px;padding:12px 24px 18px;overflow-x:auto;scroll-snap-type:x mandatory;border-top:1px solid #303334}
.thumb-button{flex:0 0 58px;padding:0;border:1px solid transparent;background:#1b1e1f;scroll-snap-align:center;opacity:.55;cursor:pointer}
.thumb-button.active{border-color:#fff;opacity:1}
.thumb-button img{width:58px;height:72px;object-fit:cover}
.noscript{position:fixed;z-index:100;bottom:20px;left:20px;padding:12px;background:#fff;color:#111}
.error-page{min-height:100vh;background:var(--paper)}
.error-hall{min-height:100vh;padding:calc(var(--header) + clamp(42px,7vw,100px)) clamp(24px,6vw,90px) clamp(38px,6vw,80px);display:grid;grid-template-columns:minmax(300px,.78fr) minmax(420px,1.22fr);align-items:center;gap:clamp(42px,7vw,120px)}
.error-copy h1{margin:0;font:600 clamp(82px,11vw,168px)/.75 "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:-.045em}
.error-copy>p:not(.eyebrow){max-width:490px;margin:34px 0;color:#454a4c;font-size:18px;line-height:1.55}
.error-action{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;text-decoration:none}
.error-frame{position:relative;min-height:min(66vw,690px);overflow:hidden;border:10px solid var(--white);background:linear-gradient(138deg,#191c1e 0 49.7%,var(--blue) 50% 51%,#d9dad7 51.3%);box-shadow:0 26px 70px rgba(17,19,21,.22)}
.error-number{position:absolute;right:-.03em;top:-.15em;color:rgba(247,247,244,.95);font:600 clamp(170px,29vw,460px)/1 "Barlow Condensed",sans-serif;letter-spacing:-.08em}
.error-tape{position:absolute;left:-8%;top:53%;width:116%;padding:15px 0;background:var(--white);color:var(--ink);font:500 clamp(10px,1.15vw,16px)/1 "IBM Plex Mono",monospace;text-align:center;letter-spacing:.28em;transform:rotate(-8deg)}
.error-caption{position:absolute;right:20px;bottom:18px;color:#fff;font:400 8px/1.3 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em}

@media(max-width:1060px){
  :root{--aside:220px}.hall-heading{grid-template-columns:48px 1fr}.hall-copy{grid-column:2;margin-top:14px}.photo-wall{grid-template-rows:repeat(14,clamp(27px,4.8vw,50px))}
}
@media(max-width:760px){
  :root{--header:64px;--aside:0px}.site-header{grid-template-columns:112px 1fr auto}.wordmark{padding:0 16px;font-size:18px}.header-label{padding:0 12px;font-size:7px}.header-contact{padding:0 14px;font-size:8px;gap:7px}.site-grid{display:block}.showroom-map{position:sticky;top:var(--header);height:62px;padding:8px 0 0;border-right:0;border-bottom:1px solid var(--line);overflow:hidden}.map-heading,.progress-track{display:none}.map-list{height:53px;flex-direction:row;align-items:center;gap:2px;padding:0 12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.map-list::-webkit-scrollbar{display:none}.map-link{flex:0 0 auto;display:flex;align-items:center;min-height:44px;padding:11px 12px;border:0;border-bottom:2px solid transparent;scroll-snap-align:center;font-size:11px;white-space:nowrap}.map-link small{font-size:7px}.map-link:hover,.map-link.active{padding:11px 12px;border-color:var(--blue)}.map-link.active::after{display:none}.intro{min-height:calc(100svh - 126px);padding:70px 20px 38px;grid-template-columns:1fr;background:linear-gradient(155deg,var(--paper) 0 70%,#dcddda 70%)}.intro h1{font-size:clamp(62px,18vw,112px)}.intro-copy{font-size:16px}.enter-link{justify-self:start;margin-top:25px}.hall{min-height:auto;padding:70px 18px 80px}.hall-heading{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;margin-bottom:28px}.hall-number{font-size:8px}.title-lockup{padding-left:30px}.brand-logo{width:92px;height:80px;left:-5px}.manufacturer{font-size:9px}.hall h2{font-size:clamp(54px,17vw,82px);line-height:.82}.hall-copy{grid-column:1/-1;margin-top:18px}.hall-description{max-width:none;margin:0;font-size:15px;line-height:1.55;text-wrap:pretty}.hall-meta{margin-top:12px}.hall-meta span+span::before{margin-right:8px}.photo-wall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;gap:12px;padding:6px 0 18px}.wall-photo{position:relative;transform:none}.wall-photo-main{grid-column:1/-1;grid-row:auto;aspect-ratio:4/5;margin-bottom:3px}.wall-photo-side-a,.wall-photo-side-b{grid-column:auto;grid-row:auto;aspect-ratio:4/5}.wall-photo-detail{grid-column:1/-1;grid-row:auto;aspect-ratio:16/10}.wall-photo-surface{border-width:4px}.peek-card{display:none}.hall-actions{justify-content:stretch;margin:0;flex-wrap:wrap}.wall-instruction{display:none}.text-button{flex:1}.contact-room{grid-template-columns:1fr}.contact-copy{padding:80px 22px}.contact-copy h2{font-size:31vw}.contact-links{grid-template-columns:1fr}.contact-links a+a{border-left:0;border-top:1px solid #3a3d3e}.contact-image{min-height:70vh;order:-1}.lightbox-shell{grid-template-rows:auto minmax(0,1fr) 92px}.lightbox-header{grid-template-columns:1fr auto;padding:12px 14px}.lightbox-header h2{font-size:22px}.lightbox-counter{grid-column:1;justify-self:start;margin-top:4px!important}.icon-button{grid-column:2;grid-row:1/3}.lightbox-stage{grid-template-columns:48px minmax(0,1fr) 48px}.lightbox-stage figure{padding:8px}.lightbox-stage img{max-height:calc(100dvh - 185px)}.lightbox-thumbnails{padding:10px 12px}.thumb-button,.thumb-button img{width:52px}.thumb-button{flex-basis:52px}.thumb-button img{height:64px}
}
@media(max-width:760px){
  .hall:nth-child(n) .wall-photo-main{grid-column:1/-1;grid-row:auto}
  .hall:nth-child(n) .wall-photo-side-a,.hall:nth-child(n) .wall-photo-side-b{grid-column:auto;grid-row:auto;transform:none}
  .hall:nth-child(n) .wall-photo-detail{grid-column:1/-1;grid-row:auto;transform:none}
  .error-header .header-label{display:block}.error-hall{min-height:100svh;padding:calc(var(--header) + 44px) 18px 38px;grid-template-columns:1fr;align-content:start;gap:42px}.error-copy h1{font-size:24vw}.error-copy>p:not(.eyebrow){margin:24px 0;font-size:16px}.error-frame{min-height:72vw;border-width:5px}.error-number{font-size:48vw}.error-tape{padding:10px 0;font-size:7px}.error-caption{right:10px;bottom:10px;font-size:6px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
