body.lani-dream-dictionary-page #sidebar,
body.lani-dream-dictionary-page #sidebar-pr {
    display: none !important;
}

body.lani-dream-dictionary-page #content-in,
body.lani-dream-dictionary-page #main.main {
    display: block !important;
    float: none !important;
    max-width: none !important;
    padding: 0 !important;
    width: 100% !important;
}

.lani-dd {
    --lani-dd-ink: #16364d;
    --lani-dd-muted: #526978;
    --lani-dd-line: #cae5f3;
    --lani-dd-soft: #f0fafe;
    --lani-dd-panel: #ffffff;
    --lani-dd-primary: #1768b0;
    --lani-dd-primary-dark: #0b4f87;
    --lani-dd-accent: #007a80;
    --lani-dd-focus: #1367b1;
    --lani-dd-brand-blue: #63a4ff;
    --lani-dd-brand-cyan: #83eaf1;
    --lani-dd-shadow: 0 18px 48px rgba(23, 104, 176, 0.14);
    background: #fff;
    color: var(--lani-dd-ink);
    font-family: inherit;
    line-height: 1.75;
    padding: 0 0 64px;
}

.lani-dd,
.lani-dd * {
    box-sizing: border-box;
}

.lani-dd a {
    color: inherit;
    text-decoration: none;
}

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

.lani-dd-inner {
    margin-inline: auto;
    max-width: 1120px;
    width: calc(100% - 36px);
}

.lani-dd-breadcrumb {
    color: var(--lani-dd-muted);
    font-size: 13px;
    padding-block: 14px;
}

