@charset "UTF-8";
:root {
	--navy:#06152b;
	--ink:#13243d;
	--blue:#1264df;
	--cyan:#74d9ff;
	--muted:#607086;
	--line:#dbe3ed;
	--paper:#f5f8fc;
	--font:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif
}

* {
	box-sizing:border-box
}

html {
	scroll-behavior:smooth;
	scroll-padding-top:92px
}

body {
	margin:0;
	font-family:var(--font);
	color:var(--ink);
	background:#fff;
	word-break:keep-all;
	-webkit-text-size-adjust:100%;
	line-height:1.6
}

button,input,textarea,select {
	font:inherit
}

button,a,input,summary {
	-webkit-tap-highlight-color:transparent
}

button,a {
	touch-action:manipulation
}

button {
	cursor:pointer
}

a {
	color:inherit;
	text-decoration:none
}

img {
	max-width:100%;
	height:auto;
	display:block
}

button:focus-visible,a:focus-visible,summary:focus-visible {
	outline:3px solid #55bfff;
	outline-offset:5px
}

input:focus,textarea:focus {
	outline:2px solid var(--blue);
	outline-offset:2px
}

button:disabled {
	opacity:.55;
	cursor:wait
}

button {
	border:0
}

h1,h2,h3,p {
	margin:0
}

h1,h2,h3 {
	line-height:1.2
}

h2 {
	font-size:clamp(32px,4vw,46px);
	letter-spacing:-.055em
}

.sr-only,.skip-link:not(:focus) {
	position:absolute;
	width:1px;
	height:1px;
	padding:0;
	margin:-1px;
	overflow:hidden;
	clip:rect(0,0,0,0);
	white-space:nowrap;
	border:0
}

.skip-link:focus {
	position:fixed;
	top:0;
	left:0;
	background:#fff;
	padding:15px;
	z-index:100
}

.eyebrow {
	font-size:12px;
	font-weight:700;
	letter-spacing:.19em;
	color:var(--blue)
}

[hidden] {
	display:none!important
}

.site-header {
	height:88px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:0 max(5vw,24px);
	background:var(--navy);
	color:#fff;
	border-bottom:1px solid #ffffff21;
	position:relative;
	z-index:10
}

.brand img {
	width:113px;
	height:auto
}

.site-header nav {
	display:flex;
	gap:36px;
	font-size:14px;
	color:#d3ddec
}

.site-header nav a {
	transition:color .2s
}

.site-header nav a:hover {
	color:var(--cyan)
}

.header-cta {
	color:#fff;
	background:none;
	border:1px solid #ffffff57;
	padding:9px 20px;
	font-size:13px;
	display:flex;
	gap:24px;
	align-items:center
}

.header-cta:hover {
	background:#ffffff13
}

.hero {
	position:relative;
	overflow:hidden;
	min-height:830px;
	background:#030e20;
	color:#fff
}

.hero-image {
	position:absolute;
	inset:0;
	background:url('../images/hero-semiconductor.png') center right/cover no-repeat;
	animation:hero-image 1.8s ease-out both
}

.hero-shade {
	position:absolute;
	inset:0;
	background:linear-gradient(90deg,rgba(3,14,32,.87),rgba(3,14,32,.36) 52%,transparent 90%)
}

.hero-inner {
	position:relative;
	max-width:1280px;
	margin:auto;
	padding:92px 64px 115px
}

.hero .eyebrow {
	display:flex;
	align-items:center;
	gap:14px;
	color:#99cbe8;
	margin-bottom:27px
}

.hero .eyebrow span {
	height:1px;
	width:32px;
	background:#80b3d666
}

.hero h1 {
	font-size:clamp(52px,6.1vw,86px);
	font-weight:750;
	letter-spacing:-.065em;
	line-height:1.03;
	max-width:760px
}

.hero-brand {
	display:block;
	letter-spacing:.025em;
	font-size:17px;
	font-weight:600;
	margin-bottom:10px
}

.year {
	display:block;
	color:#fff
}

.hero-subtitle {
	font-size:clamp(22px,2.7vw,37px);
	color:#90d8fa;
	letter-spacing:-.035em;
	margin-top:16px
}

