/* 晴间 · additive materials and light. Core layout and accepted colors live in site.css. */

/* Ambient layers: two very slow, low-distance motions. */
body.v2-public{position:relative;isolation:isolate}
body.v2-public::before,body.v2-public::after{content:"";position:fixed;inset:-4px;z-index:-1;pointer-events:none;will-change:transform,opacity}
body.v2-public::before{background-image:url('/assets/public/dream-stars.svg'),url('/assets/public/dream-card-material.webp');background-position:center 110px,center 700px;background-size:1200px 900px,1440px 480px;background-repeat:repeat,repeat-y;mix-blend-mode:multiply;opacity:.68;animation:dream-stars-breathe 22s ease-in-out infinite alternate}
body.v2-public::after{position:absolute;inset:0;background:url('/assets/public/dream-refraction.svg') center top / 1440px 1050px repeat-y;opacity:.86;animation:dream-glass-breathe 19s ease-in-out infinite alternate}
@keyframes dream-stars-breathe{from{transform:translate3d(0,0,0);opacity:.55}to{transform:translate3d(2px,-2px,0);opacity:.75}}
@keyframes dream-glass-breathe{from{transform:translate3d(-1px,1px,0);opacity:.52}to{transform:translate3d(1px,-1px,0);opacity:.76}}