.lani-dd-breadcrumb ol {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.lani-dd-breadcrumb li:not(:last-child)::after {
    color: #8aa6b8;
    content: "/";
    margin-left: 7px;
}

.lani-dd-breadcrumb a {
    text-decoration: underline;
    text-decoration-color: #b6d8e9;
    text-underline-offset: 3px;
}

.lani-dd-hero {
    background:
        radial-gradient(circle at 84% 16%, rgba(131, 234, 241, 0.36), transparent 32%),
        linear-gradient(145deg, #eef9ff 0%, #ffffff 52%, #eafcfc 100%);
    border-block: 1px solid #d5eef7;
    overflow: hidden;
    padding: clamp(42px, 7vw, 76px) 0 clamp(36px, 6vw, 64px);
}

.lani-dd-kicker {
    color: var(--lani-dd-accent);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.18em;
    margin: 0 0 8px;
    text-transform: uppercase;
}

.lani-dd-hero h1 {
    color: var(--lani-dd-ink);
    font-size: clamp(32px, 6vw, 56px);
    letter-spacing: -0.035em;
    line-height: 1.22;
    margin: 0;
}

.lani-dd-lead {
    color: #385a70;
    font-size: clamp(16px, 2.5vw, 20px);
    margin: 14px 0 0;
    max-width: 760px;
}

.lani-dd-search-panel {
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(23, 104, 176, 0.25);
    border-radius: 20px;
    box-shadow: var(--lani-dd-shadow);
    margin-top: 30px;
    max-width: 880px;
    padding: clamp(18px, 3vw, 28px);
}

.lani-dd-search label {
    display: block;
    font-size: 17px;
    font-weight: 800;
    margin-bottom: 9px;
}

.lani-dd-search__row {
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) auto;
}

.lani-dd-search input[type="search"] {
    appearance: none;
    background: #fff;
    border: 2px solid #6a8fa6;
    border-radius: 12px;
    color: var(--lani-dd-ink);
    font: inherit;
    font-size: 16px;
    min-height: 54px;
    padding: 12px 16px;
    width: 100%;
}

.lani-dd-search input[type="search"]::placeholder {
    color: var(--lani-dd-muted);
    opacity: 1;
}

.lani-dd-search button {
    background: var(--lani-dd-primary);
    border: 0;
    border-radius: 12px;
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-weight: 800;
    min-height: 54px;
    padding: 12px 22px;
}

.lani-dd-search button:hover {
    background: var(--lani-dd-primary-dark);
}

.lani-dd-results {
    background: #fff;
    border: 1px solid var(--lani-dd-line);
    border-radius: 14px;
    box-shadow: 0 14px 34px rgba(22, 76, 111, 0.12);
    margin-top: 12px;
    max-height: 520px;
    overflow: auto;
    padding: 8px;
}

.lani-dd-results[hidden] {
    display: none;
}

.lani-dd-result {
    border-radius: 10px;
    display: block;
    padding: 11px 12px;
}

.lani-dd-result + .lani-dd-result {
    border-top: 1px solid #e5f1f7;
}

.lani-dd-result:hover,
.lani-dd-result[aria-selected="true"] {
    background: var(--lani-dd-soft);
}

.lani-dd-result strong,
.lani-dd-result span,
.lani-dd-result small {
    display: block;
}

.lani-dd-result strong {
    color: var(--lani-dd-primary-dark);
    font-size: 15px;
}

.lani-dd-result span {
    color: var(--lani-dd-muted);
    font-size: 13px;
    line-height: 1.55;
    margin-top: 2px;
}

.lani-dd-result small {
    color: var(--lani-dd-muted);
    font-size: 11px;
    margin-top: 3px;
}

.lani-dd-results__heading,
.lani-dd-results__message {
    color: var(--lani-dd-muted);
    font-size: 13px;
    margin: 0;
    padding: 8px 10px;
}

.lani-dd-results__more {
    border-top: 1px solid var(--lani-dd-line);
    display: block;
    font-size: 13px;
    font-weight: 700;
    margin-top: 5px;
    padding: 11px;
    text-align: center;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.lani-dd-quick {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 15px;
}

.lani-dd-quick a {
    background: #eaf6fd;
    border: 1px solid #bfdff0;
    border-radius: 999px;
    color: #0b4f87;
    font-size: 13px;
    font-weight: 700;
    padding: 7px 12px;
}

.lani-dd-section {
    padding-top: clamp(52px, 8vw, 86px);
}

.lani-dd-heading {
    margin-bottom: 22px;
    max-width: 760px;
}

.lani-dd-heading h2 {
    color: var(--lani-dd-ink);
    font-size: clamp(25px, 4vw, 36px);
    letter-spacing: -0.025em;
    line-height: 1.3;
    margin: 0;
}

.lani-dd-heading > p:last-child {
    color: var(--lani-dd-muted);
    margin: 8px 0 0;
}

.lani-dd-category-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lani-dd-category-grid a {
    background: var(--lani-dd-panel);
    border: 1px solid var(--lani-dd-line);
    border-radius: 14px;
    min-height: 145px;
    padding: 18px;
    position: relative;
    transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.lani-dd-category-grid a:hover {
    border-color: #87b8d5;
    box-shadow: 0 10px 25px rgba(23, 104, 176, 0.1);
    transform: translateY(-2px);
}

.lani-dd-category-grid strong,
.lani-dd-category-grid span,
.lani-dd-category-grid small {
    display: block;
}

.lani-dd-category-grid strong {
    color: var(--lani-dd-primary-dark);
    font-size: 16px;
}

.lani-dd-category-grid span {
    color: var(--lani-dd-muted);
    font-size: 13px;
    line-height: 1.55;
    margin-top: 5px;
}

.lani-dd-category-grid small {
    bottom: 14px;
    color: var(--lani-dd-muted);
    font-size: 11px;
    position: absolute;
    right: 16px;
}

.lani-dd-selected {
    scroll-margin-top: 24px;
}

.lani-dd-link-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.lani-dd-link-grid a {
    border: 1px solid var(--lani-dd-line);
    border-radius: 12px;
    display: block;
    height: 100%;
    padding: 15px 16px;
}

.lani-dd-link-grid a:hover {
    background: var(--lani-dd-soft);
    border-color: #87b8d5;
}

.lani-dd-link-grid strong,
.lani-dd-link-grid span {
    display: block;
}

.lani-dd-link-grid strong {
    color: var(--lani-dd-primary-dark);
    font-size: 14px;
}

.lani-dd-link-grid span {
    color: var(--lani-dd-muted);
    font-size: 12px;
    line-height: 1.55;
    margin-top: 4px;
}

.lani-dd-type-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lani-dd-type-grid a {
    --lani-dd-type-accent: #1768b0;
    background: #fff;
    border: 1px solid #cfe0ee;
    border-radius: 15px;
    box-shadow: 0 8px 22px rgba(28, 76, 111, 0.08);
    color: #17324a;
    min-height: 146px;
    padding: 48px 42px 18px 18px;
    position: relative;
    text-decoration: none;
}

.lani-dd-type-grid a:nth-child(2) {
    --lani-dd-type-accent: #007a80;
}

.lani-dd-type-grid a:nth-child(3) {
    --lani-dd-type-accent: #b16b12;
}

.lani-dd-type-grid a:nth-child(4) {
    --lani-dd-type-accent: #7650a7;
}

.lani-dd-type-grid a::before {
    color: var(--lani-dd-type-accent);
    content: "TYPE " counter(lani-dream-type, decimal-leading-zero);
    counter-increment: lani-dream-type;
    font-size: 11px;
    font-weight: 800;
    left: 18px;
    letter-spacing: 0.13em;
    position: absolute;
    top: 18px;
}

.lani-dd-type-grid a::after {
    align-items: center;
    background: color-mix(in srgb, var(--lani-dd-type-accent) 10%, #fff);
    border-radius: 50%;
    color: var(--lani-dd-type-accent);
    content: "→";
    display: flex;
    font-size: 16px;
    height: 28px;
    justify-content: center;
    position: absolute;
    right: 14px;
    top: 14px;
    width: 28px;
}

.lani-dd-type-grid {
    counter-reset: lani-dream-type;
}

.lani-dd-type-grid a:hover,
.lani-dd-type-grid a:focus-visible {
    border-color: var(--lani-dd-type-accent);
    box-shadow: 0 12px 28px rgba(28, 76, 111, 0.14);
    transform: translateY(-2px);
}

.lani-dd-type-grid strong,
.lani-dd-type-grid span {
    display: block;
}

.lani-dd-type-grid strong {
    color: var(--lani-dd-type-accent);
    font-size: 19px;
    line-height: 1.35;
}

.lani-dd-type-grid span {
    color: #53697a;
    font-size: 12.5px;
    line-height: 1.55;
    margin-top: 7px;
    opacity: 1;
}

.lani-dd-card-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lani-dd-card-grid--compact {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lani-dd-card {
    min-width: 0;
}

.lani-dd-card > a {
    background: #fff;
    border: 1px solid var(--lani-dd-line);
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 20px;
}

.lani-dd-card > a:hover {
    border-color: #87b8d5;
    box-shadow: 0 12px 30px rgba(23, 104, 176, 0.1);
}

.lani-dd-card__badge {
    align-self: flex-start;
    background: #e0f3fa;
    border-radius: 999px;
    color: var(--lani-dd-primary-dark);
    font-size: 11px;
    font-weight: 800;
    margin-bottom: 8px;
    padding: 4px 9px;
}

.lani-dd-card h3 {
    color: var(--lani-dd-primary-dark);
    font-size: 17px;
    line-height: 1.5;
    margin: 0;
}

.lani-dd-card p {
    color: var(--lani-dd-muted);
    font-size: 13px;
    line-height: 1.65;
    margin: 8px 0 15px;
}

.lani-dd-card__meta {
    align-items: center;
    color: var(--lani-dd-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: 11px;
    gap: 6px 12px;
    justify-content: space-between;
    margin-top: auto;
}

.lani-dd-card-grid--compact .lani-dd-card p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

.lani-dd-gojuon {
    scroll-margin-top: 24px;
}

.lani-dd-kana-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.lani-dd-kana-shortcuts a {
    background: #fff;
    border: 1px solid #a8cddf;
    border-radius: 9px;
    color: var(--lani-dd-primary-dark);
    font-size: 13px;
    font-weight: 800;
    min-width: 54px;
    padding: 8px 10px;
    text-align: center;
}

.lani-dd-kana-shortcuts a:hover {
    background: var(--lani-dd-soft);
}

.lani-dd-kana-list {
    border-top: 1px solid var(--lani-dd-line);
}

.lani-dd-kana-list details {
    border-bottom: 1px solid var(--lani-dd-line);
    scroll-margin-top: 20px;
}

.lani-dd-kana-list summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    min-height: 60px;
    padding: 12px 6px;
}

.lani-dd-kana-list summary strong {
    color: var(--lani-dd-primary-dark);
    font-size: 18px;
}

.lani-dd-kana-list summary span {
    color: var(--lani-dd-muted);
    font-size: 12px;
    margin-right: 8px;
}

.lani-dd-kana-columns {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 4px 6px 28px;
}

.lani-dd-kana-columns section {
    min-width: 0;
}

.lani-dd-kana-columns h3 {
    border-bottom: 2px solid #b9dcec;
    color: var(--lani-dd-primary-dark);
    font-size: 20px;
    margin: 0 0 10px;
    padding-bottom: 5px;
}

.lani-dd-kana-columns ul,
.lani-dd-other-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.lani-dd-kana-columns li + li,
.lani-dd-other-list li + li {
    margin-top: 7px;
}

.lani-dd-kana-columns a,
.lani-dd-other-list a {
    color: #14517a;
    font-size: 13px;
    line-height: 1.5;
    text-decoration: underline;
    text-decoration-color: #b6d8e9;
    text-underline-offset: 3px;
}

.lani-dd-kana-columns a:hover,
.lani-dd-other-list a:hover {
    text-decoration-color: var(--lani-dd-primary);
}

.lani-dd-other-list {
    columns: 3;
    column-gap: 26px;
    padding: 4px 6px 28px;
}

.lani-dd-other-list li {
    break-inside: avoid;
    margin-bottom: 7px;
}

.lani-dd-split {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lani-dd-split > div {
    background: var(--lani-dd-soft);
    border: 1px solid var(--lani-dd-line);
    border-radius: 16px;
    padding: 22px;
}

.lani-dd-split h3 {
    color: var(--lani-dd-primary-dark);
    font-size: 18px;
    margin: 0 0 11px;
}

.lani-dd-split ul {
    margin: 0;
    padding-left: 1.2em;
}

.lani-dd-split li + li {
    margin-top: 8px;
}

.lani-dd-split a {
    text-decoration: underline;
    text-decoration-color: #afd4e7;
    text-underline-offset: 3px;
}

.lani-dd-note {
    background: #f4fafd;
    border: 1px solid #c9e5f2;
    border-left: 5px solid var(--lani-dd-primary);
    border-radius: 12px;
    margin-top: clamp(52px, 8vw, 86px);
    padding: 22px 24px;
}

.lani-dd-note h2 {
    color: var(--lani-dd-primary-dark);
    font-size: 18px;
    margin: 0;
}

.lani-dd-note p {
    color: var(--lani-dd-muted);
    font-size: 13px;
    margin: 7px 0 0;
}

.lani-dd .screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

@media (max-width: 940px) {
    .lani-dd-category-grid,
    .lani-dd-card-grid--compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lani-dd-type-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .lani-dd {
        padding-bottom: 44px;
    }

    .lani-dd-inner {
        width: calc(100% - 24px);
    }

    .lani-dd-hero {
        padding-block: 38px 34px;
    }

    .lani-dd-search-panel {
        border-radius: 16px;
        padding: 16px;
    }

    .lani-dd-search__row {
        grid-template-columns: 1fr;
    }

    .lani-dd-search button {
        width: 100%;
    }

    .lani-dd-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lani-dd-category-grid a {
        min-height: 138px;
        padding: 15px;
    }

    .lani-dd-category-grid span {
        font-size: 12px;
    }

    .lani-dd-card-grid,
    .lani-dd-card-grid--compact,
    .lani-dd-link-grid,
    .lani-dd-split {
        grid-template-columns: 1fr;
    }

    .lani-dd-type-grid {
        gap: 9px;
    }

    .lani-dd-type-grid a {
        min-height: 142px;
        padding: 46px 38px 16px 15px;
    }

    .lani-dd-kana-columns {
        grid-template-columns: 1fr;
    }

    .lani-dd-other-list {
        columns: 1;
    }
}

@media (max-width: 390px) {
    .lani-dd-category-grid {
        grid-template-columns: 1fr;
    }

    .lani-dd-type-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lani-dd-type-grid a {
        min-height: 154px;
        padding: 44px 13px 14px;
    }

    .lani-dd-type-grid a::before {
        left: 13px;
        top: 15px;
    }

    .lani-dd-type-grid a::after {
        right: 11px;
        top: 11px;
    }

    .lani-dd-type-grid strong {
        font-size: 17px;
    }

    .lani-dd-type-grid span {
        font-size: 11.5px;
    }

    .lani-dd-category-grid a {
        min-height: 120px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lani-dd *,
    .lani-dd *::before,
    .lani-dd *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

@media print {
    .lani-dd-search-panel,
    .lani-dd-category-grid,
    .lani-dd-type-grid,
    .lani-dd-kana-shortcuts {
        break-inside: avoid;
    }
}