.hero-subtitle span {
	color:#5393c2;
	margin-right:6px
}

.invitation {
	margin-top:32px;
	font-size:17px;
	color:#d5dfec;
	line-height:1.85;
	letter-spacing:-.035em
}

.hero-event {
	margin:35px 0 30px;
	border-top:1px solid #ffffff29;
	padding-top:24px;
	max-width:470px
}

.hero-event p {
	display:flex;
	align-items:flex-start;
	gap:15px;
	margin:9px 0;
	line-height:1.5
}

.detail-label {
	font-size:10px;
	letter-spacing:.15em;
	color:#8da8c5;
	width:46px;
	flex:none;
	padding-top:5px
}

.hero-event strong {
	font-size:20px;
	font-weight:600;
	letter-spacing:-.025em
}

.hero-event strong small {
	font-size:15px
}

.event-time {
	font-size:16px;
	padding-top:3px;
	color:#bfd0e5
}

.hero-event .venue-name {
	font-size:18px
}

.venue-name span {
	font-size:15px;
	color:#b5c6da;
	font-weight:400
}

.button {
	min-height:54px;
	display:inline-flex;
	align-items:center;
	justify-content:space-between;
	gap:50px;
	padding:16px 24px;
	font-size:15px;
	font-weight:700;
	line-height:1.4;
	transition:background .2s,transform .2s
}

.button:hover {
	transform:translateY(-2px)
}

.button span {
	font-size:21px;
	line-height:1
}

.button-light {
	color:var(--navy);
	background:#fff
}

.button-light:hover {
	background:#dcedff
}

.button-primary {
	background:var(--blue);
	color:white
}

.button-primary:hover {
	background:#0755c5
}

.hero-bottom {
	position:absolute;
	bottom:0;
	left:0;
	right:0;
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:21px 5vw;
	border-top:1px solid #ffffff24;
	font-size:9px;
	letter-spacing:.14em;
	color:#8ba4c1
}

.hero-bottom a {
	display:flex;
	gap:24px;
	align-items:center;
	font-size:11px;
	letter-spacing:0;
	color:#c5d2e3
}

.hero-bottom a span {
	font-size:23px
}

.hero-index {
	width:130px;
	text-align:right
}

.hero-entrance {
	animation:entrance .85s ease both
}

.hero-entrance:nth-child(2) {
	animation-delay:.1s
}

.hero-entrance:nth-child(3) {
	animation-delay:.2s
}

.hero-entrance:nth-child(4) {
	animation-delay:.3s
}

.hero-entrance:nth-child(5) {
	animation-delay:.4s
}

.hero-entrance:nth-child(6) {
	animation-delay:.5s
}

.section {
	max-width:1280px;
	margin:auto;
	padding:100px 64px
}

.section-heading {
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:30px;
	margin-bottom:50px
}

.section-heading h2 {
	margin-top:14px
}

.section-heading>p {
	font-size:15px;
	color:var(--muted);
	line-height:1.7
}

.program-layout {
	display:grid;
	grid-template-columns:260px minmax(0,1fr);
	gap:62px
}

.program-date {
	border-top:2px solid var(--ink);
	padding-top:29px
}

.program-date>span {
	font-size:11px;
	font-weight:700;
	letter-spacing:.19em;
	color:var(--blue)
}

.program-date>strong {
	display:block;
	font-size:108px;
	line-height:1.14;
	font-weight:600;
	letter-spacing:-.075em
}

.program-date>strong span {
	font-size:15px;
	letter-spacing:.03em;
	display:inline-block;
	transform:rotate(-90deg);
	margin-left:7px;
	color:#78869c
}

.program-date p {
	font-size:14px;
	line-height:1.9;
	margin-top:12px
}

.date-line {
	width:30px;
	height:1px;
	background:#b2bfce;
	margin:25px 0
}

.program-date .program-place {
	color:var(--muted);
	font-size:13px
}

.schedule {
	border-collapse:collapse;
	width:100%;
	text-align:left;
	border-top:2px solid var(--ink)
}

.schedule thead th {
	font-size:13px;
	padding:18px 22px;
	color:#53647b;
	border-bottom:1px solid var(--line);
	font-weight:500
}