/* Surfaces use soft material edges instead of solid white outlines. */
.glass,.v2-home-sequence>.v2-block{background-color:#fcfdff;background-image:linear-gradient(#ffffff7a,#ffffff7a),url('/assets/public/dream-card-material.webp');background-size:100% 100%,100% auto;background-position:center,right bottom;background-repeat:no-repeat;border-color:#b2c5dd24;box-shadow:0 3px 12px #879bc315}
.profile-card{background-image:linear-gradient(#ffffff66,#ffffff66),url('/assets/public/dream-profile-material.webp');background-size:100% 100%,100% 100%}
.radio-card,.recent-card{background-image:linear-gradient(#ffffff99,#ffffff99),url('/assets/public/dream-card-material.webp');background-size:100% 100%,auto 175px;background-position:center,right bottom}
.side-tags{background-image:linear-gradient(#ffffff80,#ffffff80),url('/assets/public/dream-card-material.webp')}
.listing-heading,.listing-body,.v2-reading #main>article,.v2-comments{border-color:#b2c5dd24}
.nav-pages,.home-taxonomy a,.site-menu nav>.search-link,.rss-button,.cover-badges>span{border-color:transparent}
.gallery-grid img,.radio-track>img{border-color:transparent}
.scenery-card{border-color:#b2c5dd30}
.avatar-ring{padding:3px;background:conic-gradient(#cce0ef,#c5c8e6,#e5d7e7,#d1e8f0,#cce0ef);box-shadow:0 0 0 2px #ffffff55,0 3px 10px #898ece24}.avatar-ring img{border-width:1px;border-color:#f7fbff99}
.profile-hello{background:#ffffff70;color:#8791ae;box-shadow:0 1px 4px #93a4c00b;border:0;padding:8px}
.profile-stats{background:linear-gradient(110deg,#e8f2fa9c,#eeeaf894);border-radius:10px;padding:12px 4px;margin:13px 0 10px;box-shadow:inset 0 1px 3px #a8bfd714}.profile-stats a+a{border-left:0}
.v2-footer{border-top-color:#b4c5db25}
[data-dream-surface]{position:relative;isolation:isolate;--dream-x:50%;--dream-y:50%;--dream-lift:0px}
.dream-glint{position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;overflow:hidden;background:radial-gradient(ellipse 86px 32px at 0 0,#dceffb24,transparent 90%)}
.dream-glint::after{content:"";position:absolute;inset:4px;padding:1px;border-radius:11px;background:radial-gradient(ellipse 190px 140px at var(--dream-x) var(--dream-y),#ffffffdf 0%,#bfdff2b3 34%,#d9c5eb8c 53%,transparent 76%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity 280ms ease;pointer-events:none}
.radio-card .dream-glint{background:radial-gradient(ellipse 66px 46px at 100% 100%,#dedffb24,transparent 90%)}
.profile-card:before,.radio-card:after{display:none}
.section-art{width:23px;height:23px;object-fit:contain;flex-shrink:0;filter:contrast(1.12) brightness(.97)}.v2-section-title .section-art{margin-right:1px}.author-whisper .dream-mascot{width:46px;height:46px;object-fit:contain;margin:0 auto 6px}.profile-card h2{letter-spacing:.4px}.profile-card>p{color:#7d86a1}.side-tags>div>a{background:#f7faff9c;border-color:#c6d2e33d;box-shadow:0 1px 3px #8394b00b}.recent-item>img{box-shadow:0 2px 5px #8597bb14}
@media(hover:hover) and (pointer:fine){
 [data-dream-surface]{transition:transform 280ms cubic-bezier(.22,.65,.35,1),box-shadow 280ms ease;transform:translate3d(0,calc(-1 * var(--dream-lift)),0)}
 [data-dream-surface][data-dream-active="true"]{box-shadow:0 5px 15px #879bc320}
 [data-dream-surface][data-dream-active="true"] .dream-glint::after{opacity:.78}
 .gallery-grid a img,.post-picture img{transition:transform 320ms ease,filter 320ms ease}
 .gallery-grid a:hover img,.post-picture:hover img{transform:scale(1.016);filter:brightness(1.02)}
}

/* Repeating micro ornaments add rhythm without coupling artwork to navigation labels. */
.nav-pages{min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:none;justify-content:flex-start}
.nav-pages>a{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;padding-inline:14px;line-height:16px}
.nav-decoration{width:16px;height:16px;object-fit:contain;flex:0 0 16px;opacity:.88}
.home-taxonomy{width:fit-content;max-width:min(1000px,calc(100% - 12px));justify-content:flex-start}
.home-taxonomy a{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;padding-inline:13px}
.taxonomy-decoration{width:12px;height:12px;object-fit:contain;flex:0 0 12px;opacity:.8}
.v2-footer:has(.footer-icp){flex-wrap:wrap;row-gap:7px}
.v2-footer>.footer-icp{display:block;flex:0 0 100%;max-width:none;width:100%;margin:0;text-align:center;font-size:10px;line-height:1.7;color:#929bb0;overflow-wrap:anywhere;word-break:normal}
.footer-icp>a{display:inline;overflow-wrap:anywhere;text-underline-offset:3px}.footer-icp>a:hover{text-decoration:underline}

/* Desktop search stays as accepted. Mobile controls below have thinner visible surfaces. */
.search-dialog{width:calc(100% - 36px);max-width:510px;padding:22px;background:linear-gradient(130deg,#fcfdfff7,#f5f7fdf8);border:1px solid #bbc8dd32;box-shadow:0 16px 55px #66729526;border-radius:16px}
.search-dialog h2{font-size:24px;line-height:1.4;margin:12px 0 16px;letter-spacing:.2px}
.search-dialog-top{gap:10px}.search-dialog-top .section-kicker{font-size:10px;letter-spacing:.5px}.search-dialog-top button{min-height:36px;padding:5px 8px;border-radius:9px;color:#858da7;font-size:11px}
.search-dialog input[type=search]{font-size:16px;min-height:44px;padding:9px 12px;background:#ffffffe8;border-color:#dce1ef;border-radius:10px}
.search-dialog .button{min-height:44px;padding:9px 16px;font-size:13px;background:linear-gradient(115deg,#b1abe0,#96b6df);border-color:#bbcae5}
.search-dialog>p{font-size:11px;line-height:1.7;margin-top:12px;color:#8992aa}
.search-dialog::backdrop{background:#404b665c;backdrop-filter:blur(5px)}
.dock-cat,.dock-search-label{display:none}

@media(max-width:700px){
 .js-enabled .site-menu[open] .nav-pages>a{gap:9px}.js-enabled .site-menu[open] .nav-decoration{opacity:.62}
 .home-taxonomy a{padding-inline:11px;line-height:12px}.home-taxonomy{padding-inline:1px}
 .v2-footer>.footer-icp{text-align:left;font-size:10px;line-height:1.8}
 body.v2-public::before{background-size:700px 700px,720px 240px;background-position:0 280px,left 700px;opacity:.72}
 body.v2-public::after{background-image:url('/assets/public/dream-mobile.svg');background-size:600px 940px;background-position:left 760px;opacity:.9}
 .v2-home-sequence>.v2-block,.theme-gallery,.side-tags{background-size:100% 100%,auto 200px;background-position:center,right bottom}
 .v2-home-sequence>.latest-v2{background-position:center,left top}
 .profile-card{background-size:100% 100%,100% 100%}
 .radio-card,.recent-card{background-size:100% 100%,auto 165px}
 .v2-header .mobile-search{position:relative;display:flex;align-items:center;justify-content:center;width:88px;min-width:88px;height:44px;min-height:44px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;flex-shrink:0}
 .v2-header .mobile-search::before{display:none;content:none}
 .mobile-search-face{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;height:30px;padding:0 13px;border:1px solid #b9c9df2b;border-radius:18px;background:linear-gradient(115deg,#fafbffb8,#eff3fcaa);box-shadow:0 2px 6px #65729812;color:#79829e}
 .mobile-search-word{font-size:10px;letter-spacing:.5px;line-height:1}.mobile-search-face svg{width:14px;height:14px}
 .site-menu>summary{background:linear-gradient(135deg,#ffffff8c,#e8efff7a);border-color:#b9c9df2b;box-shadow:0 2px 5px #828bbb12}
 .js-enabled .site-menu[open] .menu-foot,.js-enabled .site-menu[open] nav>.search-link{border-color:#b2c5dd24}
 html:not(.js-enabled) .site-menu nav>.search-link{border-color:#b2c5dd24}
 .search-dialog{max-width:390px;width:calc(100% - 32px);padding:17px 18px;margin:18px auto;max-height:calc(100dvh - 36px);border-radius:15px}
 .search-dialog h2{font-size:21px;margin:7px 0 11px;line-height:1.45}.search-dialog>p{font-size:11px;margin-top:9px}
 .search-dialog .search-input-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 64px;gap:8px;align-items:center;min-height:44px}
 .search-dialog .search-input-row::before{content:"";position:absolute;left:0;right:72px;top:5px;bottom:5px;pointer-events:none;background:#ffffffcc;border:1px solid #c5d2e747;border-radius:999px;box-shadow:inset 0 1px 3px #aabbd00a}
 .search-dialog input[type=search]{position:relative;z-index:1;min-width:0;width:100%;height:44px;min-height:44px;font-size:16px;line-height:22px;padding:10px 13px;background:transparent;border:0;border-radius:999px}
 .search-dialog .button{position:relative;isolation:isolate;width:64px;height:44px;min-height:44px;padding:0 12px;font-size:13px;border:0;border-radius:999px;background:transparent;box-shadow:none}
 .search-dialog input[type=search]:focus-visible{outline:none;box-shadow:none}
 .search-dialog .search-input-row:has(input:focus-visible)::before{border-color:#a8aed7b8;box-shadow:0 0 0 2px #b9c2e62b}
 .search-dialog .button:focus-visible{outline:none}
 .search-dialog .button:focus-visible::before{box-shadow:0 0 0 2px #afb8e24d}
 .search-dialog .button::before{content:"";position:absolute;inset:5px 0;z-index:-1;border-radius:999px;background:linear-gradient(115deg,#b1abe0,#96b6df);box-shadow:0 2px 5px #8f9ac819}

 /* One continuous glass contour; the center hit target has no separate disc. */
 .bottom-nav{min-height:62px;padding:5px 10px calc(7px + env(safe-area-inset-bottom));border:0;background:transparent;box-shadow:none;backdrop-filter:none;isolation:isolate;gap:5px;overflow:visible}
 .bottom-nav::before{content:"";position:absolute;inset:-22px 0 0;z-index:-1;pointer-events:none;background-image:url('/assets/public/dream-dock-sparks.svg'),linear-gradient(115deg,#fafbf8d9,#edf2fdd9 57%,#f7f5fbd9),url('/assets/public/dream-card-material.webp');background-size:100% 100%,100% 100%,100% auto;background-position:center,center,right bottom;background-repeat:no-repeat;backdrop-filter:blur(12px);-webkit-mask:url('/assets/public/dream-dock.svg') center top/100% 100% no-repeat;mask:url('/assets/public/dream-dock.svg') center top/100% 100% no-repeat;border:0;filter:drop-shadow(0 -2px 4px #8493bb17)}
 .bottom-nav>a{position:relative;isolation:isolate;min-width:48px;min-height:44px;justify-content:center;gap:4px;color:#8c92b4;font-size:10px}
 .bottom-nav>a:not(.bottom-search)::before{content:"";position:absolute;top:-4px;left:50%;width:46px;height:35px;border-radius:50%;transform:translateX(-50%);background:linear-gradient(125deg,#e9edf8a8,#dfe6f377);border:0;z-index:-1;opacity:0}
 .bottom-nav>a[aria-current]:not(.bottom-search)::before{opacity:1}.bottom-nav>a[aria-current]{color:#8784bd}.bottom-nav a[aria-current] svg{fill:#deddf351}
 .bottom-nav svg{width:22px;height:22px;stroke-width:1.45}.bottom-nav .nav-art,.bottom-nav .section-art{width:29px;height:29px;object-fit:contain;flex-shrink:0}.bottom-nav .nav-art{filter:contrast(1.12) brightness(.97) drop-shadow(0 1px 1px #7383a51c)}
 .bottom-nav>.bottom-search{width:52px;height:44px;min-width:52px;min-height:44px;border:0;margin:0;border-radius:18px;background:transparent;box-shadow:none;color:#8f88ba;justify-content:center;transform:translateY(-17px)}
 .bottom-nav>.bottom-search::before{display:none;content:none}
 .bottom-search svg{width:24px;height:24px;stroke-width:1.55}.bottom-nav .nav-search-art{width:29px;height:29px;object-fit:contain;filter:contrast(1.1) brightness(.97)}
 .bottom-nav>.bottom-search>.dock-search-label{display:block;position:absolute;left:50%;top:calc(100% + 7px);transform:translateX(-50%);font-size:10px;line-height:14px;color:#8c92b4;white-space:nowrap;pointer-events:auto}
 .bottom-nav .dock-cat{display:block;position:absolute;right:2px;top:-5px;width:28px;height:26px;pointer-events:none;opacity:.92;transform:rotate(5deg)}
 .dock-cat .cat-mark,.dock-cat .dream-mascot{width:28px;height:26px;object-fit:contain;color:#a2a5c5}
 .v2-footer{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
 .profile-stats{margin:9px 0 8px;padding:8px 2px;border-radius:8px}.v2-section-title .section-art,.now-heading .section-art{width:21px;height:21px}
}
@media(max-width:360px){
 .v2-header .mobile-search{width:48px;min-width:48px;height:44px;padding:0}.mobile-search-face{height:28px;justify-content:center;padding:0 12px;border-radius:16px}.mobile-search-word{display:none}.mobile-search-face svg{width:14px;height:14px}
 .search-dialog{padding:15px;width:calc(100% - 28px)}.search-dialog h2{font-size:20px}
 .bottom-nav{padding-inline:7px}.bottom-nav>a{min-width:43px}.bottom-nav .nav-art,.bottom-nav .section-art{width:28px;height:28px}.bottom-nav>a:not(.bottom-search)::before{width:42px;height:33px}.bottom-nav .dock-cat{right:1px}
}

/* Input and lifecycle constraints. Geometry above is static even in reduced motion. */
@media(hover:none),(pointer:coarse){[data-dream-surface]{transform:none!important}.mobile-search:active .mobile-search-face,.bottom-nav>a:active{opacity:.8;transition:opacity 100ms ease}.post-picture:active img,.gallery-grid a:active img{filter:brightness(.97);transition:filter 100ms ease}.dream-glint::after{display:none}}
@media(prefers-reduced-motion:reduce){body.v2-public::before,body.v2-public::after{animation:none;transform:none;will-change:auto;opacity:.8}[data-dream-surface]{transform:none!important;transition:none!important}.dream-glint::after{display:none}.mobile-search-face,.bottom-nav>a,.post-picture img,.gallery-grid img{transition:none!important}}
html[data-dream-paused="true"] body.v2-public::before,html[data-dream-paused="true"] body.v2-public::after{animation-play-state:paused}
/* Interior material is a single viewport layer; its edges are not tileable. */
body.v2-public:not(.page-home)::before{background-position:center 110px,center center;background-size:1200px 900px,cover;background-repeat:repeat,no-repeat}
@media(max-width:700px){body.v2-public:not(.page-home)::before{background-position:0 280px,center center;background-size:700px 700px,cover}}

/* Astra's hand-drawn vector signature keeps its lettering on every device. */
.v2-brand .astra-brand-lockup{display:flex;flex-direction:column;align-items:flex-start;gap:1px}
.v2-brand .astra-wordmark{width:152px;height:auto;filter:drop-shadow(0 1px 5px #ffffffb0)}
.v2-brand .astra-brand-lockup small{margin:0 0 0 5px;font-size:9px;letter-spacing:1px;line-height:1.35}
.footer-brand .astra-wordmark{width:140px;height:auto}
.menu-brand .astra-wordmark{width:156px;height:auto}
@media(max-width:700px){.v2-brand .astra-wordmark{width:126px}.v2-brand .astra-brand-lockup small{font-size:8px;letter-spacing:.7px}}
