:root{--bg:#060b17;--panel:#0c1628;--panel2:#111e35;--line:#233750;--text:#eef7ff;--muted:#90a4bd;--cyan:#22d9fa;--purple:#ac73ff;--pink:#ff63c3}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,'Noto Sans JP',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;line-height:1.7}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}button,input{font:inherit}.shell{max-width:1300px;margin:auto;padding-left:28px;padding-right:28px}.site-header{height:82px;position:sticky;top:0;z-index:20;background:rgba(5,10,22,.95);border-bottom:1px solid #23344f;backdrop-filter:blur(18px)}.header-inner{display:flex;align-items:center;justify-content:space-between;height:100%;gap:30px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand-mark{width:51px;height:51px;display:grid;place-items:center;font-weight:900;font-size:29px;color:#0a1426;background:linear-gradient(135deg,#39f0fa,#9e6eff);clip-path:polygon(16% 0,84% 0,100% 16%,100% 84%,84% 100%,16% 100%,0 84%,0 16%)}.brand-mark span,.thumb-placeholder span{color:#fff;font-size:12px}.brand-logo{max-height:56px;width:auto}.brand-copy{display:flex;flex-direction:column;line-height:1.25}.brand-copy strong{font-size:20px;letter-spacing:-.04em}.brand-copy strong span{color:var(--cyan)}.brand-copy small{font-size:9px;letter-spacing:.24em;color:var(--muted);margin-top:7px}.nav-list{display:flex;list-style:none;align-items:center;gap:26px;margin:0;padding:0}.nav-list a{font-size:13px;font-weight:700;color:#c6d5e6;transition:color .2s}.nav-list a:hover{color:var(--cyan)}.menu-toggle{display:none;background:transparent;color:white;border:1px solid var(--line);padding:6px 12px;border-radius:7px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 72% 55%,#182d62 0%,transparent 42%),linear-gradient(105deg,#081124,#080e20 65%,#130b2a);border-bottom:1px solid #17476a}.hero:before{content:'';position:absolute;inset:0;opacity:.16;background-image:linear-gradient(#2b8ba8 1px,transparent 1px),linear-gradient(90deg,#2b8ba8 1px,transparent 1px);background-size:55px 55px;mask-image:linear-gradient(to right,transparent,black)}.hero-inner{min-height:455px;display:grid;grid-template-columns:1.04fr .96fr;align-items:center;position:relative;z-index:1}.hero-copy{padding:62px 0}.eyebrow,.section-kicker,.panel-label{font-size:11px;color:var(--cyan);font-weight:800;letter-spacing:.15em}.status-dot{display:inline-block;background:#22f8c4;width:7px;height:7px;border-radius:50%;box-shadow:0 0 12px #22f8c4;margin-right:7px}.muted{color:#7485aa;margin-left:8px}.hero h1{font-size:clamp(32px,4vw,56px);line-height:1.45;letter-spacing:-.04em;margin:22px 0}.hero h1 em{font-style:normal;background:linear-gradient(100deg,#2be8f5,#c18cff,#ff7ccf);color:transparent;background-clip:text}.hero-copy>p{font-size:15px;color:#b8c9de;line-height:2.1}.cyber-button,.outline-button{display:inline-flex;align-items:center;justify-content:space-between;gap:45px;border:1px solid var(--cyan);background:linear-gradient(100deg,#15c5ec,#866aff);padding:13px 22px;color:#06101f;font-size:13px;font-weight:800;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));margin-top:16px}.hero-stats{display:flex;gap:26px;margin-top:37px;font-size:10px;letter-spacing:.11em;color:#6f93ac}.hero-visual{height:390px;position:relative;display:grid;place-items:center}.orbit{position:absolute;width:330px;height:330px;border:1px solid #26a5d064;border-radius:50%;transform:rotateX(65deg) rotate(-30deg)}.orbit-two{width:410px;height:410px;border-color:#a06cff45;transform:rotateY(64deg) rotate(20deg)}.hero-avatar{width:320px;height:320px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 45% 40%,#2b3973,#0b1834 60%,#11112b);border:1px solid #6b68db;box-shadow:0 0 90px #5340ff55, inset 0 0 40px #18d3fa35;overflow:hidden}.hero-avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{font-size:155px;font-weight:900;color:#2ce6f9;text-shadow:0 0 40px #1e9fff}.avatar-placeholder span{font-size:45px;color:#f17bff}.hero-float{position:absolute;background:#09152ad9;border:1px solid #3b7da3;padding:12px 17px;font-size:12px;color:#9be8fa;box-shadow:0 10px 40px #0008}.hero-float.top{right:5px;top:38px}.hero-float.top span{display:block;color:#4af7a9;font-size:10px}.hero-float.bottom{left:3px;bottom:34px;font-family:monospace}.cursor{color:var(--pink)}.hero-bottom{border-top:1px solid #15365b;color:#557b9e;text-align:center;padding:8px;font-size:10px;letter-spacing:.2em}.hero-bottom span{color:var(--cyan);margin:0 25px}.page-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:30px;padding-top:42px;padding-bottom:80px}.content-column{min-width:0}.section-block{margin-bottom:44px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px;gap:12px}.section-heading h2{font-size:23px;margin:3px 0 0;line-height:1.3}.accent-icon{color:var(--cyan);margin-right:8px}.section-heading>a{font-size:12px;color:#79ddff}.featured-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.article-card{background:linear-gradient(145deg,#101c31,#0a1425);border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:transform .2s,border-color .2s}.article-card:hover{transform:translateY(-3px);border-color:#20c5ec}.article-thumb{display:block;aspect-ratio:1.7;background:linear-gradient(135deg,#152f59,#44265e);overflow:hidden}.article-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.article-card:hover .article-thumb img{transform:scale(1.04)}.thumb-placeholder{width:100%;height:100%;display:grid;place-items:center;font-size:70px;color:#47d8fc;font-weight:900;text-shadow:0 0 25px #39baff}.article-info{padding:14px}.article-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:10px;color:#8b9bb3}.pill{background:#153b61;color:#65dafa;border-radius:3px;padding:2px 9px;font-weight:700}.article-info h3{font-size:15px;line-height:1.55;margin:10px 0}.article-info p{font-size:12px;line-height:1.75;color:#9aacc1;margin:0}.read-time{display:block;text-align:right;color:var(--cyan);font-size:10px;margin-top:12px}.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.category-tile{min-height:130px;position:relative;padding:15px;border:1px solid #2d4267;border-radius:9px;background:linear-gradient(140deg,#171d3a,#10172b);display:flex;flex-direction:column;align-items:flex-start;transition:border-color .2s}.category-tile:hover{border-color:var(--cyan)}.category-1{background:linear-gradient(140deg,#103044,#0d1a30)}.category-2{background:linear-gradient(140deg,#30193d,#17152b)}.category-3{background:linear-gradient(140deg,#17304a,#11182c)}.category-symbol{font-size:28px;color:#67e5ff}.category-tile strong{font-size:13px;margin-top:7px}.category-tile small{font-size:10px;color:#829bb5}.category-arrow{position:absolute;right:13px;bottom:12px;color:#74d6fa}.live-label{font-size:10px;color:#3debb9;letter-spacing:.1em}.latest-list{display:flex;flex-direction:column;gap:12px}.latest-list .article-card{display:grid;grid-template-columns:195px 1fr;min-height:128px}.latest-list .article-thumb{aspect-ratio:auto;height:100%}.latest-list .article-info{padding:12px 18px}.latest-list .article-info h3{margin:6px 0;font-size:16px}.latest-list .read-time{margin-top:2px}.more-wrap{text-align:center}.outline-button{background:transparent;color:var(--cyan);border:1px solid #347ea2;margin-top:22px}.sidebar{display:flex;flex-direction:column;gap:16px;min-width:0}.denko-panel{border:1px solid #244967;border-radius:10px;padding:22px;background:linear-gradient(150deg,#0f1d34,#091322);box-shadow:inset 0 1px #29426355}.denko-panel h2,.widget-title{font-size:17px;margin:8px 0 15px}.widget-title{border-bottom:1px solid #26445c;padding-bottom:10px}.denko-panel p{font-size:13px;color:#b0c0d4}.profile-icon{width:98px;height:98px;border-radius:50%;background:linear-gradient(135deg,#294ea0,#6b3ca1);border:2px solid #43cfff;display:grid;place-items:center;font-size:38px;font-weight:900;margin:20px auto;color:#fff;box-shadow:0 0 30px #7544f455}.default-profile{text-align:center}.default-profile .panel-label{text-align:left}.profile-status{font-size:11px;color:#48eab8}.denko-panel input[type=search],.denko-panel input[type=text]{background:#091020;border:1px solid #294460;border-radius:5px;padding:11px;color:white;max-width:100%;width:100%}.denko-panel button,.denko-panel input[type=submit]{border:1px solid #1fc6ee;background:#123858;color:#bdf5ff;border-radius:5px;padding:9px 14px;cursor:pointer;margin-top:8px}.sidebar-categories{list-style:none;padding:0;margin:0}.sidebar-categories li{padding:8px 0;border-bottom:1px solid #20344b;font-size:13px}.sidebar-categories a:hover{color:var(--cyan)}.sidebar-hint{font-size:11px;color:#718eaa;margin:0}.widget ul{padding-left:18px}.widget li{margin:7px 0}.widget a:hover{color:var(--cyan)}.site-footer{border-top:1px solid #1b3650;background:#080f1c}.footer-inner{display:flex;justify-content:space-between;align-items:center;padding-top:32px;padding-bottom:32px}.footer-inner strong{letter-spacing:.2em;color:var(--cyan)}.footer-inner p,.footer-inner small{color:#7890aa;font-size:12px}.generic-page{padding-top:60px;padding-bottom:90px;min-height:65vh}.generic-page h1{font-size:32px}.generic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.single-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:30px}.single-article{padding:30px}.single-featured{width:100%;border-radius:9px;margin:20px 0}.single-date{color:#8b9cb6}.article-body{font-size:16px;line-height:2;color:#d8e3f1;overflow-wrap:anywhere}.article-body a{color:var(--cyan);text-decoration:underline}.article-body pre{overflow-x:auto;background:#060e1b;padding:18px;border:1px solid #244566;border-radius:8px}.article-body img{height:auto}.not-found{text-align:center}.empty-state{padding:35px;color:#91a7c0;border:1px dashed #304967;border-radius:8px;grid-column:1/-1}
@media(max-width:1080px){.nav-list{gap:13px}.page-layout,.single-layout{grid-template-columns:minmax(0,1fr) 270px;gap:18px}.brand-copy strong{font-size:17px}.hero-avatar{width:270px;height:270px}.hero-visual{height:350px}}
@media(max-width:820px){.site-header{height:70px}.menu-toggle{display:block}.primary-nav{display:none;position:absolute;top:70px;left:0;right:0;background:#071124;border-bottom:1px solid #284e6b;padding:20px}.primary-nav.is-open{display:block}.nav-list{display:flex;flex-direction:column;align-items:stretch;gap:15px}.hero-inner{grid-template-columns:1fr;min-height:0}.hero-copy{padding:50px 0 12px}.hero-visual{height:250px}.hero-avatar{width:225px;height:225px}.hero-float.top{right:6%}.hero-float.bottom{left:8%;bottom:5px}.page-layout,.single-layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.sidebar-hint{grid-column:1/-1}.hero-bottom{font-size:8px}.generic-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.shell{padding-left:16px;padding-right:16px}.brand-mark{width:43px;height:43px;font-size:23px}.brand-copy strong{font-size:16px}.brand-copy small{font-size:7px}.hero h1{font-size:32px}.hero-copy>p{font-size:13px}.hero-stats{gap:12px;font-size:8px}.hero-bottom{letter-spacing:.05em}.hero-bottom span{margin:0 5px}.featured-grid{grid-template-columns:1fr}.featured-grid .article-card{display:grid;grid-template-columns:120px 1fr}.featured-grid .article-thumb{height:100%;aspect-ratio:auto}.featured-grid .article-info{padding:10px}.featured-grid .article-info p{display:none}.featured-grid .article-info h3{font-size:13px}.category-grid{grid-template-columns:repeat(2,1fr)}.latest-list .article-card{grid-template-columns:110px 1fr;min-height:120px}.latest-list .article-info{padding:10px}.latest-list .article-info h3{font-size:13px}.latest-list .article-info p{display:none}.sidebar{grid-template-columns:1fr}.section-heading h2{font-size:21px}.generic-grid{grid-template-columns:1fr}.single-article{padding:18px}.footer-inner{flex-direction:column;align-items:flex-start}.hero-float{font-size:10px}}

/* Bookshelf and reading view */
:root {
    --denko-header-height: 72px;
    --denko-dock-gap: 175px;
}
.site-header {
    height: var(--denko-header-height);
}
.header-inner {
    gap: 12px;
}
a:focus-visible, button:focus-visible, summary:focus-visible {
    outline: 2px solid var(--cyan);
    outline-offset: 4px;
}
.denko-menu-button {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 7px 11px;
    border: 1px solid var(--line);
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    white-space: nowrap;
    list-style: none;
}
.denko-menu-button::-webkit-details-marker {
    display: none;
}
.denko-menu[open] .denko-menu-button {
    border-color: var(--cyan);
}
.denko-menu-panel {
    position: absolute;
    top: 100%;
    right: max(16px, calc((100vw - 1244px) / 2));
    width: min(380px, calc(100vw - 32px));
    max-height: calc(100vh - var(--denko-header-height) - 16px);
    overflow: auto;
    padding: 22px;
    background: #101a2f;
    border: 1px solid #35577b;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 16px 45px #0009;
}
.denko-menu-list, .denko-series-list {
    list-style: none;
    padding: 0;
    margin: 12px 0 0;
}
.denko-menu-list a, .denko-series-list a {
    display: block;
    padding: 11px 12px;
    border-bottom: 1px solid var(--line);
}
.denko-menu-list a:hover, .denko-series-list a:hover {
    color: var(--cyan);
    background: #16243c;
}
.denko-menu-list .sub-menu {
    list-style: none;
    padding-left: 16px;
}
.denko-home {
    max-width: 1080px;
    padding-top: clamp(38px, 7vw, 88px);
    padding-bottom: 56px;
}
.denko-shelf-section {
    text-align: center;
}
.denko-shelf-section h1 {
    margin: 5px 0 26px;
    font-size: clamp(26px, 4vw, 44px);
}
.denko-shelf {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr) minmax(0, 1fr);
    align-items: end;
    gap: clamp(7px, 2vw, 24px);
    padding: 15px clamp(8px, 3vw, 35px) 0;
    border-bottom: 7px solid #2f4e76;
    border-radius: 5px;
    background: radial-gradient(ellipse at bottom, #24375f, transparent 76%);
    box-shadow: 0 9px 28px #0008, 0 2px 9px #49d3ff55;
}
.denko-book {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-align: left;
    background: #101c33;
    border: 1px solid #3b5276;
    border-bottom: 0;
    border-radius: 6px 6px 0 0;
    box-shadow: -4px 0 10px #0005;
    transition: transform .18s, border-color .18s;
}
.denko-book:hover {
    transform: translateY(-4px);
    border-color: var(--cyan);
}
.denko-book-0 { grid-column: 2; grid-row: 1; border-color: #6994c2; }
.denko-book-1 { grid-column: 1; grid-row: 1; }
.denko-book-2 { grid-column: 3; grid-row: 1; }
.denko-cover {
    display: grid;
    place-items: center;
    position: relative;
    aspect-ratio: 1.45;
    background: radial-gradient(ellipse at 25% 15%, #234b68, #151a42 75%);
}
.denko-book-1 .denko-cover { background: linear-gradient(135deg, #3c245d, #182448); }
.denko-book-2 .denko-cover { background: linear-gradient(135deg, #154358, #14203a); }
.denko-cover img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.denko-cover-mark {
    color: #90eaff;
    text-shadow: 0 0 26px #39aaff;
    font-size: clamp(22px, 7vw, 80px);
}
.denko-cover-number {
    position: absolute;
    top: 8px;
    left: 8px;
    padding: 2px 5px;
    color: #d5ecff;
    background: #070e1ddd;
    font: 10px monospace;
}
.denko-book-info {
    display: grid;
    gap: 4px;
    padding: clamp(6px, 1.5vw, 16px);
    box-shadow: inset 3px 0 #5276a8;
    overflow-wrap: anywhere;
    line-height: 1.45;
    font-size: clamp(12px, 1.7vw, 17px);
}
.denko-book-0 .denko-book-info { font-size: clamp(14px, 2.2vw, 22px); }
.denko-book-label {
    color: var(--cyan);
    font-size: 10px;
    font-weight: 700;
}
.denko-series-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    max-width: 460px;
    margin: 26px auto 0;
    padding: 12px 18px;
    text-align: left;
    border: 1px solid #3f6e93;
    border-radius: 8px;
    background: linear-gradient(105deg, #142e48, #1e1b3c);
}
.denko-series-link:hover { border-color: var(--cyan); }
.denko-series-link small {
    display: block;
    color: var(--cyan);
    font: 10px monospace;
    letter-spacing: .12em;
}
.denko-series-section {
    margin-top: 70px;
    scroll-margin-top: calc(var(--denko-header-height) + 16px);
}
.denko-series-section h2 { margin: 4px 0; }
.denko-series-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr));
    gap: 10px;
}
.denko-series-list a {
    height: 100%;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: var(--panel);
}
.denko-widgets { margin-top: 48px; }
.denko-reading {
    max-width: 880px;
}
.denko-article-header {
    margin-bottom: 30px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--line);
}
.denko-article-header h1 {
    margin: 10px 0 15px;
    font-size: clamp(28px, 5vw, 48px);
    line-height: 1.35;
    overflow-wrap: anywhere;
}
.denko-reading .article-body :is(h2, h3, h4, h5, h6) {
    scroll-margin-top: calc(var(--denko-header-height) + 22px);
    line-height: 1.45;
    margin-top: 2em;
}
.denko-reading .article-body h2 {
    border-left: 3px solid var(--cyan);
    padding-left: 12px;
}
.denko-reading .article-body .wp-block-table {
    overflow-x: auto;
    margin-inline: 0;
}
.has-denko-companion {
    padding-bottom: calc(var(--denko-dock-gap) + env(safe-area-inset-bottom));
}
.has-denko-companion.denko-companion-collapsed {
    --denko-dock-gap: 56px;
}
.denko-companion {
    position: fixed;
    z-index: 15;
    bottom: max(12px, env(safe-area-inset-bottom));
    left: max(12px, env(safe-area-inset-left));
    max-width: min(385px, calc(100vw - 24px));
}
.denko-companion-panel {
    display: flex;
    align-items: end;
    gap: 10px;
}
.denko-companion [hidden] { display: none; }
.denko-companion-toggle {
    display: block;
    margin: 0 0 5px;
    padding: 4px 9px;
    color: var(--text);
    font-size: 12px;
    border: 1px solid #3d6c8d;
    border-radius: 6px;
    background: #101d32;
    cursor: pointer;
}
.denko-portrait {
    width: 98px;
    height: 98px;
    flex: 0 0 auto;
    object-fit: cover;
    object-position: center;
    border: 1px solid #6899c0;
    border-radius: 18px;
    background: var(--panel2);
}
.denko-speech {
    position: relative;
    min-width: 0;
    padding: 9px 13px;
    border: 1px solid #477a9d;
    border-radius: 9px;
    background: #101d32;
    box-shadow: 0 6px 24px #0009;
    overflow-wrap: anywhere;
}
.denko-speech::before {
    content: "";
    position: absolute;
    left: -6px;
    bottom: 23px;
    width: 10px;
    height: 10px;
    border-left: 1px solid #477a9d;
    border-bottom: 1px solid #477a9d;
    background: #101d32;
    transform: rotate(45deg);
}
.denko-speech strong {
    color: var(--cyan);
    font-size: 11px;
    display: block;
}
.denko-speech p {
    margin: 2px 0 0;
    max-height: 85px;
    overflow: auto;
    font-size: 13px;
    line-height: 1.55;
}
@media (max-width: 560px) {
    .brand { min-width: 0; flex-shrink: 1; }
    .brand-mark { flex: 0 0 auto; }
    .brand-logo { max-width: 48px; object-fit: contain; }
    .brand-copy strong { font-size: 14px; }
    .denko-menu-button { gap: 5px; font-size: 12px; }
    .denko-cover-number { display: none; }
    .denko-book-label { font-size: 9px; }
    .denko-companion { max-width: calc(100vw - 24px); }
    .denko-portrait { width: 72px; height: 72px; border-radius: 13px; }
    .denko-speech p { max-height: 65px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .denko-book { transition: none; }
    .denko-book:hover { transform: none; }
}