.schedule thead span {
	font-size:9px;
	letter-spacing:.08em;
	margin-left:9px;
	color:#98a5b7
}

.schedule tbody th,.schedule tbody td {
	padding:25px 22px;
	border-bottom:1px solid var(--line)
}

.schedule tbody th {
	width:190px;
	white-space:nowrap;
	font-size:16px;
	letter-spacing:-.03em;
	font-weight:600;
	vertical-align:middle
}

.schedule tbody th span {
	color:#97a8ba;
	margin:0 6px
}

.schedule tbody td strong {
	font-size:17px;
	display:block;
	font-weight:600;
	letter-spacing:-.035em
}

.schedule td p,.schedule td small {
	display:block;
	margin-top:5px;
	font-size:12px;
	color:var(--muted);
	letter-spacing:0
}

.schedule .highlight {
	background:#ecf4ff
}

.schedule .highlight th {
	color:var(--blue);
	border-left:3px solid var(--blue);
	padding-left:19px
}

.schedule .highlight strong {
	font-size:21px;
	color:#135ec6
}

.session-tag {
	font-size:9px;
	color:var(--blue);
	letter-spacing:.12em;
	display:block;
	margin-bottom:7px
}

.schedule-note {
	font-size:12px;
	color:#7f8ca0;
	margin-top:18px
}

.speakers-section {
	background:var(--paper)
}

.speaker-grid {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:28px
}

.speaker-card {
	border-top:2px solid #b7c9df;
	padding-top:28px;
	display:flex;
	align-items:flex-start;
	gap:24px
}

.speaker-photo {
	width:150px;
	max-height:240px;
	object-fit:contain;
	object-position:top;
	background:#e9eff6;
	flex-shrink:0
}

.speaker-copy {
	min-width:0
}

.speaker-affiliation {
	font-size:12px;
	color:var(--blue);
	margin-bottom:9px
}

.speaker-copy h3 {
	font-size:25px
}

.speaker-talk {
	font-size:16px;
	font-weight:600;
	margin-top:19px
}

.speaker-bio {
	font-size:14px;
	line-height:1.9;
	color:var(--muted);
	margin-top:16px;
	overflow-wrap:anywhere
}

.location {
	border-top:1px solid #edf0f5
}

.section-number {
	color:#e4eaf2;
	font-size:60px;
	line-height:1
}

.location-info {
	display:flex;
	justify-content:space-between;
	align-items:flex-end;
	gap:24px;
	margin-bottom:27px
}

.location-info h3 {
	font-size:23px;
	letter-spacing:-.035em
}

.location-info h3 span {
	font-weight:400;
	font-size:17px;
	margin-left:12px
}

.location-info p {
	font-size:14px;
	color:var(--muted);
	margin-top:12px
}

.text-button {
	font-size:12px;
	color:#334a66;
	background:none;
	padding:8px 0;
	border-bottom:1px solid #a9b7c9;
	white-space:nowrap
}

.text-button span {
	margin-left:16px
}

.map-wrap {
	width:100%;
	height:auto;
	min-height:360px;
	background:#eaf0f5;
	overflow:hidden;
	border:1px solid #e0e7ef
}

.map-actions {
	display:flex;
	gap:10px;
	margin-top:17px;
	justify-content:flex-end
}

.map-actions a {
	border:1px solid var(--line);
	padding:10px 17px;
	font-size:12px
}

.map-actions span {
	margin-left:23px
}

.map-actions a:hover {
	background:var(--paper)
}

.join-section {
	position:relative;
	background:var(--navy);
	color:#fff;
	overflow:hidden;
	padding:86px 24px;
	text-align:center;
	border-bottom:1px solid #ffffff19
}

.join-inner {
	position:relative;
	z-index:1
}

.join-inner .eyebrow {
	color:#83baff
}

.join-inner h2 {
	font-size:clamp(34px,4.4vw,54px);
	font-weight:600;
	letter-spacing:-.06em;
	line-height:1.35;
	margin:21px 0
}

.join-inner>p:not(.eyebrow) {
	font-size:15px;
	color:#a8bfd9
}

.join-inner .button {
	margin-top:30px
}

