:root {
	--lj-night: #07182f;
	--lj-night-soft: #102b48;
	--lj-pine: #17463e;
	--lj-pine-light: #2d685c;
	--lj-berry: #8f2e3f;
	--lj-berry-light: #bb5968;
	--lj-gold: #e9bd5b;
	--lj-gold-soft: #f4db9d;
	--lj-paper: #fffaf0;
	--lj-cream: #f5ecda;
	--lj-ink: #172538;
	--lj-muted: #617083;
	--lj-line: rgba(23, 37, 56, .13);
	--lj-shadow: 0 24px 70px rgba(2, 17, 35, .16);
	--lj-radius: 30px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.lj-site { margin: 0; color: var(--lj-ink); background: #f7f1e6; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.65; }
body.lj-site::before { content: ""; position: fixed; inset: 0; z-index: -2; background: radial-gradient(circle at 10% 4%, rgba(233,189,91,.18), transparent 28rem), radial-gradient(circle at 90% 32%, rgba(143,46,63,.10), transparent 32rem), linear-gradient(#f8f2e7, #efe6d7); }
body.lj-site h1, body.lj-site h2, body.lj-site h3 { margin: 0 0 .65em; color: inherit; font-family: Georgia, "Times New Roman", serif; line-height: 1.08; text-wrap: balance; }
body.lj-site h1 { font-size: clamp(2.35rem, 7vw, 5.8rem); letter-spacing: -.035em; }
body.lj-site h2 { font-size: clamp(1.8rem, 4vw, 3.35rem); letter-spacing: -.025em; }
body.lj-site h3 { font-size: 1.35rem; }
body.lj-site p { margin: 0 0 1rem; }
body.lj-site a { color: inherit; }
body.lj-site img { display: block; max-width: 100%; height: auto; }
body.lj-site button, body.lj-site input { font: inherit; }

.lj-skip-link { position: fixed; left: 1rem; top: -8rem; z-index: 99999; padding: .75rem 1rem; border-radius: 999px; background: #fff; color: var(--lj-night); font-weight: 800; }
.lj-skip-link:focus { top: 1rem; }
.lj-kicker { margin-bottom: .8rem !important; color: #a36f18; font-size: .76rem; font-weight: 850; letter-spacing: .18em; text-transform: uppercase; }
.lj-button { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; min-height: 50px; padding: .8rem 1.25rem; border: 0; border-radius: 999px; color: var(--lj-night) !important; background: var(--lj-gold); box-shadow: 0 10px 30px rgba(233,189,91,.22); font-weight: 850; text-decoration: none; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease; }
.lj-button:hover { transform: translateY(-2px); box-shadow: 0 14px 35px rgba(233,189,91,.3); }
.lj-button-dark { color: #fff !important; background: var(--lj-night); }
.lj-button-ghost { color: var(--lj-paper) !important; background: transparent; border: 1px solid rgba(255,255,255,.35); }
.lj-text-link { color: var(--lj-pine) !important; font-weight: 850; text-decoration-thickness: 2px; text-underline-offset: 5px; }

.lj-site-header { position: sticky; top: 0; z-index: 100; color: #fff; background: rgba(7,24,47,.93); border-bottom: 1px solid rgba(255,255,255,.09); backdrop-filter: blur(14px); }
.lj-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; max-width: 1320px; min-height: 76px; margin: 0 auto; padding: 0 clamp(1rem,4vw,3rem); }
.lj-brand { display: flex; align-items: center; gap: .72rem; color: #fff !important; font-family: Georgia, serif; font-size: 1.04rem; font-weight: 800; text-decoration: none; line-height: 1.15; }
.lj-brand > span:first-child { display: grid; place-items: center; width: 41px; height: 41px; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; color: var(--lj-gold); background: rgba(255,255,255,.06); }
.lj-brand small { display: block; margin-top: .18rem; color: rgba(255,255,255,.62); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .64rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.lj-navigation { display: flex; align-items: center; gap: .25rem; }
.lj-navigation a { padding: .6rem .72rem; border-radius: 999px; color: rgba(255,255,255,.75) !important; font-size: .86rem; font-weight: 720; text-decoration: none; }
.lj-navigation a:hover, .lj-navigation a[aria-current="page"] { color: #fff !important; background: rgba(255,255,255,.1); }
.lj-menu-toggle { display: none; border: 0; color: #fff; background: transparent; font-weight: 800; cursor: pointer; }

.lj-main { min-height: 70vh; overflow: hidden; }
.lj-main > *:not(.lj-hero) { max-width: 1240px; margin-right: auto; margin-left: auto; }
.lj-section { margin-top: clamp(3.2rem,8vw,7.5rem) !important; margin-bottom: clamp(3.2rem,8vw,7.5rem) !important; padding-right: clamp(1rem,4vw,3rem); padding-left: clamp(1rem,4vw,3rem); }
.lj-page-hero { max-width: 980px !important; padding: clamp(4rem,10vw,8.5rem) clamp(1rem,4vw,3rem) clamp(2.5rem,7vw,5.5rem); text-align: center; }
.lj-page-hero > p:not(.lj-kicker) { max-width: 760px; margin: 0 auto; color: var(--lj-muted); font-size: clamp(1rem,2vw,1.25rem); }

.lj-hero { position: relative; display: grid; min-height: min(78vh, 820px); color: #fff; background: var(--lj-night); isolation: isolate; }
.lj-hero > img { grid-area: 1/1; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.lj-hero-shade { grid-area: 1/1; background: linear-gradient(90deg, rgba(2,13,27,.97) 0%, rgba(4,18,36,.8) 36%, rgba(4,18,36,.18) 72%), linear-gradient(0deg, rgba(4,18,36,.82), transparent 45%); }
.lj-hero-copy { grid-area: 1/1; z-index: 1; align-self: end; width: min(720px, 92vw); margin-left: max(calc((100vw - 1240px)/2), 4vw); padding: clamp(4rem,12vw,9rem) 1rem clamp(3.5rem,8vw,7rem) 0; }
.lj-hero-copy h1 { font-size: clamp(3rem,7vw,6.4rem); }
.lj-hero-copy > p:not(.lj-kicker) { max-width: 650px; color: rgba(255,255,255,.82); font-size: clamp(1.05rem,2vw,1.3rem); }
.lj-hero-copy .lj-kicker { color: var(--lj-gold-soft); }

.lj-test-banner { max-width: 900px !important; margin-top: 1.5rem !important; padding: .85rem 1.25rem; border: 1px solid #e7c979; border-radius: 16px; color: #5d4614; background: #fff3c9; text-align: center; }
.lj-intro-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.7fr); align-items: center; gap: clamp(2rem,8vw,7rem); }
.lj-intro-grid > div { max-width: 640px; }
.lj-intro-grid > img { max-height: 520px; margin: 0 auto; object-fit: contain; filter: drop-shadow(0 28px 34px rgba(7,24,47,.17)); }

.lj-today-card { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: clamp(1.4rem,4vw,3rem); max-width: 950px !important; padding-top: clamp(1.6rem,4vw,3rem); padding-bottom: clamp(1.6rem,4vw,3rem); border-radius: var(--lj-radius); color: #fff; background: linear-gradient(135deg, var(--lj-pine), #0b2d31); box-shadow: var(--lj-shadow); }
.lj-today-symbol { display: grid; place-items: center; width: clamp(90px,15vw,150px); aspect-ratio: 1; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; color: var(--lj-gold); background: rgba(255,255,255,.06); font-size: clamp(2.5rem,7vw,5rem); }
.lj-today-card .lj-kicker { color: var(--lj-gold-soft); }
.lj-today-card h2 { font-size: clamp(1.8rem,4vw,3rem); }

.lj-feature-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin-top: 2rem; }
.lj-feature { min-height: 280px; padding: clamp(1.4rem,3vw,2.3rem); border: 1px solid var(--lj-line); border-radius: 26px; color: var(--lj-ink) !important; background: rgba(255,255,255,.72); box-shadow: 0 15px 45px rgba(24,37,55,.06); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.lj-feature:hover { transform: translateY(-5px); box-shadow: 0 25px 55px rgba(24,37,55,.11); }
.lj-feature > span { display: inline-flex; align-items: center; min-height: 55px; margin-bottom: 2.8rem; color: var(--lj-berry); font-family: Georgia, serif; font-size: 2rem; font-weight: 800; }
.lj-feature-traditions > span { color: var(--lj-pine); font-size: 1.3rem; }
.lj-feature-adventures > span { color: #9a6a14; font-size: 3rem; }

.lj-door-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: clamp(.65rem,1.4vw,1.1rem); max-width: 1180px !important; padding: 0 clamp(1rem,4vw,3rem) clamp(3rem,7vw,6rem); }
.lj-door { position: relative; aspect-ratio: .92; overflow: hidden; border-radius: 24px; box-shadow: 0 12px 30px rgba(7,24,47,.12); }
.lj-door > a, .lj-door > div { position: relative; display: flex; height: 100%; flex-direction: column; align-items: center; justify-content: center; padding: .8rem; border: 1px solid rgba(255,255,255,.16); color: #fff !important; background: linear-gradient(145deg, #143b60, var(--lj-night)); text-align: center; text-decoration: none; }
.lj-door strong { font-family: Georgia, serif; font-size: clamp(2rem,5vw,4.2rem); line-height: 1; }
.lj-door small { display: block; min-height: 2.4em; margin-top: .7rem; color: rgba(255,255,255,.7); font-size: clamp(.62rem,1.2vw,.78rem); line-height: 1.2; }
.lj-door-icon { margin-bottom: .42rem; color: var(--lj-gold); font-size: 1.4rem; }
.lj-door.opener-mateo > a { box-shadow: inset 0 0 70px rgba(57,159,167,.25); }
.lj-door.opener-thea > a { box-shadow: inset 0 0 70px rgba(198,91,120,.25); }
.lj-door.is-locked { opacity: .52; filter: saturate(.35); }
.lj-door.is-open a::after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(255,255,255,.1); border-radius: 17px; pointer-events: none; }
.lj-door-memory { position: absolute; top: 9px; right: 12px; color: rgba(255,255,255,.16); font-size: 1.1rem; }
.lj-door.is-remembered .lj-door-memory { color: var(--lj-gold); filter: drop-shadow(0 0 7px var(--lj-gold)); }

.lj-calm-note { display: grid; grid-template-columns: auto 1fr; gap: 1.3rem; max-width: 880px !important; margin-top: 2rem !important; margin-bottom: 6rem !important; padding: 1.5rem clamp(1.2rem,3vw,2rem); border: 1px solid rgba(23,70,62,.15); border-radius: 24px; background: rgba(226,238,230,.72); }
.lj-calm-note > span { color: var(--lj-pine); font-size: 2.5rem; }
.lj-calm-note h2 { margin-bottom: .25rem; font-size: 1.5rem; }
.lj-calm-note p { margin-bottom: 0; color: #486058; }

.lj-day { max-width: 940px; margin: 0 auto; padding: clamp(2rem,6vw,5rem) clamp(1rem,4vw,3rem) 6rem; }
.lj-back { display: inline-block; margin-bottom: 2.5rem; color: var(--lj-pine) !important; font-weight: 800; text-decoration: none; }
.lj-day-header { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: clamp(1.2rem,5vw,3rem); margin-bottom: 2.5rem; }
.lj-day-number { display: grid; place-items: center; width: clamp(90px,16vw,150px); aspect-ratio: 1; border-radius: 50%; color: #fff; background: var(--lj-night); box-shadow: var(--lj-shadow); font-family: Georgia, serif; font-size: clamp(2.4rem,6vw,4.2rem); line-height: .8; }
.lj-day-number span { color: var(--lj-gold); font-family: ui-sans-serif, sans-serif; font-size: 1.3rem; }
.opener-mateo .lj-day-number { background: #125460; }
.opener-thea .lj-day-number { background: var(--lj-berry); }
.lj-opener-label { display: inline-flex; padding: .45rem .85rem; border-radius: 999px; color: var(--lj-muted); background: rgba(255,255,255,.8); font-size: .82rem; font-weight: 800; }
.lj-letter { position: relative; margin: 2rem 0; padding: clamp(1.6rem,5vw,3.8rem); border: 1px solid #e6d7b8; border-radius: 8px 8px 40px 8px; background: var(--lj-paper); box-shadow: 0 20px 50px rgba(89,65,29,.1); font-family: Georgia, serif; font-size: clamp(1.12rem,2.2vw,1.35rem); line-height: 1.75; }
.lj-letter::before { content: ""; position: absolute; inset: 13px; border: 1px solid rgba(157,113,47,.16); border-radius: 3px 3px 30px 3px; pointer-events: none; }
.lj-letter-from { position: relative; color: #9c6f29; font-family: ui-sans-serif, system-ui, sans-serif; font-size: .72rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.lj-letter > div { position: relative; }
.lj-mission { display: grid; grid-template-columns: auto 1fr; gap: 1.4rem; margin: 2rem 0; padding: clamp(1.5rem,4vw,2.8rem); border-radius: var(--lj-radius); color: #fff; background: linear-gradient(145deg, var(--lj-pine), #0b302b); box-shadow: var(--lj-shadow); }
.lj-mission-icon { color: var(--lj-gold); font-size: clamp(2.5rem,6vw,4rem); }
.lj-mission .lj-kicker { color: var(--lj-gold-soft); }
.lj-mission h2 { font-size: clamp(1.45rem,3vw,2.2rem); }
.lj-mission ul { margin: 1.2rem 0; padding-left: 1.35rem; }
.lj-mission li { margin: .55rem 0; }
.lj-time { display: inline-flex; margin-bottom: 0 !important; padding: .45rem .75rem; border-radius: 999px; background: rgba(255,255,255,.1); font-weight: 800; }
.lj-put-away { margin-top: 2rem; padding: clamp(2rem,6vw,4rem); border: 2px dashed rgba(233,189,91,.55); border-radius: var(--lj-radius); color: #fff; background: var(--lj-night); text-align: center; }
.lj-put-away .lj-kicker { color: var(--lj-gold-soft); }
.lj-socks { display: flex; justify-content: center; gap: 1rem; margin-bottom: .7rem; font-size: 2.5rem; }
.lj-memory-button { min-height: 48px; margin-top: .7rem; padding: .75rem 1.15rem; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; color: #fff; background: transparent; font-weight: 850; cursor: pointer; }
.lj-memory-button.is-done { border-color: var(--lj-gold); color: var(--lj-night); background: var(--lj-gold); }

.lj-elves-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.65fr); align-items: center; max-width: 1160px !important; text-align: left; }
.lj-elves-hero > p, .lj-elves-hero > div > p { margin-left: 0 !important; }
.lj-elves-hero img { max-height: 550px; object-fit: contain; filter: drop-shadow(0 25px 36px rgba(7,24,47,.17)); }
.lj-character-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-top: 0 !important; }
.lj-character { position: relative; overflow: hidden; min-height: 420px; padding: clamp(1.6rem,4vw,3rem); border-radius: var(--lj-radius); color: #fff; }
.lj-character::after { content: ""; position: absolute; right: -70px; bottom: -100px; width: 260px; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; }
.lj-kvist { background: linear-gradient(145deg, var(--lj-pine), #0b2d31); }
.lj-steluta { background: linear-gradient(145deg, var(--lj-berry), #541725); }
.lj-character .lj-kicker { color: var(--lj-gold-soft); }
.lj-character-mark { display: grid; place-items: center; width: 65px; height: 65px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; font-family: Georgia, serif; font-size: 2rem; font-weight: 800; }
.lj-character ul { padding-left: 1.2rem; }
.lj-character li { margin: .6rem 0; }
.lj-story-arc { max-width: 880px !important; }
.lj-story-arc ol { counter-reset: chapter; padding: 0; list-style: none; }
.lj-story-arc li { counter-increment: chapter; display: grid; grid-template-columns: 54px 1fr; align-items: center; gap: 1rem; margin: .8rem 0; padding: 1rem 1.2rem; border: 1px solid var(--lj-line); border-radius: 18px; background: rgba(255,255,255,.68); }
.lj-story-arc li::before { content: counter(chapter); display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: #fff; background: var(--lj-night); font-family: Georgia, serif; font-weight: 800; }

.lj-chip-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; padding: 0 1rem; }
.lj-chip-nav a { padding: .55rem .9rem; border: 1px solid var(--lj-line); border-radius: 999px; background: rgba(255,255,255,.72); font-size: .85rem; font-weight: 800; text-decoration: none; }
.lj-tradition-section { scroll-margin-top: 100px; }
.lj-tradition-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.lj-tradition-card { padding: clamp(1.3rem,3vw,2rem); border: 1px solid var(--lj-line); border-radius: 24px; background: rgba(255,255,255,.78); box-shadow: 0 12px 35px rgba(23,37,56,.05); }
.lj-tradition-icon { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 1rem; border-radius: 50%; color: #fff; background: var(--lj-pine); font-size: 1.6rem; }
.lj-tradition-card h2 { font-size: 1.55rem; }
.lj-tradition-card details { margin: 1.1rem 0; padding-top: .8rem; border-top: 1px solid var(--lj-line); }
.lj-tradition-card summary { color: var(--lj-pine); font-weight: 850; cursor: pointer; }
.lj-tradition-card details p { margin-top: .7rem; color: var(--lj-muted); font-size: .94rem; }
.lj-try { margin-bottom: 0 !important; padding: .8rem; border-radius: 13px; background: #edf2ec; font-size: .9rem; }

.lj-adventure-priority { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; max-width: 1040px !important; padding: 0 clamp(1rem,4vw,3rem); }
.lj-adventure-priority > div { display: grid; grid-template-columns: auto 1fr; gap: 0 .9rem; padding: 1.2rem; border-radius: 20px; color: #fff; background: var(--lj-night); }
.lj-adventure-priority span { grid-row: 1/3; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: var(--lj-night); background: var(--lj-gold); font-weight: 900; }
.lj-adventure-priority p { grid-column: 2; margin: 0; color: rgba(255,255,255,.7); font-size: .85rem; }
.lj-verified { max-width: 850px !important; margin-top: 1.5rem !important; padding: 0 1rem; color: var(--lj-muted); font-size: .84rem; text-align: center; }
.lj-adventure-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1.2rem; max-width: 1180px !important; padding: clamp(2.5rem,7vw,5rem) clamp(1rem,4vw,3rem); }
.lj-adventure-card { padding: clamp(1.3rem,3vw,2.1rem); border: 1px solid var(--lj-line); border-radius: 26px; background: rgba(255,255,255,.8); box-shadow: 0 15px 45px rgba(23,37,56,.06); }
.lj-adventure-card header { display: flex; align-items: center; gap: 1rem; }
.lj-adventure-card header > span { display: grid; flex: 0 0 auto; place-items: center; width: 58px; height: 58px; border-radius: 50%; color: var(--lj-gold); background: var(--lj-night); font-size: 1.8rem; }
.lj-adventure-card h2 { margin-bottom: .4rem; font-size: 1.8rem; }
.lj-adventure-card dl { display: grid; grid-template-columns: minmax(70px,auto) 1fr; gap: .55rem 1rem; padding: 1rem 0; border-top: 1px solid var(--lj-line); border-bottom: 1px solid var(--lj-line); font-size: .9rem; }
.lj-adventure-card dt { color: var(--lj-muted); font-weight: 800; }
.lj-adventure-card dd { margin: 0; }
.lj-market-mission { margin: 1rem 0; padding: 1rem; border-radius: 16px; background: #edf3ed; }
.lj-market-mission p { margin: .25rem 0; }
.lj-market-mission small { color: #52665e; }
.lj-source-status { color: var(--lj-muted); font-size: .78rem; }
.lj-status-choices { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1rem; }
.lj-status-choices button { padding: .48rem .72rem; border: 1px solid var(--lj-line); border-radius: 999px; color: var(--lj-ink); background: #fff; font-size: .75rem; font-weight: 800; cursor: pointer; }
.lj-status-choices button.is-active { border-color: var(--lj-pine); color: #fff; background: var(--lj-pine); }
.lj-adventure-card[data-current-status="later"] { opacity: .72; }

.lj-parent-gate { max-width: 620px !important; margin-top: clamp(3rem,10vw,8rem) !important; margin-bottom: clamp(4rem,10vw,9rem) !important; padding: clamp(2rem,6vw,4rem); border-radius: var(--lj-radius); background: #fff; box-shadow: var(--lj-shadow); text-align: center; }
.lj-parent-hero { max-width: none !important; color: #fff; background: var(--lj-night); }
.lj-parent-hero > p:not(.lj-kicker) { color: rgba(255,255,255,.72); }
.lj-parent-hero .lj-kicker { color: var(--lj-gold-soft); }
.lj-parent-actions { display: flex; justify-content: center; gap: .7rem; margin-top: 1.4rem; }
.lj-check-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: .7rem; }
.lj-check-grid label { display: flex; gap: .75rem; padding: .9rem 1rem; border: 1px solid var(--lj-line); border-radius: 15px; background: rgba(255,255,255,.75); cursor: pointer; }
.lj-check-grid input { width: 22px; height: 22px; accent-color: var(--lj-pine); }
.lj-check-grid input:checked + span { color: var(--lj-pine); font-weight: 750; }
.lj-budget { padding-top: clamp(2rem,5vw,4rem); padding-bottom: clamp(2rem,5vw,4rem); border-radius: var(--lj-radius); color: #fff; background: linear-gradient(135deg, var(--lj-berry), #551827); }
.lj-budget .lj-kicker { color: var(--lj-gold-soft); }
.lj-budget-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: .8rem; margin: 1.5rem 0; }
.lj-budget-grid div { padding: 1rem; border: 1px solid rgba(255,255,255,.18); border-radius: 16px; background: rgba(255,255,255,.07); text-align: center; }
.lj-budget-grid strong { display: block; color: var(--lj-gold-soft); font-family: Georgia, serif; font-size: 1.5rem; }
.lj-budget-grid span { font-size: .78rem; }
.lj-date-list { border-top: 1px solid var(--lj-line); }
.lj-date-list > div { display: grid; grid-template-columns: 190px 1fr; gap: 1.2rem; padding: 1rem 0; border-bottom: 1px solid var(--lj-line); }
.lj-date-list time { color: var(--lj-pine); font-weight: 850; }
.lj-date-list p { margin: 0; }
.lj-parent-days details { margin: .65rem 0; border: 1px solid var(--lj-line); border-radius: 17px; background: rgba(255,255,255,.78); }
.lj-parent-days summary { display: grid; grid-template-columns: 46px 1fr auto; align-items: center; gap: .8rem; padding: .8rem 1rem; cursor: pointer; }
.lj-parent-days summary > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: #fff; background: var(--lj-night); font-family: Georgia, serif; font-weight: 850; }
.lj-parent-days summary small { color: var(--lj-muted); }
.lj-parent-day-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; padding: 1rem; border-top: 1px solid var(--lj-line); }
.lj-parent-day-grid > div { padding: 1rem; border-radius: 13px; background: #f6f1e7; }
.lj-parent-day-grid h3 { font-size: 1.1rem; }
.lj-parent-day-grid p { font-size: .88rem; }
.lj-ready-note { margin-top: 1rem !important; color: var(--lj-muted); text-align: center; }

.lj-lock-screen { display: grid; min-height: 100vh; place-items: center; padding: 1rem; color: #fff; background: radial-gradient(circle at 50% 20%, #173d5d, var(--lj-night) 58%, #03101f); }
.lj-gate { width: min(560px,100%); padding: clamp(2rem,7vw,4.5rem); border: 1px solid rgba(255,255,255,.16); border-radius: 36px; background: rgba(255,255,255,.06); box-shadow: 0 30px 100px rgba(0,0,0,.3); backdrop-filter: blur(12px); text-align: center; }
.lj-gate h1 { font-size: clamp(2.2rem,7vw,4.3rem) !important; }
.lj-gate > p:not(.lj-kicker,.lj-gate-note,.lj-form-error) { color: rgba(255,255,255,.72); }
.lj-gate .lj-kicker { color: var(--lj-gold-soft); }
.lj-gate-stars { margin-bottom: 1.2rem; color: var(--lj-gold); font-size: 1.6rem; }
.lj-code-form { display: grid; gap: .75rem; margin-top: 1.5rem; text-align: left; }
.lj-code-form label { font-size: .82rem; font-weight: 850; }
.lj-code-form input { width: 100%; min-height: 54px; padding: .75rem 1rem; border: 1px solid rgba(255,255,255,.28); border-radius: 14px; color: var(--lj-ink); background: #fff; outline: none; }
.lj-code-form input:focus { border-color: var(--lj-gold); box-shadow: 0 0 0 4px rgba(233,189,91,.2); }
.lj-code-form button { min-height: 54px; border: 0; border-radius: 14px; color: var(--lj-night); background: var(--lj-gold); font-weight: 900; cursor: pointer; }
.lj-gate-note { margin: 1.2rem 0 0 !important; color: rgba(255,255,255,.45); font-size: .72rem; }
.lj-form-error { padding: .7rem 1rem; border-radius: 12px; color: #5c1f26; background: #ffe0df; font-weight: 800; }
.lj-parent-gate .lj-code-form { color: var(--lj-ink); }

.lj-site-footer { display: flex; align-items: end; justify-content: space-between; gap: 2rem; padding: clamp(2rem,6vw,5rem) max(4vw, calc((100vw - 1240px)/2)); color: rgba(255,255,255,.64); background: #031324; }
.lj-site-footer > div { display: flex; align-items: center; gap: 1rem; }
.lj-site-footer > div > span { color: var(--lj-gold); font-size: 2.4rem; }
.lj-site-footer p { margin: 0 !important; }
.lj-site-footer strong { color: #fff; }
.lj-site-footer a { color: var(--lj-gold-soft) !important; }

@media (max-width: 960px) {
	.lj-menu-toggle { display: flex; align-items: center; gap: .4rem; }
	.lj-navigation { position: absolute; top: 76px; right: 1rem; left: 1rem; display: none; flex-direction: column; align-items: stretch; padding: .75rem; border: 1px solid rgba(255,255,255,.13); border-radius: 18px; background: #0b213b; box-shadow: var(--lj-shadow); }
	.lj-navigation.is-open { display: flex; }
	.lj-navigation a { text-align: center; }
	.lj-door-grid { grid-template-columns: repeat(4,1fr); }
	.lj-tradition-grid { grid-template-columns: repeat(2,1fr); }
	.lj-parent-day-grid { grid-template-columns: 1fr; }
	.lj-budget-grid { grid-template-columns: repeat(3,1fr); }
}

@media (max-width: 720px) {
	.lj-brand small { display: none; }
	.lj-hero { min-height: 760px; }
	.lj-hero > img { object-position: 61% center; }
	.lj-hero-shade { background: linear-gradient(0deg, rgba(2,13,27,.98) 0%, rgba(4,18,36,.8) 52%, rgba(4,18,36,.15) 100%); }
	.lj-hero-copy { align-self: end; width: auto; margin: 0; padding: 5rem 1.1rem 3.2rem; }
	.lj-intro-grid, .lj-elves-hero, .lj-character-grid, .lj-adventure-grid { grid-template-columns: 1fr; }
	.lj-intro-grid > img { grid-row: 1; max-height: 390px; }
	.lj-today-card { grid-template-columns: 1fr; text-align: center; }
	.lj-today-symbol { margin: 0 auto; }
	.lj-feature-grid, .lj-adventure-priority { grid-template-columns: 1fr; }
	.lj-feature { min-height: 220px; }
	.lj-feature > span { margin-bottom: 1.4rem; }
	.lj-door-grid { grid-template-columns: repeat(3,1fr); }
	.lj-door { border-radius: 18px; }
	.lj-day-header { grid-template-columns: 1fr; text-align: center; }
	.lj-day-number { margin: 0 auto; }
	.lj-mission { grid-template-columns: 1fr; }
	.lj-mission-icon { line-height: 1; }
	.lj-tradition-grid, .lj-check-grid { grid-template-columns: 1fr; }
	.lj-budget-grid { grid-template-columns: repeat(2,1fr); }
	.lj-date-list > div { grid-template-columns: 1fr; gap: .2rem; }
	.lj-parent-days summary { grid-template-columns: 42px 1fr; }
	.lj-parent-days summary small { grid-column: 2; }
	.lj-parent-actions { flex-direction: column; }
	.lj-site-footer { flex-direction: column; align-items: start; }
}

@media (max-width: 420px) {
	.lj-door-grid { grid-template-columns: repeat(2,1fr); }
	.lj-budget-grid { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: no-preference) {
	.lj-door.is-open a { transition: transform .18s ease, filter .18s ease; }
	.lj-door.is-open a:hover { transform: translateY(-4px); filter: brightness(1.08); }
	.lj-door.is-open .lj-door-icon { animation: lj-star-glow 3.1s ease-in-out infinite; }
	@keyframes lj-star-glow { 50% { filter: drop-shadow(0 0 12px rgba(233,189,91,.9)); transform: scale(1.07); } }
}

@media print {
	.lj-site-header, .lj-site-footer, .lj-parent-actions, .lj-test-banner { display: none !important; }
	body.lj-site { color: #000; background: #fff; font-size: 10pt; }
	body.lj-site::before { display: none; }
	.lj-parent-hero { padding: 1cm 0; color: #000; background: #fff; }
	.lj-parent-hero > p:not(.lj-kicker) { color: #333; }
	.lj-parent-hero .lj-kicker { color: #555; }
	.lj-section { margin: 1cm auto !important; padding: 0; }
	.lj-parent-days details { break-inside: avoid; background: #fff; }
	.lj-parent-days details[open] .lj-parent-day-grid { display: grid; }
	.lj-parent-days summary { border-bottom: 1px solid #bbb; }
	.lj-check-grid { grid-template-columns: 1fr 1fr; }
	.lj-budget { color: #000; background: #fff; border: 1px solid #aaa; }
	.lj-budget .lj-kicker, .lj-budget-grid strong { color: #000; }
}
