:root {
    --landing-ink: #4b2b17;
    --landing-rust: #8d3f21;
    --landing-gold: #b67b27;
    --landing-gold-light: #f2d188;
    --landing-paper: #f5e4b8;
    --landing-paper-pale: #fff4d4;
    --landing-sea: #155861;
    --landing-sea-dark: #0d3c43;
    --landing-line: #9f6c31;
}

body.public-landing,
body.public-auth,
body.account-vault-game:not(.has-game-cockpit) {
    min-width: 320px;
    color: var(--landing-ink);
    background: #d8ba7a;
    font-family: Arial, Helvetica, sans-serif;
}

body.public-landing .skip-link,
body.public-auth .skip-link,
body.account-vault-game:not(.has-game-cockpit) .skip-link { z-index: 5000; }
body.public-landing > .page-shell,
body.public-auth > .page-shell,
body.account-vault-game:not(.has-game-cockpit) > .page-shell {
    width: 100%;
    max-width: none;
    min-height: 100vh;
    margin: 0;
    padding: 0;
}
body.public-landing > .site-footer,
body.public-auth > .site-footer,
body.account-vault-game:not(.has-game-cockpit) > .site-footer { display: none; }

body.account-vault-game:not(.has-game-cockpit) > .page-shell {
    min-height: 100svh;
    padding: 112px 22px 72px;
    background:
        linear-gradient(rgba(217, 188, 128, .82), rgba(190, 152, 93, .9)),
        url('/static/ika/assets/scenes/town-northeast.webp') center / cover fixed;
}