.join-inner small {
	display:block;
	color:#7c96b6;
	font-size:11px;
	margin-top:22px;
	line-height:1.9
}

.join-orbit {
	position:absolute;
	border:1px solid #4393ff27;
	width:940px;
	height:940px;
	top:-680px;
	left:50%;
	transform:translateX(-50%);
	border-radius:50%;
	box-shadow:0 0 0 90px #24538408,0 0 0 180px #24538407
}

.site-footer {
	background:#051124;
	color:#fff;
	padding:40px max(5vw,24px) 25px
}

.footer-top {
	max-width:1152px;
	margin:auto;
	display:flex;
	align-items:center;
	gap:70px;
	padding-bottom:35px
}

.footer-top img {
	width:94px
}

.footer-top div>span {
	font-size:10px;
	letter-spacing:.07em;
	color:#7890ab
}

.footer-top p {
	font-size:13px;
	margin-top:4px;
	color:#bdcde1
}

.footer-top p a {
	margin-left:16px;
	color:#fff;
	font-size:17px
}

.back-top {
	margin-left:auto;
	border:1px solid #6e829c66;
	width:40px;
	height:40px;
	display:grid;
	place-items:center
}

.footer-bottom {
	max-width:1152px;
	margin:auto;
	border-top:1px solid #ffffff13;
	padding-top:22px;
	display:flex;
	justify-content:space-between;
	font-size:10px;
	color:#6f89a7
}

.privacy-open {
	background:none;
	color:#8198b4;
	font-size:11px
}

.mobile-register {
	display:none
}

.modal {
	position:fixed;
	inset:0;
	z-index:100;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:24px
}

.modal-backdrop {
	position:absolute;
	inset:0;
	background:#020c20bf;
	backdrop-filter:blur(5px)
}

.modal-panel {
	position:relative;
	background:#fff;
	padding:42px;
	width:600px;
	max-width:100%;
	max-height:calc(100dvh - 48px);
	max-height:calc(var(--vh,1vh)*100 - 48px);
	overflow-y:auto;
	overscroll-behavior:contain;
	box-shadow:0 20px 100px #0005;
	animation:entrance .25s ease
}

.modal-close {
	position:absolute;
	top:13px;
	right:16px;
	width:38px;
	height:38px;
	font-size:29px;
	font-weight:300;
	background:none;
	color:#4c5e76
}

.modal h2 {
	font-size:30px;
	margin-top:12px
}

.modal-intro {
	font-size:14px;
	color:var(--muted);
	margin-top:15px;
	margin-bottom:28px
}

.field-grid {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:18px 15px
}

.field-grid>label {
	font-size:13px;
	font-weight:600;
	display:block
}

.required {
	color:var(--blue);
	margin-left:3px
}

.field-grid input {
	display:block;
	width:100%;
	margin-top:8px;
	min-height:48px;
	border:1px solid #d0dae7;
	background:#f9fbfe;
	padding:10px 12px;
	font-size:16px;
	border-radius:0;
	color:var(--ink)
}

.field-grid input::placeholder {
	color:#91a0b4;
	font-size:13px
}

.privacy-details {
	margin-top:25px;
	border-top:1px solid var(--line);
	border-bottom:1px solid var(--line);
	padding:13px 0;
	font-size:12px;
	color:#64758b
}

.privacy-details summary {
	cursor:pointer;
	font-size:13px;
	color:#334d6c
}

.privacy-copy {
	line-height:1.9;
	padding-top:13px
}

.check-label {
	display:flex;
	align-items:flex-start;
	gap:8px;
	font-size:12px;
	margin:17px 0 0
}

.check-label input {
	width:18px;
	height:18px;
	accent-color:var(--blue);
	margin:1px 0 0;
	flex:none
}

.check-label b {
	font-weight:500;
	color:var(--blue)
}

.form-message {
	font-size:13px;
	color:#b02e30;
	margin:12px 0;
	min-height:0
}

.form-message:empty {
	display:none
}

.modal form>.button {
	width:100%;
	margin-top:20px
}

.honeypot {
	position:absolute;
	left:-9999px
}

.success-view {
	text-align:center;
	padding:14px 0
}

