:root{--ink:#112943;--ink-dim:#456078;--cream:#fff9ed;--parchment:#ffefd6;--line:#d8b77c;--gold:#e2b963;--gold-deep:#9e702f;--blue:#125b9b;--blue-dark:#0f3a62;--sky:#c8edff;--shell:1240px;--shadow:0 14px 40px rgba(35,68,91,.15);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;color:var(--ink);font:16px/1.62 'Trebuchet MS',Arial,sans-serif;background:radial-gradient(circle at 10% 0%,#d8f0fc 0,transparent 35%),linear-gradient(#e7f7fc,#fff8ee 580px,#e7f5f7);min-width:320px}img{max-width:100%;display:block}a{color:inherit}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid #1e84db;outline-offset:4px}h1,h2,h3,h4,.display,.serif{font-family:Georgia,'Times New Roman',serif}h1,h2,h3{line-height:1.14}h1{font-size:clamp(2.25rem,5vw,4.6rem)}h2{font-size:clamp(1.9rem,3vw,3rem)}h3{font-size:1.34rem}p{margin:0 0 1rem}.container{width:min(calc(100% - 44px),var(--shell));margin-inline:auto}.skip-link{position:absolute;top:-80px;left:16px;z-index:1000;padding:11px 16px;background:#fff;color:#111}.skip-link:focus{top:12px}.kicker{text-transform:uppercase;font-size:.76rem;letter-spacing:.18em;font-weight:800;color:#875c25}.eyebrow{display:inline-flex;align-items:center;gap:8px;background:#fff9e8e8;border:1px solid #ceae75;color:#845a27;font-weight:800;border-radius:999px;padding:6px 13px;font-size:.76rem;text-transform:uppercase;letter-spacing:.09em}.eyebrow:before{content:'✦';color:#b28032}.gold-line{height:2px;width:122px;margin:13px auto 18px;background:linear-gradient(90deg,transparent,var(--gold-deep),transparent)}.lead{font-size:1.1rem;max-width:700px;color:#38516a}.muted{color:var(--ink-dim)}.fine{font-size:.84rem}.divider{border:0;border-top:1px solid #dfc9a9;margin:2rem 0}
/* NAVIGATION */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,249,236,.97);box-shadow:0 2px 17px #0b314027;border-bottom:2px solid #d4ad70;backdrop-filter:blur(14px)}.header-inner{width:min(calc(100% - 36px),1390px);margin:auto;min-height:80px;display:flex;align-items:center;gap:18px}.brand{display:flex;align-items:center;flex:0 0 auto;text-decoration:none}.brand img{width:clamp(198px,20vw,256px);height:auto}.desktop-nav{display:flex;align-items:center;justify-content:center;gap:clamp(12px,1.6vw,25px);flex:1;white-space:nowrap}.desktop-nav a{text-decoration:none;text-transform:uppercase;font:700 .82rem Georgia,serif;letter-spacing:.025em;position:relative}.desktop-nav a+ a:before{content:'✦';font-size:.5rem;position:absolute;top:4px;left:-14px;color:#bd914e}.desktop-nav a:hover,.desktop-nav a[aria-current=page]{color:#086fa9}.header-actions{display:flex;align-items:center;gap:10px}.locale-label{display:inline-flex;align-items:center;gap:5px}.locale-label svg{width:17px}.locale-select{background:transparent;color:#102f4c;border:0;font-weight:800;padding:7px 2px;max-width:76px}.header-status{display:inline-flex;white-space:nowrap;border:1px solid #b89968;border-radius:7px;padding:8px 12px;text-decoration:none;background:linear-gradient(#fdfbf4,#e9d8b5);font-weight:800;font-size:.8rem}.header-status:hover{background:#fff}.mobile-toggle{display:none;border:1px solid #d9bb8b;background:#fff8eb;border-radius:8px;padding:9px}.mobile-toggle svg{width:20px;height:20px}.mobile-panel{display:none}.mobile-panel[hidden]{display:none!important}.progress-ribbon{background:#0f385d;color:#f8e1ae;text-align:center;font-size:.76rem;font-weight:700;letter-spacing:.035em;padding:5px 12px}.progress-ribbon span{color:#fff}
/* BUTTONS */
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:47px;padding:10px 21px;text-decoration:none;font-weight:800;border-radius:9px;border:1px solid #ad792d;box-shadow:0 3px 0 #aa7b3855;transition:transform .15s,filter .15s}.button:hover{transform:translateY(-2px);filter:brightness(1.07)}.button-gold{color:#463011;background:linear-gradient(180deg,#fff8dc 0%,#f1ce83 42%,#d9a953 100%);box-shadow:0 3px 0 #a46b2c,0 10px 26px #7b521f3b;font:800 1rem Georgia,serif;text-transform:uppercase;letter-spacing:.05em}.button-blue{background:linear-gradient(180deg,#2d89c4,#0b568f);border-color:#d3b16c;color:#fff;box-shadow:0 3px 0 #0b3d63}.button-ghost{background:#fff7e9;color:#1c4262}.tag{display:inline-block;border-radius:5px;padding:2px 8px;color:white;font-size:.69rem;letter-spacing:.07em;font-weight:800;text-transform:uppercase;background:#155a91}.tag.gold{background:#a67b39}.tag.purple{background:#7862a2}.tag.green{background:#2d795c}
/* HOME HERO */
.hero{position:relative;isolation:isolate;overflow:hidden;min-height:590px;background:radial-gradient(ellipse at 58% 3%,#effaff 0,#c1e6fb 30%,transparent 66%),linear-gradient(135deg,#7eb8da 0%,#b3dff1 40%,#d4f0f6 60%,#72c0e5 100%);border-bottom:4px solid #cba466}.hero::before{content:'';position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 75% 7%,#fff7c7b0 0,transparent 16%),radial-gradient(circle at 32% 70%,#ffffffa3,transparent 35%),linear-gradient(180deg,transparent 64%,#f9f4e3 98%)}.hero::after{content:'';position:absolute;bottom:0;height:120px;left:0;right:0;background:linear-gradient(transparent,#fff8ee)}.hero-inner{width:min(calc(100% - 48px),1320px);margin:auto;min-height:590px;position:relative;display:flex;align-items:center;justify-content:center}.hero-portrait{position:absolute;left:-4%;bottom:0;width:min(35vw,420px);max-height:540px;object-fit:contain;object-position:bottom left;z-index:0;filter:drop-shadow(7px 8px 16px #284d6b40)}.hero-emblem{position:absolute;right:-4%;top:6%;width:min(37vw,500px);z-index:0;filter:drop-shadow(0 13px 26px #1b436b66);opacity:.91}.hero-copy{position:relative;z-index:2;width:min(54%,680px);margin-top:-32px;text-align:center;filter:drop-shadow(0 1px 0 #ffffffa8)}.hero-copy .hero-wordmark{margin:0 auto 7px;width:min(100%,650px);filter:drop-shadow(0 3px 4px #fff9d7d9)}.hero-copy h1{font-size:clamp(1.4rem,2.2vw,2rem);line-height:1.23;text-transform:uppercase;letter-spacing:.055em;margin:0 auto 14px;color:#163f65;text-shadow:0 2px 1px #fff9ec}.hero-copy .subline{font-family:Georgia,serif;font-size:1rem;margin:0 auto 18px;color:#254861}.hero-cta{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.platforms{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;margin-top:19px;font-weight:800;font-size:.8rem;color:#214965}.platforms span{border:1px solid #c7a578;background:#fffaf2ce;border-radius:100px;padding:3px 10px}.concept-note{margin-top:11px;font-size:.74rem;color:#44647a}.hero-leaves{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 35px 56px at 0% 0%,#56904b83,transparent),radial-gradient(ellipse 55px 75px at 100% 100%,#78a86b86,transparent)}
/* FEATURE TILES */
.feature-wrap{position:relative;margin-top:-34px;z-index:3}.feature-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:9px}.feature-tile{min-width:0;display:flex;align-items:center;flex-direction:column;gap:5px;padding:15px 5px 12px;text-decoration:none;background:linear-gradient(135deg,#fffefa,#f6e5c9);border:1px solid #d5b27d;border-radius:12px;box-shadow:0 4px 0 #d0ac7390,0 7px 21px #5c696a21;transition:transform .18s,border-color .18s}.feature-tile svg{width:29px;height:29px;stroke:#185a91;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}.feature-tile span{font:700 .78rem Georgia,serif;text-transform:uppercase;white-space:nowrap}.feature-tile:hover{transform:translateY(-5px);border-color:#bb8237}
/* FEATURE SPOTLIGHT / NEWS */
.section{padding:70px 0}.section.tight{padding:50px 0}.section-title{text-align:center;margin:0 0 30px}.section-title h2{margin:6px 0 12px}.section-title p{margin:auto;max-width:700px;color:var(--ink-dim)}.home-row{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;margin-top:44px}.ornate-panel{position:relative;background:linear-gradient(#fffdf7,#fff2df);border:1px solid #ceb18b;border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.ornate-panel::after{content:'';position:absolute;inset:6px;border:1px solid #cfa96255;border-radius:10px;pointer-events:none}.spotlight{min-height:350px;background:linear-gradient(100deg,#153b63 0%,#154c798c 52%,transparent 100%),url('../images/festival-concept.webp') center/cover;display:flex;flex-direction:column;justify-content:flex-end;padding:38px;color:#fff}.spotlight h2{font-size:2.2rem;margin:8px 0}.spotlight p{max-width:390px}.spotlight .tag{align-self:flex-start}.spotlight .button{align-self:flex-start;margin-top:9px}.news-box{padding:20px 24px}.box-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;border-bottom:1px solid #d8b783;padding-bottom:10px}.box-heading h2{font-size:1.5rem;margin:0}.box-heading a{font-size:.8rem;font-weight:800}.news-list{list-style:none;margin:0;padding:0}.news-list li{padding:13px 0;border-bottom:1px solid #dfc9a9;display:flex;gap:12px;align-items:flex-start}.news-list li:last-child{border-bottom:0}.news-thumb{width:72px;height:67px;border-radius:7px;background:#add3e6;object-fit:cover;flex:none}.news-body{flex:1;min-width:0}.news-body a{font-weight:800;text-decoration:none;line-height:1.3;display:block;margin-top:4px}.news-body a:hover{text-decoration:underline}.news-date{font-size:.71rem;color:#667786}.news-meta{display:flex;align-items:center;gap:8px;justify-content:space-between}.news-summary{font-size:.83rem;color:#4b5e71;margin:5px 0 0}
/* CARDS AND INNER PAGE */
.three-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.two-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.info-card{background:#fffbf2;border:1px solid #dbc298;border-radius:13px;padding:24px;box-shadow:0 7px 30px #2b517b0e}.info-card h3{margin:6px 0 10px}.info-card p{color:#52677c}.info-card svg{width:30px;height:30px;stroke:#125c96;fill:none;stroke-width:1.9}.info-card .tag{margin:2px 0 7px}.info-card a{font-weight:800;color:#07699f}.page-hero{position:relative;overflow:hidden;background:linear-gradient(100deg,#e6f7ff,#bddcee 70%,#87c4e5);border-bottom:3px solid #d9bd85;padding:72px 0 65px}.page-hero .container{position:relative;z-index:1}.page-hero:after{content:'';position:absolute;right:-50px;top:-180px;background:url('../images/emblem-small.webp') center/contain no-repeat;width:min(45vw,480px);height:600px;opacity:.20}.page-hero h1{margin:13px 0 15px;max-width:900px}.page-hero .lead{margin:0}.page-hero p.fine{margin:14px 0 0;color:#577087}.content-section{padding:55px 0}.content-section>.container{max-width:1120px}.strip{padding:28px 0;background:#153f66;color:#fff}.strip-inner{display:flex;justify-content:space-between;align-items:center;gap:20px}.strip h2{margin:0;font-size:1.55rem}.strip p{margin:0;color:#d9eafa}.art-frame{overflow:hidden;border-radius:16px;border:2px solid #d9b97b;background:#fff5e5;box-shadow:var(--shadow)}.art-frame img{width:100%;height:300px;object-fit:cover}.art-frame figcaption{padding:12px 14px;font-size:.76rem;color:#556978}.story-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:36px;align-items:center}.story-layout h2{margin:0 0 18px}.list-plain{padding-left:24px}.list-plain li{margin:.6rem 0}.status-chip{display:inline-block;padding:4px 10px;border:1px solid #c6ab76;border-radius:5px;background:#fff3d9;color:#795827;font-size:.75rem;font-weight:800}.media-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}.media-tile{border:1px solid #dac29c;background:white;border-radius:13px;overflow:hidden;box-shadow:0 8px 18px #1e375a12}.media-art{height:260px;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#d5edff,#396d96);padding:22px}.media-art img{max-height:100%;width:auto;object-fit:contain}.media-tile figcaption{font-size:.82rem;padding:13px 17px;color:#4a6175}.media-tile.wide{grid-column:span 2}.media-tile.wide .media-art{height:335px}.media-tile.wide .media-art img{height:100%;width:100%;object-fit:contain}
/* legal */
.legal-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:34px}.legal-toc{align-self:start;position:sticky;top:108px;padding:20px;background:#fff7e8;border:1px solid #dbbc87;border-radius:12px}.legal-toc strong{display:block;margin-bottom:12px}.legal-toc ul{list-style:none;margin:0;padding:0}.legal-toc li{margin:6px 0}.legal-toc a{text-decoration:none;font-size:.88rem;color:#32556e}.legal-toc a:hover{text-decoration:underline}.legal-body{max-width:810px;background:#fffdfa;border:1px solid #e0cdb1;border-radius:13px;padding:clamp(22px,4vw,44px);box-shadow:0 12px 27px #1c426518}.legal-body h2{font-size:1.45rem;margin:36px 0 10px;scroll-margin-top:100px}.legal-body h2:first-child{margin-top:0}.legal-body p,.legal-body li{color:#394f60}.legal-body a{color:#0c6395}.legal-meta{border-bottom:1px solid #d7c6a6;padding-bottom:16px;margin-bottom:22px}.legal-meta strong{color:#6a4a1e}.legal-language-note{display:none;color:#805329;background:#ffefd7;border:1px solid #d9b27d;padding:9px 13px;border-radius:7px;margin:0 0 18px}.legal-language-note.visible{display:block}
/* footer */
.site-footer{margin-top:55px;background:linear-gradient(180deg,#194d76,#0c304d);color:#eaf6ff;border-top:5px solid #cba66d}.footer-inner{padding:42px 0 25px;display:grid;grid-template-columns:1.5fr .75fr .75fr;gap:34px}.footer-brand{display:flex;align-items:center;gap:14px}.footer-brand img{width:78px}.footer-brand strong{font:1.5rem Georgia,serif}.footer-brand small{display:block;color:#c0d8e8}.footer-inner h3{font:700 1rem Georgia,serif;margin:0 0 12px}.footer-inner a{display:block;text-decoration:none;color:#e4eff8;margin:6px 0;font-size:.89rem}.footer-inner a:hover{text-decoration:underline}.footer-inner p{color:#c8ddeb;font-size:.87rem;margin:14px 0 0}.footer-bottom{border-top:1px solid #b4cfe351;padding:17px 0;font-size:.78rem;color:#bdcfe3;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.footer-bottom a{color:inherit}.decorative-stars{text-align:center;letter-spacing:1.2em;color:#d3a861;margin:6px auto 18px;font-size:.7rem}.no-js{background:#fff5d0;padding:10px;text-align:center}
@media(max-width:1190px){.desktop-nav{gap:11px}.desktop-nav a{font-size:.74rem}.desktop-nav a+a:before{left:-9px}.brand img{width:205px}.header-actions{gap:6px}.header-inner{gap:12px}}
@media(max-width:1010px){.desktop-nav,.header-status{display:none}.header-inner{min-height:68px}.header-actions{margin-left:auto}.mobile-toggle{display:inline-flex}.mobile-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:12px 22px 20px;background:#fff9ee;border-top:1px solid #d9b989}.mobile-panel a{padding:11px 12px;text-align:center;text-decoration:none;font:700 .84rem Georgia,serif;border-bottom:1px solid #eadac0}.hero-portrait{width:35vw;left:-8%}.hero-emblem{width:38vw;right:-7%}.hero-copy{width:59%}.feature-grid{grid-template-columns:repeat(4,1fr)}.feature-wrap{margin-top:-10px}.media-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:730px){.container{width:min(calc(100% - 28px),var(--shell))}.header-inner{width:calc(100% - 24px)}.brand img{width:192px}.mobile-panel{grid-template-columns:repeat(2,1fr)}.hero{min-height:630px}.hero-inner{min-height:630px;width:calc(100% - 24px);align-items:flex-start}.hero-emblem{width:205px;right:-75px;top:30px;opacity:.4}.hero-portrait{width:220px;max-height:315px;left:-44px;bottom:5px;opacity:.64}.hero-copy{margin-top:24px;width:100%;padding:0 8px}.hero-copy .hero-wordmark{width:min(95%,450px)}.hero-copy h1{font-size:1.55rem;max-width:380px}.hero-copy .subline{max-width:400px}.hero-cta{margin-top:18px}.hero .button{width:min(100%,260px)}.hero .button-ghost{display:none}.platforms{margin-top:14px}.concept-note{max-width:270px;margin-inline:auto}.feature-wrap{margin-top:-19px}.feature-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.feature-tile{padding:11px 1px 10px}.feature-tile svg{width:23px;height:23px}.feature-tile span{font-size:.62rem}.home-row,.three-grid,.two-grid,.story-layout{grid-template-columns:1fr}.home-row{gap:16px}.news-box{padding:17px}.spotlight{min-height:300px}.section{padding:42px 0}.content-section{padding:35px 0}.page-hero{padding:45px 0}.strip-inner{flex-direction:column;align-items:flex-start}.media-grid{grid-template-columns:1fr}.media-tile.wide{grid-column:span 1}.legal-layout{grid-template-columns:1fr;gap:15px}.legal-toc{position:static}.legal-toc ul{columns:2}.legal-body{padding:24px}.footer-inner{grid-template-columns:1fr 1fr;gap:24px}.footer-inner>div:first-child{grid-column:span 2}.footer-bottom{font-size:.7rem}}
@media(max-width:400px){.brand img{width:155px}.hero-copy h1{font-size:1.3rem}.hero-copy .hero-wordmark{width:100%}.hero .button{min-height:41px}.feature-tile span{font-size:.54rem}.locale-select{max-width:62px}.footer-brand img{width:66px}.mobile-panel{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* R1.1 CSP-safe utility classes; avoids inline style attributes. */
.mt-20{margin-top:20px}.mt-22{margin-top:22px}.mt-24{margin-top:24px}.mt-25{margin-top:25px}.mt-28{margin-top:28px}
.news-date-line{margin:8px 0 4px}.news-card-title{font-size:1.6rem;margin:3px 0 12px}
/* R1.2 HERO COMPOSITION CORRECTION
   The original R1.1 hero treated the transparent emblem like a background illustration,
   which overwhelmed the page at wide desktop sizes. Keep the layered/real HTML layout,
   but use the castle scene as soft environmental art and keep both side illustrations
   outside the central copy column. */
.hero{min-height:560px;background:radial-gradient(ellipse at 50% 6%,#f7fdff 0,#d9f1fb 32%,transparent 62%),linear-gradient(135deg,#87bddb 0%,#c9eaf5 42%,#e8f5f2 65%,#91cbe7 100%)}
.hero::before{z-index:-1;background:radial-gradient(circle at 72% 10%,#fff8cfb8 0,transparent 16%),radial-gradient(circle at 28% 72%,#ffffffb8,transparent 33%),linear-gradient(180deg,transparent 62%,#fff9ed 99%)}
.hero::after{height:105px;background:linear-gradient(transparent,#fff8ee)}
.hero-inner{width:min(calc(100% - 48px),1360px);min-height:560px;align-items:center;justify-content:center}
.hero-portrait{left:-18px;bottom:-18px;width:clamp(280px,27vw,390px);max-height:none;object-fit:contain;opacity:.98;filter:drop-shadow(9px 12px 22px #274f6a35);-webkit-mask-image:radial-gradient(ellipse 78% 88% at 48% 56%,#000 58%,transparent 100%);mask-image:radial-gradient(ellipse 78% 88% at 48% 56%,#000 58%,transparent 100%)}
.hero-scene{position:absolute;right:-20px;top:-55px;width:clamp(390px,31vw,480px);height:640px;object-fit:cover;object-position:50% 32%;z-index:0;opacity:.66;filter:saturate(.83) contrast(.96) brightness(1.08) drop-shadow(0 12px 25px #244a6760);-webkit-mask-image:radial-gradient(ellipse 78% 74% at 52% 49%,#000 50%,transparent 100%);mask-image:radial-gradient(ellipse 78% 74% at 52% 49%,#000 50%,transparent 100%)}
.hero-copy{width:min(48%,620px);margin-top:-12px;padding:10px 0;text-align:center;filter:drop-shadow(0 1px 0 #ffffffd9)}
.hero-copy .hero-wordmark{width:min(100%,520px);margin:0 auto 8px;filter:drop-shadow(0 3px 4px #fff9d7d9)}
.hero-copy h1{font-size:clamp(1.55rem,1.85vw,2rem);max-width:590px;margin:0 auto 12px;letter-spacing:.045em}
.hero-copy .subline{max-width:570px;margin:0 auto 16px;font-size:.98rem}
.hero-cta{gap:10px}.platforms{margin-top:16px}.concept-note{margin-top:8px}
.feature-wrap{margin-top:-28px}
@media(max-width:1120px){.hero-portrait{left:-55px;width:330px}.hero-scene{right:-65px;width:400px;opacity:.55}.hero-copy{width:min(56%,590px)}.hero-copy .hero-wordmark{width:min(100%,480px)}}
@media(max-width:1010px){.hero-portrait{left:-75px;width:310px}.hero-scene{right:-75px;width:360px}.hero-copy{width:min(60%,560px)}.feature-wrap{margin-top:-14px}}
@media(max-width:730px){.hero{min-height:650px}.hero-inner{min-height:650px;width:calc(100% - 22px);align-items:flex-start}.hero-copy{width:100%;margin-top:22px;padding:0 8px}.hero-copy .hero-wordmark{width:min(94%,390px);margin-bottom:5px}.hero-copy h1{font-size:1.42rem;max-width:390px}.hero-copy .subline{max-width:390px;font-size:.93rem}.hero-portrait{left:-78px;bottom:-10px;width:245px;opacity:.72}.hero-scene{right:-86px;top:auto;bottom:-20px;width:330px;height:390px;opacity:.42;object-position:50% 28%}.hero .button{width:min(100%,250px)}.platforms{margin-top:13px}.concept-note{max-width:280px;margin:7px auto 0}.feature-wrap{margin-top:-18px}}
@media(max-width:430px){.hero{min-height:625px}.hero-inner{min-height:625px}.hero-copy{margin-top:18px}.hero-copy .hero-wordmark{width:min(96%,345px)}.hero-copy h1{font-size:1.25rem}.hero-portrait{left:-85px;width:220px}.hero-scene{right:-105px;width:300px;height:355px}.hero-copy .eyebrow{font-size:.65rem;padding:5px 10px}}

/* R1.4 HERO ASSET / COMPOSITION FIX
   User feedback: hero should show students + castle art only, without the
   oversized logo artwork or emblem-like masked scene. Keep the header logo as
   the primary branding and simplify the hero copy block. */
.hero{min-height:500px;background:radial-gradient(ellipse at 50% 6%,#f7fdff 0,#d9f1fb 28%,transparent 60%),linear-gradient(135deg,#88bfdc 0%,#ccebf5 42%,#eef8f4 66%,#93cde7 100%)}
.hero::before{background:radial-gradient(circle at 72% 10%,#fff8cf9a 0,transparent 14%),radial-gradient(circle at 28% 72%,#ffffffb0,transparent 30%),linear-gradient(180deg,transparent 58%,#fff9ed 99%)}
.hero::after{height:88px;background:linear-gradient(transparent,#fff8ee)}
.hero-inner{width:min(calc(100% - 48px),1360px);min-height:500px;align-items:center;justify-content:center}
.hero-portrait{left:0;bottom:-10px;width:clamp(250px,24vw,360px);object-fit:contain;object-position:bottom left;opacity:.94;filter:drop-shadow(8px 10px 18px #274f6a26);-webkit-mask-image:linear-gradient(90deg,#000 0 82%,transparent 100%),linear-gradient(180deg,#000 0 84%,transparent 100%);mask-image:linear-gradient(90deg,#000 0 82%,transparent 100%),linear-gradient(180deg,#000 0 84%,transparent 100%)}
.hero-scene{position:absolute;right:0;top:0;width:clamp(400px,40vw,760px);height:100%;object-fit:cover;object-position:58% 34%;z-index:0;opacity:.43;filter:saturate(.9) contrast(.98) brightness(1.04);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 28%,#000 85%,transparent 100%),linear-gradient(180deg,transparent 0,#000 14%,#000 86%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 28%,#000 85%,transparent 100%),linear-gradient(180deg,transparent 0,#000 14%,#000 86%,transparent 100%)}
.hero-copy{width:min(44%,560px);margin-top:0;padding:8px 0 0;text-align:left;filter:none}
.hero-game-name{margin:8px 0 10px;font:700 clamp(2rem,3.6vw,3.2rem) Georgia,'Times New Roman',serif;line-height:1;color:#163f65;text-shadow:0 2px 0 #fff9ec,0 0 18px #ffffff90;letter-spacing:.01em}
.hero-copy h1{font-size:clamp(1.45rem,1.9vw,2rem);max-width:540px;margin:0 0 10px;letter-spacing:.04em;text-align:left}
.hero-copy .gold-line{margin:10px auto 16px}
.hero-copy .subline{max-width:520px;margin:0 0 16px;font-size:1rem;text-align:left}
.hero-cta,.platforms{justify-content:flex-start}
.concept-note{margin-top:8px;text-align:left}
.feature-wrap{margin-top:-18px}
.footer-brand img{width:78px;height:78px;aspect-ratio:1/1;object-fit:contain;flex:0 0 78px}
@media(max-width:1180px){.hero-copy{width:min(48%,540px)}.hero-scene{width:clamp(360px,38vw,620px);opacity:.38}.hero-portrait{width:clamp(230px,22vw,320px)}}
@media(max-width:1010px){.hero{min-height:520px}.hero-inner{min-height:520px}.hero-copy{width:min(56%,520px)}.hero-scene{right:-40px;width:430px}.hero-portrait{left:-30px;width:280px}.feature-wrap{margin-top:-10px}}
@media(max-width:730px){.hero{min-height:610px}.hero-inner{min-height:610px;width:calc(100% - 22px);align-items:flex-start}.hero-copy{width:100%;margin-top:24px;padding:0 8px;text-align:center}.hero-game-name{font-size:clamp(1.9rem,8vw,2.5rem);margin:8px auto 10px}.hero-copy h1,.hero-copy .subline,.concept-note{text-align:center;max-width:390px;margin-left:auto;margin-right:auto}.gold-line{margin:12px auto 16px}.hero-cta,.platforms{justify-content:center}.hero-portrait{left:-56px;bottom:-4px;width:215px;opacity:.68}.hero-scene{right:-30px;top:auto;bottom:0;width:300px;height:360px;opacity:.32;object-position:56% 32%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%,#000 84%,transparent 100%),linear-gradient(180deg,transparent 0,#000 16%,#000 84%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 22%,#000 84%,transparent 100%),linear-gradient(180deg,transparent 0,#000 16%,#000 84%,transparent 100%)}.feature-wrap{margin-top:-16px}}
@media(max-width:430px){.hero{min-height:600px}.hero-inner{min-height:600px}.hero-game-name{font-size:1.8rem}.hero-copy h1{font-size:1.2rem}.hero-portrait{left:-70px;width:190px}.hero-scene{right:-70px;width:250px;height:320px}}
\n/* R1.5 SINGLE-FILE HERO BANNER\n   Desktop and mobile each use one precomposed banner file. No separate student,\n   castle, emblem, or wordmark image is positioned by CSS. Desktop preserves the\n   complete 1920x720 artwork by matching the hero's aspect ratio to the asset. */\n.hero{position:relative;isolation:isolate;overflow:hidden;min-height:0;aspect-ratio:8/3;background:#dceff7;border-bottom:4px solid #cba466}\n.hero::before,.hero::after,.hero-leaves{display:none!important}\n.hero-banner{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;overflow:hidden}\n.hero-banner img{display:block;width:100%;height:100%;object-fit:contain;object-position:center center}\n.hero-inner{position:relative;z-index:2;width:min(calc(100% - 48px),1360px);height:100%;min-height:0;margin:auto;display:flex;align-items:center;justify-content:center}\n.hero-copy{width:min(38vw,560px);margin:0 0 0 5%;padding:0;text-align:center;filter:none}\n.hero-game-name{margin:4px auto 9px;font:700 clamp(2rem,3.3vw,3rem) Georgia,'Times New Roman',serif;line-height:1;color:#163f65;text-shadow:0 2px 0 #fff9ec,0 0 20px #ffffffd0;letter-spacing:.01em}\n.hero-copy h1{font-size:clamp(1.3rem,1.65vw,1.8rem);max-width:540px;margin:0 auto 10px;letter-spacing:.04em;text-align:center;text-shadow:0 1px 1px #fff}\n.hero-copy .subline{max-width:520px;margin:0 auto 15px;font-size:.96rem;text-align:center;text-shadow:0 1px 1px #fff}\n.hero-copy .gold-line{margin:10px auto 15px}\n.hero-cta,.platforms{justify-content:center}\n.concept-note{margin:7px auto 0;text-align:center}\n.feature-wrap{margin-top:-22px}\n.footer-brand img{width:78px;height:78px;aspect-ratio:1/1;object-fit:contain;flex:0 0 78px}\n@media(max-width:1120px){.hero-copy{width:min(42vw,520px);margin-left:4%}.hero-game-name{font-size:clamp(1.9rem,3vw,2.6rem)}.hero-copy h1{font-size:clamp(1.2rem,1.6vw,1.6rem)}}\n@media(max-width:1010px){.hero-copy{width:min(46vw,500px);margin-left:3%}.feature-wrap{margin-top:-12px}}\n@media(max-width:730px){.hero{aspect-ratio:3/4}.hero-banner img{object-fit:contain}.hero-inner{width:calc(100% - 26px);height:100%;align-items:flex-start}.hero-copy{width:100%;margin:22px 0 0;padding:0 10px;text-align:center}.hero-game-name{font-size:clamp(1.9rem,8vw,2.5rem);margin:5px auto 8px}.hero-copy h1{font-size:1.3rem;max-width:390px;margin-inline:auto}.hero-copy .subline{max-width:380px;margin-inline:auto}.hero .button{width:min(100%,250px)}.platforms{margin-top:12px}.concept-note{max-width:280px}.feature-wrap{margin-top:-14px}}\n@media(max-width:430px){.hero-copy{margin-top:16px}.hero-game-name{font-size:1.75rem}.hero-copy h1{font-size:1.15rem}.hero-copy .subline{font-size:.9rem}.hero-copy .eyebrow{font-size:.62rem;padding:5px 9px}}\n

/* R1.6 USER-SUPPLIED HERO ASSET REBUILD
   Desktop: supplied Desktop_16x10 background + transparent three-student cutout.
   Mobile: supplied Mobile_9x21 background; student cutout intentionally hidden.
   All logo/copy/buttons remain live overlay content. The bottom dissolves into the
   parchment body instead of ending at a hard rectangular image edge. */
.hero{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:auto;min-height:0;height:clamp(610px,43vw,760px);background:#dceff7;border-bottom:0}
.hero::before,.hero::after,.hero-leaves,.hero-banner{display:none!important}
.hero-backdrop{position:absolute;inset:0;z-index:0;display:block;overflow:hidden}
.hero-backdrop img{display:block;width:100%;height:auto;min-height:100%;object-fit:cover;object-position:center top}
.hero-students{position:absolute;z-index:2;left:-3.5%;bottom:-1%;width:min(58vw,980px);height:auto;object-fit:contain;object-position:left bottom;filter:drop-shadow(0 18px 28px rgba(32,55,81,.18));pointer-events:none}
.hero-bottom-dither{position:absolute;z-index:4;left:0;right:0;bottom:-1px;height:150px;pointer-events:none;background:linear-gradient(to bottom,rgba(255,249,237,0) 0%,rgba(255,249,237,.08) 22%,rgba(255,249,237,.35) 55%,rgba(255,249,237,.82) 82%,#fff9ed 100%)}
.hero-bottom-dither::after{content:'';position:absolute;inset:22% 0 0;background-image:radial-gradient(circle,rgba(255,249,237,.72) 0 1px,transparent 1.25px);background-size:5px 5px;opacity:.48;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 72%);mask-image:linear-gradient(to bottom,transparent,#000 72%)}
.hero-inner{position:relative;z-index:3;width:min(calc(100% - 48px),1390px);height:100%;min-height:0;margin:auto;display:flex;align-items:center;justify-content:flex-end}
.hero-copy{position:relative;width:min(50%,700px);margin:-28px 2.5% 0 0;padding:28px 18px 34px;text-align:center;filter:none}
.hero-copy::before{content:'';position:absolute;z-index:-1;inset:-34px -54px -42px;background:radial-gradient(ellipse at center,rgba(245,252,255,.82) 0%,rgba(245,252,255,.56) 45%,rgba(245,252,255,0) 76%);pointer-events:none}
.hero-copy .hero-wordmark{display:block;width:min(100%,640px);height:auto;margin:0 auto 8px;filter:drop-shadow(0 2px 2px rgba(255,255,255,.85)) drop-shadow(0 4px 10px rgba(20,57,86,.12))}
.hero-copy h1{font-size:clamp(1.35rem,1.85vw,2rem);line-height:1.22;max-width:610px;margin:0 auto 10px;color:#173f63;letter-spacing:.045em;text-transform:uppercase;text-align:center;text-shadow:0 1px 0 #fff,0 2px 10px rgba(255,255,255,.9)}
.hero-copy .gold-line{margin:10px auto 15px}
.hero-copy .subline{max-width:560px;margin:0 auto 16px;color:#244a68;font:1rem Georgia,'Times New Roman',serif;text-align:center;text-shadow:0 1px 0 #fff,0 1px 8px rgba(255,255,255,.9)}
.hero-cta,.platforms{justify-content:center}.platforms{margin-top:15px}.concept-note{margin:7px auto 0;text-align:center;color:#365d76;text-shadow:0 1px #fff}
.feature-wrap{position:relative;z-index:6;margin-top:-54px}
.feature-grid{gap:8px}
.feature-tile.feature-art-tile{padding:8px 4px 10px;background:linear-gradient(180deg,#fffdf7,#f7ead5);border-color:#d6b47c;min-height:118px;gap:0}
.feature-art{display:block;width:min(78px,75%);height:auto;aspect-ratio:1/1;object-fit:contain;margin:-8px auto -5px;filter:drop-shadow(0 4px 4px rgba(91,64,28,.14))}
.feature-tile.feature-art-tile span{position:relative;z-index:2;font-size:.76rem}
.footer-brand img{width:78px;height:78px;aspect-ratio:1/1;object-fit:contain;flex:0 0 78px}
@media(max-width:1180px){.hero{height:clamp(590px,49vw,700px)}.hero-students{left:-8%;width:min(61vw,850px)}.hero-copy{width:min(52%,620px);margin-right:1%}.hero-copy .hero-wordmark{width:min(100%,560px)}.feature-wrap{margin-top:-46px}}
@media(max-width:1010px){.hero{height:640px}.hero-students{left:-15%;width:670px;opacity:.94}.hero-copy{width:min(58%,560px);margin-right:0}.feature-grid{grid-template-columns:repeat(4,1fr)}.feature-wrap{margin-top:-38px}}
@media(max-width:730px){.hero{height:clamp(760px,184vw,940px);min-height:760px;background:#c8e7f6}.hero-backdrop img{width:100%;height:auto;min-height:100%;object-fit:cover;object-position:center top}.hero-students{display:none!important}.hero-bottom-dither{height:175px}.hero-inner{width:calc(100% - 24px);height:100%;align-items:flex-start;justify-content:center}.hero-copy{width:100%;max-width:460px;margin:26px 0 0;padding:14px 8px 20px}.hero-copy::before{inset:-24px -30px -28px;background:radial-gradient(ellipse at center,rgba(246,253,255,.78) 0%,rgba(246,253,255,.50) 46%,rgba(246,253,255,0) 75%)}.hero-copy .hero-wordmark{width:min(94%,410px);margin-bottom:6px}.hero-copy h1{font-size:clamp(1.25rem,5.8vw,1.55rem);max-width:390px}.hero-copy .subline{font-size:.94rem;max-width:360px}.hero .button{width:min(100%,250px)}.hero .button-ghost{display:none}.platforms{margin-top:12px;gap:6px}.platforms span{font-size:.7rem}.concept-note{max-width:280px}.feature-wrap{margin-top:-48px}.feature-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.feature-tile.feature-art-tile{min-height:106px;padding:4px 1px 8px}.feature-art{width:min(68px,82%);margin:-5px auto -4px}.feature-tile.feature-art-tile span{font-size:.6rem}}
@media(max-width:430px){.hero{height:820px;min-height:820px}.hero-copy{margin-top:18px}.hero-copy .hero-wordmark{width:min(96%,360px)}.hero-copy h1{font-size:1.18rem}.hero-copy .subline{font-size:.9rem}.feature-wrap{margin-top:-42px}.feature-art{width:min(62px,84%)}.feature-tile.feature-art-tile span{font-size:.54rem}}

/* R1.7 FULL FEATURE BUTTON ART
   Use the complete supplied top-row button assets (badge + icon + plaque + name)
   as the clickable controls. No extra HTML card or duplicate label. */
.feature-grid.feature-art-buttons{align-items:end;gap:4px}
.feature-art-button{display:flex;align-items:flex-end;justify-content:center;min-width:0;padding:0;margin:0;background:none;border:0;border-radius:0;box-shadow:none;text-decoration:none;transition:transform .16s ease,filter .16s ease}
.feature-art-button img{display:block;width:100%;height:auto;max-height:150px;object-fit:contain;filter:drop-shadow(0 5px 6px rgba(78,55,25,.13))}
.feature-art-button:hover{transform:translateY(-5px);filter:brightness(1.04)}
.feature-art-button:focus-visible{outline:3px solid #1e84db;outline-offset:3px;border-radius:8px}
@media(max-width:1010px){.feature-grid.feature-art-buttons{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 7px}.feature-art-button img{max-height:140px}}
@media(max-width:730px){.feature-grid.feature-art-buttons{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}.feature-art-button img{max-height:none;width:100%}.feature-wrap{margin-top:-42px}}
@media(max-width:430px){.feature-grid.feature-art-buttons{gap:2px}.feature-wrap{margin-top:-36px}}

/* R1.8 JOURNEY CARD ART REPLACEMENT
   Uses the user-supplied festival artwork as the full card background.
   The dark overlay is restricted to the live-text side so the festival scene
   remains colorful and readable on the right. */
.spotlight{
  min-height:350px;
  background-image:
    linear-gradient(90deg,rgba(12,45,76,.92) 0%,rgba(12,45,76,.84) 36%,rgba(12,45,76,.48) 57%,rgba(12,45,76,.12) 76%,rgba(12,45,76,.02) 100%),
    url('../images/journey-festival.webp');
  background-position:48% 50%;
  background-size:cover;
  background-repeat:no-repeat;
}
.spotlight h2,.spotlight p{ text-shadow:0 2px 5px rgba(7,28,48,.72); }
@media(max-width:730px){
  .spotlight{min-height:310px;background-position:45% 50%;padding:30px 26px}
}



/* R1.12 — natural one-shot cherry blossom canvas gust. */
.hero{position:relative}
.sakura-gust-canvas{position:absolute;inset:0;z-index:4;display:block;width:100%;height:100%;pointer-events:none;contain:strict}
@media(prefers-reduced-motion:reduce){.sakura-gust-canvas{display:none!important}}

/* R1.13 — keep decorative divider centered in section headings. */
.section-title .gold-line{margin:13px auto 18px}

/* R1.14 MEDIA + NEWS ART UPDATE */
.media-feature .media-art{padding:0;background:#d9ebf5}
.media-feature .media-art img{width:100%;height:100%;max-height:none;object-fit:cover;object-position:center 48%}
@media(max-width:730px){.media-feature .media-art{height:280px}}

/* R1.15 — unified inner-page banner artwork
   All subpages use the same message-board environmental treatment as News.
   This replaces the old oversized emblem decoration globally on .page-hero. */
.page-hero{
  background:linear-gradient(100deg,#e7f6fc 0%,#e8f5f5 48%,#f4eadc 100%);
}
.page-hero::after{
  content:'';
  position:absolute;
  z-index:0;
  right:0;
  top:0;
  width:min(62vw,920px);
  height:100%;
  background:url('../images/news-message-board.webp') right center/cover no-repeat;
  opacity:.62;
  pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 10%,rgba(0,0,0,.62) 36%,#000 58%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 10%,rgba(0,0,0,.62) 36%,#000 58%,#000 100%);
}
.page-hero .container{position:relative;z-index:1}
.page-hero h1,.page-hero .lead{max-width:min(58%,720px)}
@media(max-width:1010px){
  .page-hero::after{width:min(70vw,720px);opacity:.50}
  .page-hero h1,.page-hero .lead{max-width:62%}
}
@media(max-width:730px){
  .page-hero::after{
    right:-24%;
    width:95vw;
    opacity:.28;
    background-position:63% center;
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.16) 28%,#000 68%,#000 100%);
    mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.16) 28%,#000 68%,#000 100%);
  }
  .page-hero h1,.page-hero .lead{max-width:78%}
}

/* R1.16 full-site localization typography and locale-aware layout. */
html[lang="ja"] body{font-family:"Noto Sans CJK JP","Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.75}
html[lang="ja"] h1,html[lang="ja"] h2,html[lang="ja"] h3,html[lang="ja"] h4,html[lang="ja"] .display,html[lang="ja"] .serif,html[lang="ja"] .button-gold,html[lang="ja"] .footer-brand strong{font-family:"Noto Serif CJK JP","Yu Mincho","Hiragino Mincho ProN",serif;line-height:1.34;letter-spacing:.015em}
html[lang="ja"] .desktop-nav a,html[lang="ja"] .mobile-panel a{font-family:"Noto Serif CJK JP","Yu Mincho","Hiragino Mincho ProN",serif;text-transform:none;letter-spacing:.035em}html[lang="ja"] .eyebrow,html[lang="ja"] .kicker,html[lang="ja"] .tag{text-transform:none;letter-spacing:.045em}
html[lang="ja"] p,html[lang="ja"] li,html[lang="ja"] .legal-body,html[lang="ja"] .page-hero{line-break:strict;word-break:normal;overflow-wrap:anywhere}
html[lang="ja"] .page-hero h1{font-size:clamp(2.25rem,4.6vw,4.4rem)}
html[lang="ja"] .hero-copy h1{letter-spacing:.025em}
html[lang="es"] body,html[lang="de"] body{hyphens:auto}
html[lang="es"] .desktop-nav a{font-size:.78rem}
html[lang="de"] .desktop-nav{gap:clamp(8px,1.25vw,20px)}
html[lang="de"] .desktop-nav a{font-size:.75rem;letter-spacing:.01em}
html[lang="de"] .page-hero h1,html[lang="es"] .page-hero h1{overflow-wrap:anywhere}
html[lang="de"] .legal-toc a,html[lang="es"] .legal-toc a{overflow-wrap:anywhere}
@media(max-width:1190px){html[lang="de"] .desktop-nav a{font-size:.7rem}html[lang="es"] .desktop-nav a{font-size:.72rem}}