.landing-world { min-height: 100vh; overflow: hidden; background: #d8ba7a; }

.public-gate-nav {
    position: absolute;
    z-index: 30;
    top: 0;
    right: 0;
    left: 0;
    display: flex;
    min-height: 64px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 8px clamp(18px, 4vw, 64px);
    color: #f8e6b8;
    border-bottom: 1px solid rgba(243, 211, 143, .34);
    background: linear-gradient(180deg, rgba(62, 31, 15, .96), rgba(54, 27, 14, .9));
    box-shadow: 0 3px 14px rgba(24, 15, 8, .32);
}
.public-gate-brand { display: flex; align-items: center; gap: 11px; color: #fff0c8; }
.public-gate-brand:hover { color: #fff7df; text-decoration: none; }
.public-gate-seal {
    width: 30px;
    height: 30px;
    border: 2px solid #d6a14d;
    transform: rotate(45deg);
    background: linear-gradient(135deg, #bd7a20, #6e3618);
    box-shadow: inset 0 0 0 3px rgba(255, 232, 168, .18), 0 2px 5px rgba(0,0,0,.25);
}
.public-gate-brand > span:last-child { display: grid; gap: 1px; }
.public-gate-brand strong { font: 600 17px/1.05 Cinzel, Georgia, serif; letter-spacing: .04em; }
.public-gate-brand small { color: #ceb887; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.public-gate-nav nav { display: flex; align-items: center; gap: 16px; }
.public-gate-nav nav a { color: #ead3a5; font-size: 12px; font-weight: bold; }
.public-gate-nav nav a:hover { color: #fff2ce; text-decoration: none; }
.public-gate-nav nav form { margin: 0; }
.public-gate-user { color: #d6bd8a; font-size: 11px; }
.public-gate-logout {
    padding: 0;
    color: #ead3a5;
    border: 0;
    background: none;
    font: 700 12px Arial, Helvetica, sans-serif;
    cursor: pointer;
}
.public-gate-logout:hover { color: #fff2ce; }
.public-gate-nav .public-gate-register {
    padding: 8px 13px;
    color: #4c2b16;
    border: 1px solid #8a541e;
    background: #efd291 url('/static/ika/assets/chrome/button.png') repeat-x center;
    box-shadow: inset 0 1px rgba(255,255,255,.42), 0 1px 3px rgba(0,0,0,.2);
}

/* Durable old-world cargo lives outside the competitive season, but still
   looks like a game ledger rather than an account-settings table. */
.account-vault {
    width: min(1040px, 100%);
    margin: 0 auto;
    color: #5b3518;
}
.account-vault-masthead {
    position: relative;
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr) 150px;
    min-height: 132px;
    overflow: hidden;
    border: 1px solid #8e5925;
    background:
        url('/static/ika/assets/chrome/mainbox-header.jpg') repeat-x top,
        #f0d9a3 url('/static/ika/assets/chrome/mainbox.png') repeat-y top center;
    box-shadow: 0 10px 26px rgba(66, 41, 18, .28);
}
.account-vault-art {
    position: relative;
    border-right: 1px solid rgba(130, 82, 38, .35);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
.account-vault-art-logistics {
    background-image:
        url('/static/ika/assets/scenes/buildings/port.png'),
        linear-gradient(rgba(255,247,217,.3), rgba(227,198,138,.25));
}
.account-vault-art-market {
    background-image:
        url('/static/ika/assets/scenes/buildings/trading-post.png'),
        linear-gradient(rgba(255,247,217,.3), rgba(227,198,138,.25));
}
.account-vault-heading { align-self: center; padding: 18px 24px; }
.account-vault-heading .eyebrow { margin: 0 0 4px; color: #9c642b; font-size: 10px; letter-spacing: .09em; text-transform: uppercase; }
.account-vault-heading h1 { margin: 0; color: #7b321f; font: 700 30px/1.08 Georgia, 'Times New Roman', serif; text-shadow: 0 1px #fff0c8; }
.account-vault-heading p { max-width: 650px; margin: 7px 0 0; color: #765435; font-size: 11px; line-height: 1.45; }
.account-vault-count {
    display: grid;
    align-content: center;
    justify-items: center;
    padding: 15px;
    border-left: 1px solid rgba(130, 82, 38, .35);
    background: rgba(255, 244, 207, .36);
    text-align: center;
}
.account-vault-count span { color: #865a31; font-size: 9px; letter-spacing: .09em; text-transform: uppercase; }
.account-vault-count strong { color: #7d321f; font: 32px/1 Georgia, serif; }
.account-vault-count small { margin-top: 4px; color: #8b6946; font-size: 9px; }
.account-vault-ledger {
    margin-top: 12px;
    border: 1px solid #966332;
    background: #f2dfae url('/static/ika/assets/chrome/mainbox.png') repeat-y top center;
    box-shadow: 0 8px 20px rgba(66, 41, 18, .2);
}
.account-vault-ledger-head {
    display: flex;
    min-height: 52px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 10px 16px;
    border-bottom: 1px solid #b88951;
    background: url('/static/ika/assets/chrome/mainbox-header.jpg') repeat-x top;
}
.account-vault-ledger-head > div { display: grid; gap: 2px; }
.account-vault-ledger-head strong { color: #6d321c; font: 700 16px Georgia, serif; }
.account-vault-ledger-head span { color: #8a6847; font-size: 10px; }
.account-vault-ledger-head a,
.account-vault-foot a { color: #7b3a1d; font-size: 10px; font-weight: bold; text-transform: uppercase; }
.account-hold-list { display: grid; gap: 1px; padding: 10px 16px 16px; }
.account-hold {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    min-height: 70px;
    padding: 8px 10px;
    border: 1px solid rgba(133, 86, 41, .18);
    background: rgba(255, 248, 219, .55);
}
.account-hold-icon {
    width: 40px;
    height: 40px;
    background: url('/static/ika/assets/resources/icon_wood.png') no-repeat center / contain;
    filter: drop-shadow(0 2px 2px rgba(70, 42, 15, .22));
}
.account-hold.resource-wine .account-hold-icon { background-image: url('/static/ika/assets/resources/icon_wine.png'); }
.account-hold.resource-marble .account-hold-icon { background-image: url('/static/ika/assets/resources/icon_marble.png'); }
.account-hold.resource-crystal .account-hold-icon { background-image: url('/static/ika/assets/resources/icon_crystal.png'); }
.account-hold.resource-sulfur .account-hold-icon,
.account-hold.resource-sulphur .account-hold-icon { background-image: url('/static/ika/assets/resources/icon_sulfur.png'); }
.account-hold-copy { min-width: 0; display: grid; gap: 2px; }
.account-hold-copy small { color: #a06a30; font-size: 9px; letter-spacing: .04em; text-transform: uppercase; }
.account-hold-copy strong { color: #663018; font: 700 15px Georgia, serif; }
.account-hold-copy span { color: #846347; font-size: 10px; }
.account-hold form { margin: 0; }
.account-vault-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.account-vault-empty {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 13px;
    align-items: center;
    min-height: 110px;
    padding: 18px;
    color: #79583b;
    border: 1px dashed rgba(135, 88, 44, .35);
    background: rgba(255, 248, 221, .42);
}
.account-vault-empty.compact { min-height: 90px; }
.account-vault-empty-icon {
    width: 42px;
    height: 42px;
    background: url('/static/ika/assets/transport/transportCapacity.png') no-repeat center / contain;
    opacity: .72;
}
.account-vault-empty strong { color: #663018; font: 700 15px Georgia, serif; }
.account-vault-empty p { margin: 3px 0 0; font-size: 10px; line-height: 1.4; }
.account-vault-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 12px;
    padding: 10px 14px;
    color: #775637;
    border: 1px solid #966332;
    background: rgba(245, 224, 177, .82);
    font-size: 10px;
}

@media (max-width: 760px) {
    body.account-vault-game:not(.has-game-cockpit) > .page-shell { padding: 88px 10px 44px; }
    .account-vault-masthead { grid-template-columns: 78px minmax(0, 1fr); min-height: 106px; }
    .account-vault-art { min-height: 106px; }
    .account-vault-heading { padding: 13px 12px; }
    .account-vault-heading h1 { font-size: 24px; }
    .account-vault-heading p { display: none; }
    .account-vault-count { grid-column: 1 / -1; display: flex; min-height: 38px; align-items: center; justify-content: space-between; padding: 7px 12px; border-top: 1px solid #b88951; border-left: 0; }
    .account-vault-count strong { font-size: 20px; }
    .account-vault-count small { display: none; }
    .account-vault-columns { grid-template-columns: 1fr; }
    .account-hold { grid-template-columns: 38px 1fr; }
    .account-hold-icon { width: 34px; height: 34px; }
    .account-hold form { grid-column: 1 / -1; }
    .account-hold .button { width: 100%; }
    .account-vault-ledger-head { align-items: flex-start; flex-direction: column; gap: 5px; }
    .account-vault-foot { align-items: flex-start; flex-direction: column; }
}

.landing-hero {
    position: relative;
    min-height: min(840px, 100svh);
    display: grid;
    align-items: stretch;
    overflow: hidden;
    background: #497e4a;
}
.landing-hero-scene {
    position: absolute;
    inset: 0;
    background: url('/static/ika/assets/scenes/town-northeast.webp') center 42% / cover no-repeat;
    transform: scale(1.03);
}
.landing-hero-scene::before {
    position: absolute;
    inset: 0;
    content: '';
    background:
        linear-gradient(90deg, rgba(28, 18, 9, .83) 0%, rgba(28, 18, 9, .68) 30%, rgba(28, 18, 9, .18) 58%, rgba(10, 34, 35, .05) 100%),
        linear-gradient(180deg, rgba(19, 10, 5, .18), transparent 28%, transparent 65%, rgba(14, 24, 18, .42));
}
.landing-hero-scene::after {
    position: absolute;
    inset: auto 0 0;
    height: 170px;
    content: '';
    background: linear-gradient(transparent, #183f3d 94%);
}
.landing-scene-building { position: absolute; z-index: 2; filter: drop-shadow(0 7px 5px rgba(28,22,10,.38)); }
.landing-scene-building img { display: block; width: 100%; height: auto; }
.building-townhall { width: clamp(124px, 13vw, 210px); left: 61%; top: 36%; }
.building-academy { width: clamp(92px, 10vw, 160px); left: 46%; top: 49%; }
.building-warehouse { width: clamp(84px, 9vw, 145px); left: 76%; top: 48%; }
.building-tavern { width: clamp(82px, 8.5vw, 138px); left: 67%; top: 61%; }
.building-port { width: clamp(126px, 14vw, 220px); right: 5%; bottom: 12%; }

.landing-hero-copy {
    position: relative;
    z-index: 5;
    width: min(720px, 54vw);
    align-self: center;
    margin: 76px 0 100px clamp(28px, 7vw, 118px);
    padding: 34px clamp(24px, 3vw, 42px) 38px;
    color: #fff0ca;
    text-shadow: 0 2px 7px rgba(18, 10, 5, .48);
    border: 1px solid rgba(201, 152, 68, .55);
    background:
        linear-gradient(160deg, #2c1c0f, #1c110a 75%),
        url('/static/ika/assets/chrome/mainbox-header.jpg') repeat-x top;
    box-shadow: 0 22px 52px rgba(8, 5, 2, .5), inset 0 0 0 1px rgba(255, 240, 200, .07);
}
.landing-kicker,
.landing-section-heading > p,
.landing-pressure-section > header > p {
    margin: 0 0 10px;
    color: #efc46e;
    font-size: 11px;
    font-weight: bold;
    letter-spacing: .15em;
    text-transform: uppercase;
}
.landing-hero h1 {
    max-width: 630px;
    margin: 0;
    color: #fff4d3;
    font: 600 clamp(38px, 4.6vw, 66px)/1.04 "Cinzel", Georgia, 'Times New Roman', serif;
    letter-spacing: -.01em;
}
.landing-lede {
    max-width: 590px;
    margin: 22px 0 0;
    color: #eadcba;
    font: 16px/1.6 Georgia, 'Times New Roman', serif;
}
.landing-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.landing-primary-action,
.landing-secondary-action {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: 11px 25px;
    font-size: 13px;
    font-weight: bold;
    letter-spacing: .01em;
    text-decoration: none;
    text-shadow: none;
}
.landing-primary-action {
    color: #4e2c16;
    border: 2px solid #6f4019;
    background: #efd08a url('/static/ika/assets/chrome/button.png') repeat-x center;
    box-shadow: inset 0 1px rgba(255,255,255,.5), 0 6px 16px rgba(16,8,3,.34);
}
.landing-primary-action:hover { color: #3f220f; filter: brightness(1.06); text-decoration: none; transform: translateY(-1px); }
.landing-secondary-action { color: #f6e4b8; border: 1px solid rgba(239, 208, 139, .5); background: rgba(43, 28, 16, .44); }
.landing-secondary-action:hover { color: #fff5dc; background: rgba(62, 37, 18, .66); text-decoration: none; }
.landing-season-rule {
    display: grid;
    grid-template-columns: 46px 1fr;
    gap: 13px;
    align-items: center;
    max-width: 480px;
    margin-top: 30px;
    padding-top: 18px;
    border-top: 1px solid rgba(241, 211, 145, .34);
}
.landing-rule-mark {
    display: grid;
    width: 43px;
    height: 43px;
    place-items: center;
    color: #f5d585;
    border: 1px solid #c69540;
    border-radius: 50%;
    background: rgba(78, 44, 19, .6);
    font: 17px Georgia, serif;
}
.landing-season-rule p { display: grid; gap: 2px; margin: 0; }
.landing-season-rule strong { color: #f8e8bd; font: 15px Georgia, serif; }
.landing-season-rule span:last-child { color: #ccb992; font-size: 11px; line-height: 1.4; }

.landing-resource-scroll {
    position: absolute;
    z-index: 6;
    right: clamp(22px, 4vw, 64px);
    bottom: 32px;
    display: flex;
    gap: 0;
    overflow: hidden;
    border: 1px solid #9a682d;
    background: rgba(250, 229, 177, .93);
    box-shadow: 0 8px 24px rgba(16, 18, 11, .3);
}
.landing-resource-scroll span { display: flex; min-width: 92px; align-items: center; gap: 6px; padding: 7px 10px; color: #6c411f; border-right: 1px solid rgba(135,89,42,.24); font-size: 10px; font-weight: bold; }
.landing-resource-scroll span:last-child { border-right: 0; }
.landing-resource-scroll img { width: 24px; height: 24px; object-fit: contain; }

.landing-scale-section {
    position: relative;
    padding: 88px clamp(24px, 6vw, 96px) 104px;
    color: #563419;
    background:
        linear-gradient(rgba(247, 226, 180, .93), rgba(232, 204, 145, .97)),
        url('/static/ika/assets/chrome/mainbox.png') repeat;
    box-shadow: inset 0 3px #9c6a32;
}
.landing-section-heading { display: grid; grid-template-columns: minmax(250px, .7fr) 1.1fr; column-gap: clamp(30px, 7vw, 110px); max-width: 1250px; margin: 0 auto 34px; }
.landing-section-heading > p { grid-column: 1 / -1; color: #9b5c24; }
.landing-section-heading h2,
.landing-season-copy h2,
.landing-pressure-section h2,
.landing-final-cta h2 {
    margin: 0;
    color: #703719;
    font: 600 clamp(28px, 3.4vw, 46px)/1.08 "Cinzel", Georgia, 'Times New Roman', serif;
    letter-spacing: -.005em;
}
.landing-section-heading > span { align-self: end; color: #795b39; font: 14px/1.6 Georgia, serif; }
.landing-scale-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; max-width: 1250px; margin: auto; }
.landing-scale-card { position: relative; min-height: 430px; overflow: hidden; border: 1px solid #82501f; background: #35684c; box-shadow: 0 12px 25px rgba(68, 43, 18, .2); }
.landing-scale-art { position: absolute; inset: 0; transition: transform .35s ease; }
.landing-scale-card:hover .landing-scale-art { transform: scale(1.025); }
.scale-town .landing-scale-art { background: url('/static/ika/assets/scenes/town-northeast.webp') center / cover no-repeat; }
.scale-island .landing-scale-art { background: url('/static/ika/assets/scenes/island.webp') center / cover no-repeat; }
.scale-world .landing-scale-art { background: #188fb1 url('/static/ika/assets/scenes/world-sea.webp') center / 300px auto repeat; }
.scale-world .landing-scale-art :is(span, i, b) { position: absolute; display: block; width: 155px; height: 95px; background: url('/static/ika/assets/scenes/world-island.webp') center / contain no-repeat; filter: drop-shadow(0 7px 5px rgba(4,45,55,.34)); }
.scale-world .landing-scale-art span { left: 5%; top: 17%; }
.scale-world .landing-scale-art i { right: 3%; top: 39%; transform: scale(.82); }
.scale-world .landing-scale-art b { left: 28%; bottom: 5%; transform: scale(.68); }
.landing-scale-card::after { position: absolute; inset: 0; content: ''; background: linear-gradient(transparent 36%, rgba(28,23,13,.34) 55%, rgba(28,22,12,.91) 100%); pointer-events: none; }
.landing-scale-copy { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: 84px 1fr; gap: 14px; align-items: end; padding: 22px; color: #f8e6ba; }
.landing-scale-copy > img { width: 84px; height: 54px; object-fit: cover; object-position: top; border: 1px solid #ad7a35; box-shadow: 0 3px 10px rgba(0,0,0,.25); }
.landing-scale-copy small { color: #e2b85e; font-size: 9px; font-weight: bold; letter-spacing: .12em; text-transform: uppercase; }
.landing-scale-copy h3 { margin: 3px 0 6px; color: #fff0c5; font: 19px/1.08 Georgia, serif; }
.landing-scale-copy p { margin: 0; color: #d9c8a4; font-size: 11px; line-height: 1.45; }

.landing-season-section {
    display: grid;
    grid-template-columns: minmax(320px, .9fr) minmax(480px, 1.1fr);
    min-height: 650px;
    color: #ecddb8;
    background: #173f43;
}
.landing-season-art {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(9,44,49,.12), #173f43 96%),
        linear-gradient(0deg, rgba(8,38,42,.3), transparent 60%),
        url('/static/ika/assets/scenes/island.webp') 44% center / cover no-repeat;
}
.landing-season-art::after { position: absolute; inset: 0; content: ''; background: radial-gradient(circle at 38% 46%, transparent 0 23%, rgba(11,53,58,.2) 55%, rgba(14,55,59,.66) 100%); }
.season-advisor { position: absolute; z-index: 2; width: 90px; height: 108px; filter: drop-shadow(0 8px 7px rgba(7,27,28,.42)); }
.season-advisor.mayor { left: 22%; top: 20%; }
.season-advisor.general { left: 50%; top: 33%; }
.season-advisor.scientist { left: 27%; top: 52%; }
.season-advisor.diplomat { left: 58%; top: 66%; }
.landing-season-copy { align-self: center; padding: 72px clamp(32px, 6vw, 100px) 72px 20px; }
.landing-season-copy h2 { max-width: 650px; color: #fff0c7; }
.landing-season-copy > p:not(.landing-kicker) { max-width: 650px; margin: 20px 0 30px; color: #bdd0c8; font: 14px/1.65 Georgia, serif; }
.landing-season-timeline { margin: 0; padding: 0; list-style: none; }
.landing-season-timeline li { position: relative; display: grid; grid-template-columns: 34px 1fr; gap: 14px; min-height: 64px; color: #bdcfc6; }
.landing-season-timeline li:not(:last-child)::after { position: absolute; top: 32px; bottom: -1px; left: 16px; width: 1px; content: ''; background: rgba(220,189,121,.28); }
.landing-season-timeline b { z-index: 1; display: grid; width: 33px; height: 33px; place-items: center; color: #ecc970; border: 1px solid #9f7a38; border-radius: 50%; background: #173f43; font: normal 13px Georgia, serif; }
.landing-season-timeline span { display: grid; gap: 3px; padding: 2px 0 14px; font-size: 11px; line-height: 1.4; }
.landing-season-timeline strong { color: #f2dfad; font: 15px Georgia, serif; }

.landing-pressure-section { padding: 86px clamp(24px, 6vw, 96px) 96px; background: #eddaab url('/static/ika/assets/chrome/mainbox.png') repeat; }
.landing-pressure-section > header { max-width: 1250px; margin: 0 auto 34px; }
.landing-pressure-section > header > p { color: #9b5c24; }
.landing-pressure-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; max-width: 1250px; margin: auto; border: 1px solid #a17743; background: #b68b50; }
.landing-pressure-grid article { min-height: 190px; padding: 25px 23px; background: rgba(255, 241, 207, .88); }
.landing-pressure-grid img { width: 44px; height: 44px; object-fit: contain; margin-bottom: 13px; }
.landing-pressure-grid strong { display: block; color: #713a1c; font: 18px Georgia, serif; }
.landing-pressure-grid p { margin: 7px 0 0; color: #775c3e; font-size: 11px; line-height: 1.55; }

.landing-final-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 74px clamp(24px, 8vw, 130px);
    color: #e9dab6;
    border-top: 3px solid #ad7a30;
    background:
        linear-gradient(90deg, rgba(18,54,57,.98), rgba(22,68,68,.91)),
        url('/static/ika/assets/scenes/town-northeast.webp') center 68% / cover;
}
.landing-final-cta h2 { max-width: 760px; color: #fff0c6; }
.landing-final-cta p:not(.landing-kicker) { margin: 12px 0 0; color: #bcd0c6; font: 14px Georgia, serif; }
.landing-final-cta .landing-primary-action { flex: none; min-width: 190px; }
.landing-footer { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 20px; padding: 12px clamp(24px, 6vw, 96px); color: #bda980; border-top: 1px solid #6f421f; background: #3e2415; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.landing-footer nav { display: flex; gap: 18px; }
.landing-footer a { color: #e0c58e; }

/* Public account entry uses the same world instead of falling back to the old white form card. */
body.public-auth { min-height: 100vh; background: #315d47 url('/static/ika/assets/scenes/town-northeast.webp') center / cover fixed no-repeat; }
body.public-auth::before { position: fixed; inset: 0; content: ''; background: linear-gradient(90deg, rgba(18,38,30,.62), rgba(30,18,9,.22)), linear-gradient(0deg, rgba(22,15,8,.44), rgba(22,15,8,.08)); }
body.public-auth .public-gate-nav { position: relative; }
.public-auth-stage { position: relative; z-index: 2; display: grid; min-height: calc(100vh - 64px); place-items: center; padding: 46px 18px; }
.public-auth-card { width: min(520px, 100%); border: 1px solid #875421; background: #f2dca6 url('/static/ika/assets/chrome/mainbox.png') repeat-y top center; box-shadow: 0 20px 55px rgba(22,14,7,.46), inset 0 0 0 4px rgba(255,241,198,.34); }
.public-auth-card header { padding: 25px 30px 18px; border-bottom: 1px solid #bd9255; background: linear-gradient(rgba(255,237,194,.42), rgba(225,191,127,.16)), url('/static/ika/assets/chrome/mainbox-header.jpg') repeat-x top; }
.public-auth-card .landing-kicker { color: #9c5b22; }
.public-auth-card h1 { margin: 2px 0 0; color: #713719; font: 500 36px Georgia, serif; }
.public-auth-card header p:last-child { margin: 8px 0 0; color: #795c3a; font-size: 11px; line-height: 1.5; }
.public-auth-form { display: grid; gap: 7px; padding: 22px 30px 28px; }
.public-auth-form label { margin-top: 5px; color: #693b1e; font-size: 11px; font-weight: bold; }
.public-auth-form input,
.public-auth-form select { width: 100%; min-height: 38px; padding: 8px 10px; color: #4c321d; border: 1px solid #a27a47; background: #fff8df; box-shadow: inset 0 1px 3px rgba(94,60,25,.12); }
.public-auth-form input:focus,
.public-auth-form select:focus { outline: 2px solid rgba(188,126,39,.44); border-color: #965d21; }
.public-auth-form .help-text { color: #896f4d; font-size: 9px; line-height: 1.4; }
.public-auth-submit { min-height: 42px; margin-top: 14px; color: #4e2b13; border: 1px solid #80501d; background: #edcd84 url('/static/ika/assets/chrome/button.png') repeat-x center; font-weight: bold; cursor: pointer; }
.public-auth-submit:hover { filter: brightness(1.05); }
.public-auth-card .form-error,
.public-auth-card .errorlist { margin: 0 30px 12px; color: #7c2f22; border: 1px solid #b66e55; background: #efd1ad; font-size: 10px; }
.public-auth-card .public-auth-form .errorlist { margin: 0; }
.public-auth-footnote { margin: 0; padding: 14px 30px 18px; color: #73563a; border-top: 1px solid #c8a36c; background: rgba(255,244,213,.34); font-size: 10px; }
.public-auth-footnote a { color: #8d4f1e; font-weight: bold; }

.season-entry-stage { place-items: center; }
.season-entry-layout {
    display: grid;
    grid-template-columns: minmax(360px, 1fr) minmax(440px, 520px);
    width: min(1040px, 100%);
    overflow: hidden;
    border: 1px solid #7e4b20;
    background: #173f42;
    box-shadow: 0 22px 58px rgba(20, 13, 7, .48);
}
.season-entry-map {
    position: relative;
    min-height: 610px;
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(15, 58, 61, .1), rgba(15, 58, 61, .74) 96%),
        url('/static/ika/assets/scenes/island.webp') center / cover no-repeat;
}
.season-entry-map::before {
    position: absolute;
    inset: 0;
    content: '';
    background: linear-gradient(0deg, rgba(11, 45, 48, .56), transparent 48%);
}
.season-entry-townhall,
.season-entry-port {
    position: absolute;
    z-index: 2;
    filter: drop-shadow(0 8px 5px rgba(19, 35, 21, .4));
}
.season-entry-townhall { width: 150px; top: 31%; left: 39%; }
.season-entry-port { width: 170px; right: 4%; bottom: 16%; }
.season-entry-caption {
    position: absolute;
    z-index: 3;
    right: 34px;
    bottom: 34px;
    left: 34px;
    display: grid;
    gap: 4px;
    padding-top: 16px;
    color: #e8dab5;
    border-top: 1px solid rgba(229, 195, 120, .34);
}
.season-entry-caption small { color: #e6b95f; font-size: 9px; font-weight: bold; letter-spacing: .13em; text-transform: uppercase; }
.season-entry-caption strong { color: #fff0c7; font: 28px Georgia, serif; }
.season-entry-caption span { max-width: 420px; color: #bdd0c7; font: 12px/1.45 Georgia, serif; }
.season-entry-card { width: 100%; min-height: 610px; border: 0; box-shadow: none; }
.season-entry-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin: 0;
    padding: 0 30px 26px;
}
.season-entry-facts div { padding: 12px; border: 1px solid #c09a63; background: rgba(255, 245, 215, .42); }
.season-entry-facts dt { color: #9a6632; font-size: 8px; font-weight: bold; letter-spacing: .08em; text-transform: uppercase; }
.season-entry-facts dd { margin: 4px 0 0; color: #61401f; font: 11px Georgia, serif; }

@media (max-width: 900px) {
    .landing-hero { min-height: 760px; }
    .landing-hero-copy { width: min(700px, calc(100% - 48px)); margin-left: 32px; padding: 28px 26px 32px; }
    .landing-hero-scene::before { background: linear-gradient(90deg, rgba(28,18,9,.84), rgba(28,18,9,.55) 60%, rgba(28,18,9,.2)); }
    .building-townhall { left: 64%; top: 40%; }
    .building-academy { left: 54%; }
    .landing-resource-scroll { right: 18px; left: 18px; justify-content: center; overflow-x: auto; }
    .landing-resource-scroll span { min-width: 0; flex: 1 0 92px; }
    .landing-section-heading { grid-template-columns: 1fr; gap: 12px; }
    .landing-section-heading > span { max-width: 700px; }
    .landing-scale-grid { grid-template-columns: 1fr; }
    .landing-scale-card { min-height: 360px; }
    .landing-season-section { grid-template-columns: .72fr 1.28fr; }
    .landing-pressure-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 650px) {
    .public-gate-nav { min-height: 58px; padding: 7px 12px; }
    .public-gate-brand small { display: none; }
    .public-gate-seal { width: 24px; height: 24px; }
    .public-gate-brand strong { font-size: 14px; }
    .public-gate-nav nav { gap: 8px; }
    .public-gate-nav nav a { font-size: 10px; }
    .public-gate-user { display: none; }
    .public-gate-logout { font-size: 10px; }
    .public-gate-nav .public-gate-register { padding: 7px 9px; }
    .landing-hero { min-height: 720px; }
    .landing-hero-scene { background-position: 62% center; }
    .landing-hero-scene::before { background: linear-gradient(90deg, rgba(30,18,8,.88), rgba(30,18,8,.62)), linear-gradient(0deg, rgba(10,34,35,.5), transparent 60%); }
    .landing-scene-building { opacity: .68; }
    .building-townhall { width: 128px; left: 57%; top: 47%; }
    .building-academy { width: 96px; left: 42%; top: 58%; }
    .building-warehouse { width: 90px; left: 72%; top: 57%; }
    .building-tavern, .building-port { display: none; }
    .landing-hero-copy { width: calc(100% - 32px); align-self: start; margin: 116px 16px 120px; padding: 22px 20px 26px; }
    .landing-hero h1 { font-size: clamp(32px, 11.5vw, 48px); }
    .landing-lede { font-size: 14px; }
    .landing-hero-actions { align-items: stretch; flex-direction: column; }
    .landing-primary-action, .landing-secondary-action { width: 100%; }
    .landing-resource-scroll { bottom: 18px; }
    .landing-resource-scroll span { min-width: 0; flex: 1 1 20%; justify-content: center; padding: 6px; font-size: 0; }
    .landing-resource-scroll img { width: 26px; height: 26px; }
    .landing-scale-section, .landing-pressure-section { padding: 64px 16px 70px; }
    .landing-section-heading h2, .landing-season-copy h2, .landing-pressure-section h2, .landing-final-cta h2 { font-size: 32px; }
    .landing-scale-card { min-height: 330px; }
    .landing-scale-copy { grid-template-columns: 64px 1fr; padding: 16px; }
    .landing-scale-copy > img { width: 64px; height: 46px; }
    .landing-scale-copy h3 { font-size: 17px; }
    .landing-season-section { display: block; }
    .landing-season-art { min-height: 360px; background-position: center; }
    .landing-season-copy { padding: 48px 18px 58px; }
    .season-advisor.mayor { left: 11%; top: 13%; }
    .season-advisor.general { left: 56%; top: 24%; }
    .season-advisor.scientist { left: 20%; top: 53%; }
    .season-advisor.diplomat { left: 63%; top: 62%; }
    .landing-pressure-grid { grid-template-columns: 1fr; }
    .landing-pressure-grid article { min-height: 150px; }
    .landing-final-cta { align-items: stretch; flex-direction: column; padding: 55px 18px; }
    .landing-final-cta .landing-primary-action { width: 100%; }
    .landing-footer { align-items: flex-start; flex-direction: column; padding: 18px; }
    .public-auth-stage { min-height: calc(100vh - 58px); padding: 26px 12px; }
    .public-auth-card header, .public-auth-form { padding-inline: 20px; }
    .public-auth-footnote { padding-inline: 20px; }
    .season-entry-layout { display: block; }
    .season-entry-map { min-height: 310px; }
    .season-entry-townhall { width: 112px; top: 27%; left: 24%; }
    .season-entry-port { width: 125px; right: 4%; bottom: 11%; }
    .season-entry-caption { right: 18px; bottom: 18px; left: 18px; }
    .season-entry-caption strong { font-size: 22px; }
    .season-entry-card { min-height: 0; }
    .season-entry-facts { grid-template-columns: 1fr; padding-inline: 20px; }
}

@media (prefers-reduced-motion: reduce) {
    .landing-scale-art,
    .landing-primary-action { transition: none; }
}