.success-check {
	width:62px;
	height:62px;
	display:grid;
	place-items:center;
	border-radius:50%;
	background:#e5f1ff;
	color:var(--blue);
	font-size:28px;
	margin:0 auto 24px
}

.success-view h2 {
	font-size:28px;
	margin:16px 0
}

.success-view>p:not(.eyebrow) {
	font-size:15px;
	color:var(--muted);
	line-height:1.8
}

.success-event {
	font-size:13px;
	background:var(--paper);
	padding:20px;
	margin:26px 0
}

.success-view .button {
	width:100%;
	justify-content:center
}

.toast {
	position:fixed;
	bottom:35px;
	left:50%;
	transform:translateX(-50%);
	z-index:150;
	background:#101f34;
	color:#fff;
	padding:13px 24px;
	box-shadow:0 3px 20px #0002;
	font-size:13px;
	min-width:230px;
	text-align:center
}

.notice {
	padding:20px;
	background:var(--paper);
	color:#405f84
}

.noscript-note {
	background:#fff5df;
	color:#473614;
	padding:20px;
	font-size:14px
}

.reveal.is-pending {
	opacity:0;
	transform:translateY(23px)
}

.reveal {
	transition:opacity .65s ease,transform .65s ease
}

.reveal.is-visible {
	opacity:1;
	transform:translateY(0)
}

@keyframes entrance {
	from {
		opacity:0;
		transform:translateY(17px)
	}
	to {
		opacity:1;
		transform:translateY(0)
	}
}

@keyframes hero-image {
	from {
		transform:scale(1.035);
		opacity:.3
	}
	to {
		transform:scale(1);
		opacity:1
	}
}

@media(min-width:1600px) {
	.hero {
		min-height:900px
	}
	.hero-inner {
		padding-top:115px
	}
	.hero-image {
		background-position:center right
	}
}

