/* Japonnow — base 1.0.1. Layout preserved, accessible controls and colors. */
:root {
    color-scheme:light;
    --bg:#f6f7f9;
    --surface:#fff;
    --surface2:#eef0f4;
    --ink:#151b27;
    --muted:#636c7a;
    --border:#e1e4ea;
    --accent:#ed5647;
    --accent-text:#b9362a;
    --accent-button:#b9362a;
    --focus:#b9362a;
    --accent2:#f99a5a;
    --shadow:0 12px 35px rgba(19,26,38,.07);
    --radius:18px;
}

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

html[data-theme=dark] {
    color-scheme:dark;
    --accent-text:#ff9284;
    --focus:#ff9284;
    --bg:#10141c;
    --surface:#1a202a;
    --surface2:#232b37;
    --ink:#f2f3f7;
    --muted:#a9b0bd;
    --border:#313947;
    --shadow:0 18px 45px rgba(0,0,0,.22);
}

* {
    box-sizing:border-box;
}

body {
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font:16px/1.65 system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
}

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

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

button,input {
    font:inherit;
}

button {
    cursor:pointer;
}

button:focus-visible,a:focus-visible,input:focus-visible {
    outline:3px solid var(--focus);
    outline-offset:3px;
}

.jn-shell {
    width:min(1200px,calc(100% - 42px));
    margin-inline:auto;
}

.jn-skip {
    position:absolute;
    left:-9999px;
    z-index:999;
    background:var(--surface);
    padding:12px;
}

.jn-skip:focus {
    left:12px;
    top:12px;
}

.jn-dot {
    color:var(--accent);
}

.jn-header {
    position:sticky;
    top:0;
    z-index:70;
    background:var(--surface);
    border-bottom:1px solid var(--border);
    box-shadow:0 4px 18px rgba(0,0,0,.025);
}

.admin-bar .jn-header {
    top:32px;
}

.jn-header__inner {
    min-height:76px;
    display:flex;
    align-items:center;
    gap:34px;
}

.jn-brand {
    font-size:clamp(23px,2.5vw,31px);
    font-weight:900;
    letter-spacing:-1.5px;
    white-space:nowrap;
    line-height:1;
}

.jn-logo {
    width:auto;
    max-height:52px;
    max-width:210px;
    object-fit:contain;
}

.jn-nav {
    margin-left:auto;
}

.jn-menu {
    display:flex;
    align-items:center;
    gap:24px;
    list-style:none;
    margin:0;
    padding:0;
    font-size:13px;
    font-weight:700;
}

.jn-menu a:hover,.jn-text-link:hover {
    color:var(--accent-text);
}

.jn-header__tools {
    flex-shrink:0;
    display:flex;
    gap:6px;
    align-items:center;
}

.jn-icon-button {
    width:44px;
    height:44px;
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--surface2);
    color:var(--ink);
    font-size:21px;
}

.jn-burger {
    display:none;
}

.jn-search-panel {
    background:var(--surface);
    border-top:1px solid var(--border);
    padding:16px 0;
}

.jn-search-form {
    display:flex;
    gap:8px;
    max-width:100%;
}

.jn-search-field {
    flex:1;
    min-width:0;
    background:var(--bg);
    border:1px solid var(--border);
    color:var(--ink);
    border-radius:12px;
    padding:12px 15px;
}

.jn-search-submit {
    flex-shrink:0;
    min-height:44px;
    border:0;
    border-radius:12px;
    background:var(--accent-button);
    color:white;
    padding:11px 18px;
}

