/* Dream dictionary hub only. No article, shared theme, taxonomy or search changes. */
.lani-dd--palace {
    --palace-ink: #102f61;
    --palace-muted: #385478;
    --palace-gold: #ac8240;
    --palace-paper: #fffefa;
    --palace-serif: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
}
.lani-dd--palace .lani-dd-hero {
    position: relative;
    isolation: isolate;
    overflow: visible;
    border: 0;
    padding: 56px 0 26px;
    background: var(--palace-paper) !important;
    text-align: center;
}
.lani-dd--palace .lani-dd-palace-scene {
    position: absolute;
    z-index: -2;
    inset: 0 0 auto;
    display: block;
    height: clamp(500px, 37vw, 650px);
    pointer-events: none;
    overflow: hidden;
}
.lani-dd--palace .lani-dd-palace-scene img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center top;
}
.lani-dd--palace .lani-dd-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(ellipse 33% 35% at 50% 23%, #ffffff70, transparent);
}
.lani-dd--palace .lani-dd-hero > .lani-dd-inner {
    max-width: 1180px;
    position: relative;
}
.lani-dd--palace .lani-dd-hero .lani-dd-kicker,
.lani-dd--palace #lani-dd-theme .lani-dd-kicker {
    color: #725027 !important;
    font: 500 12px/1.5 var(--palace-serif);
    letter-spacing: .28em;
    margin: 0;
}
.lani-dd--palace .lani-dd-palace-ornament {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: var(--palace-gold);
    font-size: 23px;
    line-height: 1;
    width: min(320px, 68%);
    margin: 11px auto 14px;
}
.lani-dd--palace .lani-dd-palace-ornament::before,
.lani-dd--palace .lani-dd-palace-ornament::after {
    content: "";
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, #b9944d);
}
.lani-dd--palace .lani-dd-palace-ornament::after { transform: rotate(180deg); }
.lani-dd--palace .lani-dd-hero h1 {
    color: var(--palace-ink) !important;
    font: 500 clamp(58px, 7vw, 92px)/1.25 var(--palace-serif);
    letter-spacing: .12em;
    text-indent: .12em;
    margin: 0;
    text-shadow: 0 2px 18px #ffffffb3;
}
.lani-dd--palace .lani-dd-palace-tagline {
    color: var(--palace-ink) !important;
    font: 600 clamp(17px, 1.8vw, 23px)/1.7 var(--palace-serif);
    letter-spacing: .045em;
    margin: 13px 0 0;
    text-shadow: 0 1px 8px #fff;
}
.lani-dd--palace .lani-dd-search-panel {
    max-width: 920px;
    width: 100%;
    margin: 54px auto 0;
    padding: 0;
    background: transparent !important;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    text-align: left;
    scroll-margin-top: 110px;
}
.lani-dd--palace .lani-dd-search {
    position: relative;
    background: #fffffffa !important;
    border: 1px solid #d4dfed;
    border-radius: 56px;
    box-shadow: 0 10px 26px #244c7426, inset 0 1px 0 #fff;
    padding: 14px 17px 15px 78px;
}
.lani-dd--palace .lani-dd-palace-search-icon {
    position: absolute;
    width: 33px;
    height: 33px;
    left: 27px;
    top: 50%;
    transform: translateY(-50%);
    color: #315d92;
}
.lani-dd--palace .lani-dd-search label {
    font: 600 15px/1.4 var(--palace-serif);
    color: var(--palace-ink) !important;
    padding-right: 242px;
    margin: 0 0 4px;
}
.lani-dd--palace .lani-dd-search__row {
    grid-template-columns: minmax(0, 1fr) 225px;
    gap: 16px;
    align-items: end;
}
.lani-dd--palace .lani-dd-search input[type="search"] {
    border: 1px solid #b9c9df;
    background: #fff !important;
    border-radius: 28px;
    min-height: 40px;
    height: 40px;
    padding: 8px 17px;
    color: #17355b !important;
    font-size: 16px;
    box-shadow: none;
}
.lani-dd--palace .lani-dd-search input[type="search"]::placeholder {
    color: #677c98 !important;
}
.lani-dd--palace .lani-dd-search button {
    border-radius: 32px;
    min-height: 58px;
    margin-top: -23px;
    background: linear-gradient(165deg, #376da9, #153d75) !important;
    box-shadow: 0 3px 7px #163c7429, inset 0 1px 1px #78a5d5;
    color: #fff !important;
    font: 600 18px/1.4 var(--palace-serif);
    letter-spacing: .04em;
    padding: 13px 16px;
}
.lani-dd--palace .lani-dd-search button span {
    display: inline-block;
    font: 400 27px/0.7 sans-serif;
    margin-left: 10px;
}
.lani-dd--palace .lani-dd-search button:hover {
    background: linear-gradient(165deg, #2c5d96, #102e5a) !important;
}
.lani-dd--palace .lani-dd-results {
    position: relative;
    z-index: 2;
    margin: 10px 12px 0;
    text-align: left;
}
.lani-dd--palace .lani-dd-quick {
    align-items: center;
    justify-content: center;
    margin: 17px auto 0;
    gap: 8px 16px;
    padding-inline: 10px;
}
.lani-dd--palace .lani-dd-quick a {
    color: var(--palace-ink) !important;
    background: #ffffffcf !important;
    border: 0;
    border-radius: 4px;
    padding: 3px 6px;
    font: 500 14px/1.7 var(--palace-serif);
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-color: #9eaac1;
}
.lani-dd--palace .lani-dd-quick-label {
    color: var(--palace-muted);
    font-size: 12px;
}
.lani-dd--palace #lani-dd-theme {
    isolation: isolate;
    position: relative;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 40px max(24px, calc((100% - 1280px)/2)) 62px;
    background: var(--palace-paper) !important;
    scroll-margin-top: 90px;
}
.lani-dd--palace #lani-dd-theme::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background: url("dream-palace/theme-border.webp") center/100% auto no-repeat;
    opacity: .9;
    pointer-events: none;
}
.lani-dd--palace #lani-dd-theme .lani-dd-heading {
    max-width: none;
    text-align: center;
    margin: 0 0 27px;
}
.lani-dd--palace #lani-dd-theme .lani-dd-heading h2 {
    color: var(--palace-ink) !important;
    font: 600 clamp(27px, 3vw, 39px)/1.5 var(--palace-serif);
    letter-spacing: .04em;
    text-wrap: balance;
    margin: 0;
}
.lani-dd--palace #lani-dd-theme .lani-dd-heading > p:last-child {
    color: var(--palace-muted) !important;
    font: 400 14px/1.8 var(--palace-serif);
    margin: 9px auto 0;
}
.lani-dd--palace .lani-dd-category-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
.lani-dd--palace .lani-dd-category-grid > a {
    display: grid;
    grid-template-columns: 65px minmax(0, 1fr) 12px;
    align-items: center;
    gap: 10px;
    min-height: 88px;
    padding: 8px 13px 8px 10px;
    border: 1px solid #d5bc87;
    border-radius: 9px;
    background: linear-gradient(135deg, #fff, #fcfaf5) !important;
    box-shadow: 0 3px 6px #56401614;
}
.lani-dd--palace .lani-dd-category-grid > a:hover {
    border-color: #aa8138;
    box-shadow: 0 5px 15px #244c741a;
    transform: translateY(-2px);
}
.lani-dd--palace .lani-dd-category-grid strong {
    color: var(--palace-ink) !important;
    font: 600 clamp(14px, 1.25vw, 17px)/1.55 var(--palace-serif);
    overflow-wrap: anywhere;
}
.lani-dd--palace .lani-dd-category-grid .lani-dd-theme-icon {
    display: block;
    width: 65px;
    height: 65px;
    margin: 0;
    border-radius: 50%;
    background-image: url("dream-palace/theme-medallions.webp");
    background-size: 430% 430%;
    background-position: var(--icon-x, 1%) var(--icon-y, 1%);
}
.lani-dd--palace [data-lani-dd-category="people-family"] { --icon-x: 1%; --icon-y: 1%; }
.lani-dd--palace [data-lani-dd-category="love"] { --icon-x: 34%; --icon-y: 1%; }
.lani-dd--palace [data-lani-dd-category="death"] { --icon-x: 67%; --icon-y: 1%; }
.lani-dd--palace [data-lani-dd-category="animals"] { --icon-x: 100%; --icon-y: 1%; }
.lani-dd--palace [data-lani-dd-category="insects"] { --icon-x: 1%; --icon-y: 32%; }
.lani-dd--palace [data-lani-dd-category="food"] { --icon-x: 34%; --icon-y: 32%; }
.lani-dd--palace [data-lani-dd-category="places"] { --icon-x: 67%; --icon-y: 32%; }
.lani-dd--palace [data-lani-dd-category="transport"] { --icon-x: 100%; --icon-y: 32%; }
.lani-dd--palace [data-lani-dd-category="work-school"] { --icon-x: 1%; --icon-y: 63%; }
.lani-dd--palace [data-lani-dd-category="body-health"] { --icon-x: 34%; --icon-y: 63%; }
.lani-dd--palace [data-lani-dd-category="nature-disaster"] { --icon-x: 67%; --icon-y: 63%; }
.lani-dd--palace [data-lani-dd-category="actions"] { --icon-x: 100%; --icon-y: 63%; }
.lani-dd--palace [data-lani-dd-category="feelings"] { --icon-x: 1%; --icon-y: 94%; }
.lani-dd--palace [data-lani-dd-category="fear"] { --icon-x: 34%; --icon-y: 94%; }
.lani-dd--palace [data-lani-dd-category="good-luck"] { --icon-x: 67%; --icon-y: 94%; }
.lani-dd--palace [data-lani-dd-category="objects"] { --icon-x: 100%; --icon-y: 94%; }
.lani-dd--palace .lani-dd-category-grid .lani-dd-theme-arrow {
    margin: 0;
    color: #9d742b !important;
    font: 300 27px/1 sans-serif;
}
.lani-dd--palace .lani-dd-category-grid .screen-reader-text {
    /* Keep descriptions/counts available to assistive technology, not in the visual grid. */
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    border: 0;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
}
@media (max-width: 1050px) and (min-width: 681px) {
    .lani-dd--palace .lani-dd-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lani-dd--palace .lani-dd-category-grid strong { font-size: 18px; }
}
@media (max-width: 680px) {
    .lani-dd--palace .lani-dd-hero { padding: 36px 0 20px; }
    .lani-dd--palace .lani-dd-palace-scene { height: 600px; }
    .lani-dd--palace .lani-dd-palace-scene img { object-position: center top; }
    .lani-dd--palace .lani-dd-hero::before {
        background: radial-gradient(ellipse 44% 24% at 50% 16%, #fffffff2, transparent);
    }
    .lani-dd--palace .lani-dd-hero .lani-dd-kicker { font-size: 9px; letter-spacing: .22em; }
    .lani-dd--palace .lani-dd-hero h1 { font-size: clamp(48px, 14vw, 70px); }
    .lani-dd--palace .lani-dd-palace-tagline { font-size: clamp(14px, 4.1vw, 20px); margin-top: 8px; }
    .lani-dd--palace .lani-dd-palace-ornament { margin: 9px auto 10px; font-size: 19px; width: 210px; }
    .lani-dd--palace .lani-dd-search-panel { margin-top: 47px; }
    .lani-dd--palace .lani-dd-search { padding: 17px 14px; border-radius: 27px; }
    .lani-dd--palace .lani-dd-palace-search-icon { width: 20px; height: 20px; left: 29px; top: 64px; }
    .lani-dd--palace .lani-dd-search label { padding: 0; margin-bottom: 9px; text-align: center; font-size: 14px; }
    .lani-dd--palace .lani-dd-search__row { grid-template-columns: 1fr; gap: 11px; }
    .lani-dd--palace .lani-dd-search input[type="search"] { height: 46px; padding: 8px 10px 8px 42px; font-size: 16px; }
    .lani-dd--palace .lani-dd-search button { min-height: 49px; margin: 0; font-size: 17px; }
    .lani-dd--palace .lani-dd-quick { gap: 6px 8px; margin-top: 14px; padding: 0 4px; }
    .lani-dd--palace .lani-dd-quick a { font-size: 12px; padding: 3px 5px; background: #fffffff0 !important; }
    .lani-dd--palace .lani-dd-quick-label { width: 100%; text-align: center; font-size: 11px; }
    .lani-dd--palace #lani-dd-theme { padding: 28px 14px 40px; scroll-margin-top: 72px; }
    .lani-dd--palace #lani-dd-theme::before { background-size: auto 100%; opacity: .5; }
    .lani-dd--palace #lani-dd-theme .lani-dd-heading { margin-bottom: 21px; }
    .lani-dd--palace #lani-dd-theme .lani-dd-heading h2 { font-size: 25px; max-width: 370px; margin-inline: auto; line-height: 1.5; }
    .lani-dd--palace #lani-dd-theme .lani-dd-heading > p:last-child { max-width: 310px; font-size: 12px; }
    .lani-dd--palace .lani-dd-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 8px; }
    .lani-dd--palace .lani-dd-category-grid > a {
        grid-template-columns: 43px minmax(0, 1fr) 7px;
        gap: 5px;
        min-height: 78px;
        padding: 7px 7px 7px 5px;
        border-radius: 8px;
    }
    .lani-dd--palace .lani-dd-category-grid .lani-dd-theme-icon { width: 43px; height: 43px; }
    .lani-dd--palace .lani-dd-category-grid strong { font-size: 13px; line-height: 1.65; }
    .lani-dd--palace .lani-dd-category-grid .lani-dd-theme-arrow { font-size: 20px; }
}
@media (max-width: 350px) {
    .lani-dd--palace #lani-dd-theme { padding-inline: 10px; }
    .lani-dd--palace .lani-dd-category-grid > a { grid-template-columns: 34px minmax(0, 1fr) 6px; gap: 4px; }
    .lani-dd--palace .lani-dd-category-grid .lani-dd-theme-icon { width: 34px; height: 34px; }
    .lani-dd--palace .lani-dd-category-grid strong { font-size: 12px; }
}
@media screen {
    html[data-lani-theme="dark"] .lani-dd--palace {
        --palace-ink: #e8f1ff;
        --palace-muted: #becde1;
        --palace-gold: #d8b46d;
        --palace-paper: #151e2e;
    }
    html[data-lani-theme="dark"] .lani-dd--palace .lani-dd-palace-scene { filter: brightness(.5) saturate(.7); }
    html[data-lani-theme="dark"] .lani-dd--palace .lani-dd-hero::before {
        background: linear-gradient(180deg, #15243b24, #15243b50 55%, #151e2e 100%);
    }
    html[data-lani-theme="dark"] .lani-dd--palace .lani-dd-hero h1,
    html[data-lani-theme="dark"] .lani-dd--palace .lani-dd-palace-tagline { text-shadow: 0 1px 10px #0a1633; }
    html[data-lani-theme="dark"] .lani-dd--palace .lani-dd-hero .lani-dd-kicker,
    html[data-lani-theme="dark"] .lani-dd--palace #lani-dd-theme .lani-dd-kicker { color: #ead09a !important; }
    html[data-lani-theme="dark"] .lani-dd--palace .lani-dd-search { background: #1d2b40f5 !important; border-color: #536785 !important; }
    html[data-lani-theme="dark"] .lani-dd--palace .lani-dd-search input[type="search"] { background: #142034 !important; border-color: #687c9b !important; color: #e8f1ff !important; }
    html[data-lani-theme="dark"] .lani-dd--palace .lani-dd-search input[type="search"]::placeholder { color: #b7c6db !important; }
    html[data-lani-theme="dark"] .lani-dd--palace .lani-dd-palace-search-icon { color: #b4cbe8; }
    html[data-lani-theme="dark"] .lani-dd--palace .lani-dd-quick a { background: #18283fe6 !important; }
    html[data-lani-theme="dark"] .lani-dd--palace #lani-dd-theme::before { opacity: .13; mix-blend-mode: luminosity; }
    html[data-lani-theme="dark"] .lani-dd--palace .lani-dd-category-grid > a { background: linear-gradient(145deg, #203047, #182539) !important; border-color: #85734e !important; }
    html[data-lani-theme="dark"] .lani-dd--palace .lani-dd-category-grid .lani-dd-theme-icon { filter: brightness(.83); }
    html[data-lani-theme="dark"] .lani-dd--palace .lani-dd-category-grid .lani-dd-theme-arrow { color: #e0be7c !important; }
}
@media print {
    .lani-dd--palace .lani-dd-palace-scene,
    .lani-dd--palace #lani-dd-theme::before { display: none; }
}
