/* Portal layout; shared palette and photograph overlay are in shared/portal-theme.css. */
[hidden]{display:none!important}
.portal-shell{display:flex;flex-direction:column;min-height:100dvh;width:100%;max-width:480px;margin:auto}
.portal-topbar{height:78px;flex:none;justify-content:space-between;gap:16px;margin:0 26px;padding:0;border-bottom:1px solid var(--portal-line);background:none}
.portal-brand-link,.portal-brand-link:visited{color:var(--text);text-decoration:none}
.portal-menu-trigger,.portal-menu-close{width:auto;min-height:44px;padding:8px 0;border:0;border-radius: var(--radius-flat);background:none;color:var(--text);font-size:14px;font-weight:500;letter-spacing:.025em}
.portal-menu-trigger{display:flex;align-items:center;gap:8px}
.portal-menu-icon{display:inline-block;width:18px;height:11px;position:relative;border-top:1px solid currentColor;border-bottom:1px solid currentColor}
.portal-menu-icon::after{content:'';position:absolute;top:4px;left:0;right:0;border-top:1px solid currentColor}
#portal-main{padding:26px 26px 36px}
.portal-view{min-width:0}
.portal-view:focus{outline:none}
.portal-editorial-hero{display:grid;grid-template-columns:70px minmax(0,1fr);align-items:center;gap:26px;margin:0 0 26px}
 /* Source PNG remains intact: x=410..660/y=0..810 shows title without arcs or wordmark. */
.portal-poster-title{position:relative;width:66px;aspect-ratio:250/810;overflow:hidden;margin:0}
.portal-poster-title img{position:absolute;left:-164%;top:0;width:428%;height:auto;max-width:none;filter:var(--poster-filter)}
.portal-hero-copy{min-width:0;border-left:1px solid var(--portal-line);padding:24px 0 24px 23px}
.portal-event-date{margin:0 0 12px;font-size:13px;font-weight:400;letter-spacing:.025em;white-space:nowrap;font-variant-numeric:tabular-nums}
.portal-guide-title{margin:0;font-size:24px;font-weight:400;line-height:1.5;letter-spacing:.12em}
.portal-hero-accent{display:block;width:22px;height:2px;background:var(--primary);margin-top:18px}
.event-portal .primary,.event-portal .secondary{min-height:56px;padding:15px 19px;border-radius: var(--radius);font-size:17px;font-weight:600;letter-spacing:.025em;line-height:1.5}
.event-portal .primary{background:#f97316;color:#171a15}
.portal-lookup-link{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:0;text-align:left}
.portal-lookup-link>span,.portal-quick-links span{font-size:24px;line-height:1;font-weight:300}
.portal-quick-links{display:grid;margin-top:16px}
.portal-quick-links a{display:flex;align-items:center;justify-content:space-between;min-height:59px;border-bottom:1px solid var(--portal-line);color:var(--text);font-size:17px;font-weight:500;letter-spacing:.035em;text-decoration:none}
.event-portal .help-link{display:inline-flex;align-items:center;align-self:flex-start;min-height:44px;margin-top:13px;padding:0;font-size:14px;font-weight:500;text-align:left;text-shadow:none;text-underline-offset:4px}
.portal-registration{display:flex;flex-direction:column;gap:0}
.portal-registration .panel{padding:0;border:0;border-radius: var(--radius-flat);background:none}
.event-portal .screen-label{font-size:29px;font-weight:600;line-height:1.5;letter-spacing:.075em;margin:0 0 8px}
.portal-page-subtitle{font-size:15px;line-height:1.7;margin:0;color:var(--text);letter-spacing:.015em}
.event-portal #lookup-form{margin-top:30px}
.event-portal label{margin:0 0 10px;font-size:16px;font-weight:500;letter-spacing:.06em}
.event-portal input{min-height:55px;padding:14px 15px;border-radius: var(--radius);background:var(--portal-field);font-size:17px;font-weight:400}
.event-portal #plate{margin-bottom:22px}
.event-portal #lookup-form .primary{margin-top:27px}
.portal-registration .qr-box{margin:0 0 20px;border-radius:var(--radius)}
.portal-registration .qr-surprise{background:var(--panel-bg);border-radius:var(--radius)}
.portal-registration .secondary{background:var(--panel-bg)}
.event-portal .link-button{min-height:44px;color:var(--text);font-weight:500;text-decoration:underline;text-underline-offset:4px}
.portal-menu{position:fixed;inset:0 0 0 auto;margin:0;width:min(86vw,365px);max-width:none;height:100dvh;max-height:none;padding:0 26px;border:0;border-left:1px solid var(--portal-line);background:var(--chrome-bg);color:var(--text)}
.portal-menu::backdrop{background:rgba(5,8,5,.53)}
.portal-menu-heading{display:flex;align-items:center;justify-content:space-between;height:78px;gap:10px}
.portal-menu-heading h2{margin:0;font-size:23px;font-weight:600;line-height:1}
.portal-menu-heading .event-letters{gap:4px}
.portal-menu nav{display:grid;margin:55px 0 0}
.portal-menu nav a{display:flex;align-items:center;min-height:78px;border-bottom:1px solid var(--portal-line);color:var(--text);font-size:19px;font-weight:500;letter-spacing:.04em;text-decoration:none;position:relative}
.portal-menu nav a[aria-current="page"]::after{content:'';position:absolute;left:0;bottom:-1px;width:76px;height:2px;background:var(--primary)}
.portal-image-content{margin-top:24px}
.portal-content-figure{margin:18px 0 0;min-width:0}
.portal-content-figure a{display:block}
.portal-content-image{display:block;width:100%;height:auto;border-radius:var(--radius)}
.portal-content-summary{white-space:pre-line;overflow-wrap:anywhere;font-size:15px;line-height:1.8;color:var(--text)}
#message:focus-visible{outline:2px solid var(--primary-2);outline-offset:3px}
.portal-content-figure figcaption{margin-top:10px;font-size:13px;line-height:1.7;color:var(--muted)}
.portal-empty{color:var(--muted);line-height:1.8}
.portal-image-content>.panel{display:grid;place-items:center;min-height:220px;text-align:center}
.portal-sponsors{display:grid;gap:20px;margin-top:24px}
.portal-sponsors .panel{margin:0;min-width:0}
.portal-sponsors h3{margin:0;font-size:20px;font-weight:600;line-height:1.5}
.portal-sponsors h4{margin:22px 0 8px;font-size:16px;font-weight:600;line-height:1.6}
.portal-sponsors h5{margin:0 0 8px;font-size:16px;font-weight:500;line-height:1.6}
.portal-sponsors p{font-size:15px;line-height:1.8;overflow-wrap:anywhere}
.portal-sponsor-item{padding-top:16px;margin-top:16px;border-top:1px solid var(--portal-line)}
@media(max-width:359px){.portal-topbar{margin-inline:21px}#portal-main{padding-inline:21px}.portal-editorial-hero{grid-template-columns:61px minmax(0,1fr);gap:19px}.portal-poster-title{width:59px}.portal-hero-copy{padding-left:17px}.portal-event-date{font-size:12px;letter-spacing:0}.portal-guide-title{font-size:21px}.portal-menu{padding-inline:23px}}
@media(hover:hover){.portal-quick-links a:hover,.portal-menu nav a:hover{text-decoration:underline;text-underline-offset:5px}.event-portal .primary:hover{background:#ff801f}}