.jn-hero {
    overflow:hidden;
    background:linear-gradient(120deg,#171d2a 0%,#272a37 60%,#572b32 100%);
    color:white;
}

.jn-hero__inner {
    min-height:445px;
    display:grid;
    grid-template-columns:1fr .9fr;
    align-items:center;
    gap:30px;
}

.jn-eyebrow {
    display:inline-block;
    color:var(--accent-text);
    font-size:11px;
    font-weight:900;
    letter-spacing:2.3px;
    text-transform:uppercase;
    margin-bottom:10px;
}

.jn-hero .jn-eyebrow {
    color:#ffb29c;
}

.jn-hero h1 {
    font-size:clamp(45px,6.3vw,86px);
    line-height:1.01;
    letter-spacing:-3.5px;
    margin:0 0 22px;
}

.jn-hero h1 em {
    font-style:normal;
    color:#ff8174;
}

.jn-hero p {
    font-size:17px;
    max-width:540px;
    color:#d1d3dc;
    margin:0 0 27px;
}

.jn-hero__buttons {
    display:flex;
    gap:11px;
    flex-wrap:wrap;
}

.jn-btn {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    padding:11px 19px;
    border-radius:12px;
    font-weight:800;
    font-size:13px;
    border:1px solid transparent;
}

.jn-btn--primary {
    background:var(--accent-button);
    color:white;
}

.jn-btn--outline {
    border-color:#858995;
    color:white;
}

.jn-hero__art {
    height:330px;
    position:relative;
    display:grid;
    place-items:center;
}

.jn-sun {
    position:absolute;
    width:280px;
    height:280px;
    border-radius:50%;
    background:linear-gradient(145deg,#fdb66d,#df4749);
    box-shadow:0 0 90px #eb644a44;
}

.jn-art-word {
    position:relative;
    z-index:2;
    font-size:clamp(56px,8vw,114px);
    font-weight:950;
    line-height:1;
    letter-spacing:-6px;
    text-shadow:0 10px 25px #0d111b9c;
    white-space:nowrap;
}

.jn-art-word span {
    color:#fff;
    font-size:.37em;
    letter-spacing:-2px;
}

.jn-art-caption {
    position:absolute;
    bottom:15px;
    right:0;
    font-size:11px;
    letter-spacing:3px;
    color:#c5c8d1;
}

.jn-section {
    padding:72px 0;
}

.jn-section--tint {
    background:var(--surface2);
}

.jn-section__heading {
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:18px;
    margin-bottom:27px;
}

.jn-section__heading h1,.jn-section__heading h2 {
    font-size:clamp(27px,3.3vw,42px);
    line-height:1.12;
    letter-spacing:-1.3px;
    margin:0;
}

.jn-section__heading p {
    color:var(--muted);
    margin:8px 0 0;
}

.jn-text-link {
    font-size:13px;
    color:var(--muted);
    font-weight:700;
}

.jn-cards {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
}

.jn-cards--feature {
    grid-template-columns:repeat(4,minmax(0,1fr));
}

.jn-card {
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow);
    min-width:0;
    transition:transform .2s ease,box-shadow .2s ease;
}

.jn-card:hover {
    transform:translateY(-4px);
}

.jn-card:focus-within {
    outline:3px solid var(--focus);
    outline-offset:3px;
}

.jn-card__image {
    display:block;
    aspect-ratio:16/10;
    overflow:hidden;
    background:#262c39;
}

.jn-card__image img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .35s;
}

.jn-card:hover img {
    transform:scale(1.035);
}

.jn-card__content {
    padding:19px;
    overflow-wrap:anywhere;
}

.jn-tag {
    font-size:10px;
    font-weight:850;
    text-transform:uppercase;
    color:var(--accent-text);
    letter-spacing:1px;
}

.jn-card h3 {
    font-size:18px;
    line-height:1.32;
    margin:9px 0 11px;
}

.jn-card p {
    font-size:13px;
    line-height:1.55;
    color:var(--muted);
    margin:0 0 12px;
}

.jn-card time {
    font-size:11px;
    color:var(--muted);
}