@media(max-width:1000px) {
	.hero-inner {
		padding-left:40px;
		padding-right:40px
	}
	.hero-image {
		background-position:56% center
	}
	.hero-shade {
		background:linear-gradient(90deg,#030e20e8,#030e2055)
	}
	.section {
		padding:80px 40px
	}
	.program-layout {
		grid-template-columns:180px minmax(0,1fr);
		gap:35px
	}
	.schedule tbody th,.schedule tbody td {
		padding:22px 16px
	}
	.schedule tbody th {
		width:165px;
		font-size:14px
	}
	.schedule .highlight th {
		padding-left:13px
	}
	.speaker-card {
		display:block
	}
	.speaker-photo {
		width:140px;
		margin-bottom:20px
	}
	.site-header nav {
		gap:20px
	}
}

@media(max-width:680px) {
	html {
		scroll-padding-top:24px
	}
	.site-header {
		height:68px;
		padding:0 23px
	}
	.brand img {
		width:87px
	}
	.site-header nav {
		gap:18px;
		font-size:11px
	}
	.site-header nav a[href="#speakers"] {
		display:none
	}
	.header-cta {
		display:none
	}
	.hero {
		min-height:900px
	}
	.hero-image {
		background-size:auto 620px;
		background-position:58% bottom;
		background-repeat:no-repeat;
		opacity:.85
	}
	.hero-shade {
		background:linear-gradient(180deg,#030e20 3%,#030e20d9 29%,#030e2077 57%,#030e2022 74%,#030e2080)
	}
	.hero-inner {
		padding:48px 26px 158px
	}
	.hero .eyebrow {
		font-size:10px;
		letter-spacing:.13em;
		margin-bottom:27px
	}
	.hero h1 {
		font-size:62px;
		max-width:420px;
		letter-spacing:-.055em
	}
	.hero-brand {
		font-size:13px;
		margin-bottom:13px
	}
	.hero-subtitle {
		font-size:26px;
		margin-top:18px
	}
	.invitation {
		font-size:16px;
		margin-top:29px;
		line-height:1.9
	}
	.hero-event {
		margin:29px 0 29px;
		padding-top:20px
	}
	.hero-event p {
		gap:10px;
		margin-top:10px
	}
	.hero-event strong {
		font-size:19px
	}
	.hero-event strong small {
		font-size:13px
	}
	.event-time {
		font-size:13px;
		padding-top:5px
	}
	.detail-label {
		width:40px;
		font-size:9px
	}
	.hero-event .venue-name {
		font-size:17px
	}
	.venue-name span {
		font-size:14px
	}
	.hero-inner>.button {
		font-size:14px;
		gap:34px;
		padding:15px 20px;
		min-height:53px
	}
	.hero-bottom {
		padding:16px 26px
	}
	.hero-bottom>span:first-child {
		font-size:7px;
		letter-spacing:.08em
	}
	.hero-bottom a {
		font-size:10px;
		gap:15px
	}
	.hero-index {
		display:none
	}
	.section {
		padding:65px 24px
	}
	.section-heading {
		margin-bottom:34px;
		gap:16px
	}
	.section-heading .eyebrow {
		font-size:10px
	}
	.section-heading h2 {
		font-size:34px;
		margin-top:12px
	}
	.section-heading>p {
		font-size:11px;
		line-height:1.7
	}
	.program-layout {
		display:block
	}
	.program-date {
		display:flex;
		align-items:center;
		gap:18px;
		flex-wrap:wrap;
		padding:20px 0;
		margin-bottom:6px;
		border-top:0
	}
	.program-date>span {
		font-size:9px;
		writing-mode:vertical-rl
	}
	.program-date>strong {
		font-size:73px;
		line-height:1
	}
	.program-date>strong span {
		font-size:11px;
		margin-left:0
	}
	.program-date>p {
		font-size:12px;
		margin:0 0 0 auto;
		line-height:1.9;
		text-align:right
	}
	.program-date .program-place,.date-line {
		display:none
	}
	.schedule thead th {
		padding:13px 11px;
		font-size:11px
	}
	.schedule thead span {
		font-size:8px;
		margin-left:5px
	}
	.schedule tbody th,.schedule tbody td {
		padding:24px 11px
	}
	.schedule tbody th {
		width:118px;
		font-size:12px;
		letter-spacing:-.04em
	}
	.schedule tbody th span {
		margin:0 2px
	}
	.schedule tbody td strong {
		font-size:15px;
		line-height:1.5
	}
	.schedule tbody td p {
		font-size:11px
	}
	.schedule tbody td small {
		font-size:10px
	}
	.schedule .highlight th {
		padding-left:8px
	}
	.schedule .highlight strong {
		font-size:19px
	}
	.session-tag {
		font-size:8px;
		letter-spacing:.08em
	}
	.schedule-note {
		font-size:10px;
		margin-top:16px
	}
	.speaker-grid {
		grid-template-columns:1fr;
		gap:35px
	}
	.speaker-card {
		display:flex;
		gap:19px
	}
	.speaker-photo {
		width:105px;
		max-height:160px
	}
	.speaker-copy h3 {
		font-size:22px
	}
	.speaker-bio {
		font-size:13px
	}
	.speaker-talk {
		font-size:14px
	}
	.speaker-affiliation {
		font-size:11px
	}
	.section-number {
		font-size:45px
	}
	.location-info {
		display:block;
		margin-bottom:20px
	}
	.location-info h3 {
		font-size:20px;
		line-height:1.5
	}
	.location-info h3 span {
		display:block;
		margin:2px 0 0;
		font-size:16px
	}
	.location-info p {
		font-size:12px;
		margin-top:12px
	}
	.text-button {
		margin-top:12px;
		font-size:11px
	}
	.map-actions {
		justify-content:stretch;
		gap:8px
	}
	.map-actions a {
		flex:1;
		font-size:11px;
		padding:11px 10px;
		text-align:center
	}
	.map-actions span {
		margin-left:7px
	}
	.join-section {
		padding:65px 24px
	}
	.join-inner h2 {
		font-size:38px
	}
	.join-inner>p:not(.eyebrow) {
		font-size:13px
	}
	.join-inner small {
		font-size:10px
	}
	.site-footer {
		padding:30px 24px 105px
	}
	.footer-top {
		gap:25px;
		align-items:flex-start;
		flex-wrap:wrap;
		padding-bottom:24px
	}
	.footer-top img {
		width:78px;
		margin-top:4px
	}
	.footer-top div {
		flex:1
	}
	.footer-top p {
		font-size:11px
	}
	.footer-top p a {
		display:block;
		margin:3px 0 0;
		font-size:16px
	}
	.back-top {
		width:32px;
		height:32px
	}
	.footer-bottom {
		gap:12px;
		align-items:flex-start;
		flex-direction:column;
		font-size:9px
	}
	.privacy-open {
		padding:0;
		font-size:10px
	}
	.mobile-register {
		display:block;
		position:fixed;
		bottom:0;
		left:0;
		right:0;
		z-index:30;
		padding:10px 16px calc(10px + env(safe-area-inset-bottom));
		background:#fffffff0;
		backdrop-filter:blur(12px);
		border-top:1px solid #dce6f1
	}
	.mobile-register .button {
		background:var(--blue);
		color:#fff;
		width:100%;
		min-height:48px;
		padding:13px 20px;
		font-size:14px
	}
	.modal {
		padding:16px;
		align-items:center
	}
	.modal-panel {
		padding:34px 23px 27px;
		max-height:calc(var(--vh,1vh)*100 - 32px)
	}
	.modal-panel>.eyebrow,.modal .eyebrow {
		font-size:9px
	}
	.modal h2 {
		font-size:26px;
		margin-top:9px
	}
	.modal-intro {
		font-size:13px;
		margin-top:13px;
		margin-bottom:23px
	}
	.field-grid {
		grid-template-columns:1fr;
		gap:14px
	}
	.field-grid>label {
		font-size:12px
	}
	.field-grid input {
		margin-top:6px;
		min-height:47px
	}
	.privacy-details {
		margin-top:22px
	}
	.check-label {
		font-size:11px
	}
	.toast {
		bottom:95px;
		font-size:12px;
		width:calc(100% - 48px)
	}
	.success-view h2 {
		font-size:24px
	}
	.success-event {
		font-size:12px
	}
	.button:hover {
		transform:none
	}
}

@media(max-width:360px) {
	.hero h1 {
		font-size:53px
	}
	.hero-subtitle {
		font-size:23px
	}
	.hero-inner {
		padding-left:21px;
		padding-right:21px
	}
	.hero-event strong {
		font-size:17px
	}
	.event-time {
		font-size:11px
	}
	.schedule tbody th {
		width:107px;
		font-size:11px
	}
	.schedule tbody td strong {
		font-size:14px
	}
	.section {
		padding-left:20px;
		padding-right:20px
	}
}

@media(prefers-reduced-motion:reduce) {
	html {
		scroll-behavior:auto
	}
	*,*::before,*::after {
		animation:none!important;
		transition:none!important
	}
	.reveal.is-pending {
		opacity:1;
		transform:none
	}
}

.map-wrap {
	position:relative
}

#venue-map {
	width:100%;
	height:360px
}

.map-status {
	position:absolute;
	inset:0;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:16px;
	background:#eaf0f5;
	z-index:2;
	padding:25px;
	text-align:center;
	color:#516b89;
	font-size:14px
}

.map-status a {
	background:#fff;
	border:1px solid #d1dce9;
	padding:10px 16px;
	font-size:12px
}

.map-label {
	position:relative;
	bottom:44px;
	background:#fff;
	border:1px solid #cbd9ea;
	border-radius:4px;
	box-shadow:0 3px 10px #15294322;
	padding:11px 17px;
	text-align:center;
	color:#1b3e6c;
	font-size:13px;
	line-height:1.5;
	font-weight:700;
	white-space:nowrap
}

.map-label span {
	display:block;
	font-size:11px;
	font-weight:400;
	color:#688099
}

.confirm-actions {
	display:flex;
	gap:10px;
	margin-top:26px
}

.confirm-actions .button {
	flex:1;
	justify-content:center;
	gap:0;
	margin:0
}

.confirm-actions #cancel-update {
	background:#eaf0f7;
	color:#4f6682
}

.success-view .duplicate-question {
	font-size:17px;
	color:var(--ink);
	line-height:1.9;
	margin-top:22px
}

.success-view .duplicate-note {
	font-size:12px;
	color:var(--muted);
	margin-top:13px
}