.jn-placeholder {
    display:flex;
    height:100%;
    width:100%;
    align-items:center;
    justify-content:center;
    background:radial-gradient(circle at 70% 30%,#62424d,#1b2230 70%);
    color:#fff;
    font-weight:900;
    font-size:25px;
    letter-spacing:-1px;
}

.jn-icon-blob {
    color:var(--accent);
    font-size:44px;
    opacity:.55;
}

.jn-section--dark {
    background:#181d29;
    color:white;
}

.jn-hero,.jn-section--dark {
    --focus:#ff9284;
}

.jn-play {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    min-height:220px;
}

.jn-play h2 {
    font-size:clamp(36px,5vw,56px);
    line-height:1.1;
    margin:0 0 15px;
}

.jn-play h2 span {
    color:#f07a64;
}

.jn-play p {
    color:#b9bece;
    max-width:590px;
}

.jn-coming {
    display:inline-block;
    border:1px solid #505869;
    border-radius:100px;
    padding:6px 13px;
    color:#f1a190;
    font-size:10px;
    font-weight:800;
    letter-spacing:1.5px;
}

.jn-play__graphic {
    font-size:130px;
    font-weight:900;
    color:#ff7754;
    line-height:1;
    opacity:.82;
}

.jn-play__graphic span {
    display:block;
    font-size:23px;
    letter-spacing:6px;
}

.jn-footer {
    background:var(--surface);
    border-top:1px solid var(--border);
    padding:42px 0;
    color:var(--muted);
}

.jn-footer__inner {
    display:flex;
    justify-content:space-between;
    gap:30px;
}

.jn-footer strong {
    font-size:25px;
    color:var(--ink);
    letter-spacing:-1px;
}

.jn-footer p {
    font-size:13px;
}

.jn-footer ul {
    display:flex;
    flex-wrap:wrap;
    gap:15px;
    list-style:none;
    padding:0;
}

.jn-article {
    padding-top:64px;
    padding-bottom:82px;
}

.jn-article__head {
    max-width:850px;
    margin:auto auto 30px;
}

.jn-article__head h1 {
    font-size:clamp(34px,5vw,60px);
    line-height:1.15;
    letter-spacing:-1.5px;
    margin:8px 0 14px;
}

.jn-article__meta {
    color:var(--muted);
    font-size:13px;
}

.jn-article__cover {
    max-width:990px;
    margin:0 auto 35px;
}

.jn-article__cover img {
    width:100%;
    border-radius:18px;
}

.jn-article__body {
    max-width:780px;
    margin:auto;
    font-size:18px;
}

.jn-article__body a {
    color:var(--accent-text);
    text-decoration:underline;
}

.jn-article__body img {
    border-radius:12px;
}

.jn-article__bottom {
    max-width:780px;
    margin:40px auto;
    color:var(--muted);
}

.jn-pagination {
    margin-top:32px;
}

.jn-pagination .page-numbers {
    padding:8px 12px;
    border:1px solid var(--border);
    border-radius:8px;
}

.jn-not-found {
    text-align:center;
    min-height:50vh;
}

.jn-search-results {
    margin-top:24px;
}

.jn-empty {
    color:var(--muted);
}

.jn-article__body blockquote {
    border-left:4px solid var(--accent);
    padding-left:18px;
    margin-left:0;
}

.jn-article__body iframe {
    max-width:100%;
}

/* Accessibility and progressive navigation. */
.screen-reader-text {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    clip-path:inset(50%);
    white-space:nowrap;
    border:0;
}

.jn-header [hidden] {
    display:none!important;
}

.jn-menu > li {
    position:relative;
}

.jn-menu a {
    display:inline-block;
    padding-block:10px;
}

.jn-menu .sub-menu {
    position:absolute;
    top:100%;
    right:0;
    min-width:220px;
    max-width:min(300px,calc(100vw - 28px));
    margin:0;
    padding:8px;
    list-style:none;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:12px;
    box-shadow:var(--shadow);
    overflow-wrap:anywhere;
}

.jn-menu .sub-menu a {
    display:block;
    padding:10px;
}

.jn-submenu-toggle {
    min-width:44px;
    min-height:44px;
    border:0;
    border-radius:8px;
    color:var(--ink);
    background:var(--surface2);
}

.jn-nav:not(.jn-nav--enhanced) .sub-menu {
    display:none;
}

.jn-nav:not(.jn-nav--enhanced) li:hover > .sub-menu,
.jn-nav:not(.jn-nav--enhanced) li:focus-within > .sub-menu {
    display:block;
}

.jn-section--dark .jn-eyebrow {
    color:#ff9284;
}

.jn-affiliate-notice {
    max-width:65ch;
    overflow-wrap:anywhere;
}

@media(max-width:1100px) {
    .jn-menu {
        gap:12px;
        font-size:12px;
        flex-wrap:wrap;
    }

    .jn-header__inner {
        gap:15px;
    }

    .jn-cards--feature {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

}

@media(max-width:800px) {
    .jn-burger {
        display:block;
    }

    .jn-nav {
        position:absolute;
        top:100%;
        left:0;
        right:0;
        background:var(--surface);
        border-bottom:1px solid var(--border);
        padding:14px 22px;
        box-shadow:var(--shadow);
        max-height:70vh;
        overflow-y:auto;
    }

    .jn-nav.jn-nav--enhanced {
        display:none;
    }

    .jn-nav.jn-nav--open {
        display:block;
    }

    .jn-menu {
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:0;
    }

    .jn-menu > li {
        display:flex;
        align-items:center;
        flex-wrap:wrap;
    }

    .jn-menu > li > a {
        flex:1;
    }

    .jn-menu li a {
        display:block;
        padding:11px 5px;
    }

    .jn-menu .sub-menu {
        position:static;
        width:100%;
        min-width:0;
        box-shadow:none;
        border:0;
        padding-left:16px;
    }

    .jn-header__inner {
        flex-wrap:wrap;
    }

    .jn-nav:not(.jn-nav--enhanced) {
        position:static;
        order:3;
        width:100%;
    }

    .jn-header__tools {
        margin-left:auto;
    }

    .jn-hero__inner {
        grid-template-columns:1fr;
        padding-block:54px;
        gap:0;
    }

    .jn-hero__art {
        height:215px;
    }

    .jn-sun {
        width:175px;
        height:175px;
    }

    .jn-art-word {
        font-size:76px;
    }

    .jn-section {
        padding:48px 0;
    }

    .jn-cards {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .jn-play__graphic {
        font-size:80px;
    }

}

@media(max-width:782px) {
    .admin-bar .jn-header {
        top:46px;
    }

}

@media(max-width:600px) {
    .admin-bar .jn-header {
        top:0;
    }

}

@media(max-width:540px) {
    .jn-shell {
        width:calc(100% - 28px);
    }

    .jn-brand {
        font-size:26px;
    }

    .jn-logo {
        max-width:140px;
    }

    .jn-header__inner {
        gap:8px;
        min-height:65px;
    }

    .jn-hero h1 {
        font-size:48px;
    }

    .jn-hero__art {
        height:180px;
    }

    .jn-art-word {
        font-size:56px;
    }

    .jn-section__heading {
        align-items:start;
        flex-direction:column;
        gap:8px;
    }

    .jn-cards,.jn-cards--feature {
        grid-template-columns:1fr;
    }

    .jn-card__image {
        aspect-ratio:16/9;
    }

    .jn-play__graphic {
        display:none;
    }

    .jn-footer__inner {
        flex-direction:column;
    }

    .jn-article__body {
        font-size:16px;
    }

}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }

    .jn-card,.jn-card img {
        transition:none;
    }

}

