@import"https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;600&family=IBM+Plex+Sans+KR:wght@400;500;600;700&family=Noto+Serif+KR:wght@400;500;600&display=swap";@font-face{font-family:Neue Montreal;font-style:normal;font-weight:300;src:url(/assets/NeueMontreal-Light-B8VR3EGD.otf) format("opentype");font-display:swap}@font-face{font-family:Neue Montreal;font-style:normal;font-weight:400;src:url(/assets/NeueMontreal-Regular-CxM6MvLr.otf) format("opentype");font-display:swap}@font-face{font-family:Neue Montreal;font-style:normal;font-weight:500;src:url(/assets/NeueMontreal-Medium-BnH0vvJJ.otf) format("opentype");font-display:swap}@font-face{font-family:Neue Montreal;font-style:normal;font-weight:700;src:url(/assets/NeueMontreal-Bold-sjQCZh1u.otf) format("opentype");font-display:swap}@font-face{font-family:Editorial Old;font-style:normal;font-weight:400;src:url(/assets/ppeditorialold-regular-D59dTj5m.otf) format("opentype");font-display:swap}@font-face{font-family:Editorial Old;font-style:italic;font-weight:400;src:url(/assets/ppeditorialold-italic-C5jjaJon.otf) format("opentype");font-display:swap}@font-face{font-family:SUIT;font-style:normal;font-weight:400;src:url(https://cdn.jsdelivr.net/gh/sunn-us/SUIT/fonts/static/woff2/SUIT-Regular.woff2) format("woff2");font-display:swap}:root{background:#fff;color:#050505;--font-ui: "Neue Montreal", "IBM Plex Sans KR", sans-serif;--font-display: "Editorial Old", "Noto Serif KR", serif;--font-body: "IBM Plex Sans KR", sans-serif;--font-emphasis: "Noto Serif KR", serif;--font-image-body: "IBM Plex Sans KR", sans-serif;--font-image-title: "SUIT", "IBM Plex Sans KR", sans-serif;--font-meta: "Geist Mono", "IBM Plex Sans KR", monospace;--font-movement: "IBM Plex Sans KR", Arial, sans-serif;--app-viewport-height: 100vh;--desktop-header-height: 76px;--keyword-orbit-diameter: 1960px;--keyword-orbit-edge-x: 260px;--keyword-node-origin-x: -980px;--keyword-word-offset: 160px;font-family:var(--font-body);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}@supports (height: 100dvh){:root{--app-viewport-height: 100dvh}}*{box-sizing:border-box}body{margin:0;min-width:320px;overflow-x:hidden;background:#fff}body.book-view-active{height:100dvh;overflow:hidden;overscroll-behavior:none}button{color:inherit;font:inherit}img{display:block;max-width:100%}.app{min-height:var(--app-viewport-height);background:#fff}.app.book-mode{height:var(--app-viewport-height);overflow:hidden}.top-categories{align-items:center;background:#fff;display:flex;height:76px;justify-content:space-between;left:0;padding:0 clamp(22px,4vw,58px) 0 86px;position:sticky;top:0;z-index:50}.site-title{background:transparent;border:0;cursor:pointer;font-family:var(--font-display);font-size:clamp(2rem,4vw,4.8rem);font-weight:400;letter-spacing:-.055em;line-height:.86;padding:0}.category-nav{align-items:center;display:flex;gap:clamp(30px,5vw,88px)}.category{background:transparent;border:0;cursor:pointer;font-family:var(--font-ui);font-size:clamp(1.02rem,1.7vw,1.34rem);font-weight:500;letter-spacing:.018em;opacity:.48;padding:8px 0;text-transform:uppercase}.category.active,.category:hover{opacity:1}@media(min-width:901px){.app.image-mode .top-categories{background:transparent;position:fixed;width:100%}.app.image-mode .image-section,.app.image-mode .image-scatter,.app.image-mode .image-zoom-plane{height:var(--app-viewport-height);min-height:var(--app-viewport-height)}.keyword-section:not(.detail-open),.keyword-section:not(.detail-open) .keyword-wheel{touch-action:none}}.book-section{background:#fff;height:calc(var(--app-viewport-height) - var(--desktop-header-height));min-height:0;position:relative}.book-stage{align-items:center;display:flex;justify-content:center;height:calc(var(--app-viewport-height) - var(--desktop-header-height));min-height:0;padding:clamp(6px,2vw,28px)}.book-stage img{max-height:calc(var(--app-viewport-height) - 88px);object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:min(100%,1420px);-webkit-user-drag:none}.book-turn-zone{bottom:0;cursor:pointer;position:absolute;top:0;width:50%;z-index:5}.book-turn-zone.previous{background:transparent;border:0;cursor:w-resize;left:0}.book-turn-zone.next{background:transparent;border:0;cursor:e-resize;right:0}.book-turn-zone span{display:none}.book-meta{bottom:20px;color:#000;display:flex;gap:14px;left:auto;max-width:min(760px,calc(100% - 40px));position:absolute;right:20px;z-index:10}.book-index-toggle{background:#fff;border:1px solid #000000;color:#000;cursor:pointer;font-family:var(--font-ui);font-size:.75rem;letter-spacing:.018em;padding:8px 11px;text-transform:uppercase;white-space:nowrap}.book-keywords{display:flex;flex-wrap:wrap;gap:7px}.book-keywords button,.book-keywords span{background:transparent;border:1px solid #000000;color:#000;cursor:pointer;font-family:var(--font-ui);font-size:.72rem;letter-spacing:.018em;padding:8px 10px;text-transform:uppercase}.book-keywords button:hover{background:#000;color:#fff}.book-keywords span{cursor:default}.book-index-panel{background:#fff;border:1px solid #000000;bottom:68px;left:auto;max-height:min(520px,calc(var(--app-viewport-height) - 170px));overflow:hidden;position:absolute;right:20px;width:min(360px,calc(100vw - 40px));z-index:20}.book-jump{align-items:center;border-bottom:1px solid #000000;display:grid;gap:14px;grid-template-columns:62px 1fr;padding:12px}.book-jump label{color:#777;font-family:var(--font-ui);font-size:.72rem;letter-spacing:.018em;text-transform:uppercase}.book-jump input{border:1px solid #000000;font-family:var(--font-ui);font-size:.9rem;letter-spacing:0;padding:8px;width:100%}.book-index-list{max-height:420px;overflow-y:auto}.book-index-list button{align-items:center;background:#fff;border:0;border-bottom:1px solid #d8d8d8;cursor:pointer;display:flex;justify-content:center;padding:11px 12px;text-align:center;width:100%}.book-index-list button.active,.book-index-list button:hover{background:#000;color:#fff}.book-index-list span{color:inherit;font-family:var(--font-ui);font-size:.78rem;letter-spacing:.018em;text-transform:uppercase}.book-page-entry{align-items:baseline;display:inline-flex;gap:10px}.book-page-entry input{background:transparent;border:0;border-bottom:1px solid #000000;border-radius:0;color:#000;font-family:var(--font-meta);font-size:1rem;letter-spacing:.02em;padding:5px 0 4px;text-align:center;width:58px}.book-page-entry input:focus{outline:0}.book-page-entry span{color:#000;font-family:var(--font-meta);font-size:.82rem;letter-spacing:.02em}.keyword-section{min-height:calc(var(--app-viewport-height) - var(--desktop-header-height));overflow:hidden;position:relative;transition:background .26s ease}.keyword-wheel{align-items:center;display:flex;flex-direction:column;gap:clamp(10px,2.2vh,24px);justify-content:center;min-height:calc(var(--app-viewport-height) - var(--desktop-header-height));overflow:hidden;padding:30px 30px 30px 86px;position:relative;transition:min-height .36s ease,padding .36s ease,transform .36s ease,width .36s ease}.keyword-section:not(.detail-open) .keyword-wheel:before{border:1px solid rgba(0,0,0,.16);border-radius:50%;content:"";height:var(--keyword-orbit-diameter);left:calc(var(--keyword-orbit-edge-x) - var(--keyword-orbit-diameter));pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:var(--keyword-orbit-diameter)}.wheel-keyword{background:transparent;border:0;color:#9d9d9d;cursor:pointer;font-family:var(--font-display);font-size:clamp(1.8rem,6vw,6.8rem);font-weight:400;letter-spacing:-.055em;line-height:.9;padding:0;white-space:nowrap;transition:color .22s ease,font-size .22s ease,opacity .22s ease,transform .22s ease}.keyword-wheel-node{position:relative}.keyword-section:not(.detail-open) .keyword-wheel-node{left:var(--keyword-orbit-edge-x);position:absolute;top:50%;transform:translateY(-50%) rotate(var(--keyword-angle));transform-origin:var(--keyword-node-origin-x) 50%;transition:opacity .22s ease,transform .38s ease}.keyword-section:not(.detail-open) .keyword-wheel-node:after{background:#000;border-radius:50%;content:"";height:10px;left:0;opacity:0;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);transition:opacity .18s ease;width:10px}.keyword-section:not(.detail-open) .keyword-wheel-node[data-selected=true]:after{opacity:1}.keyword-section:not(.detail-open) .wheel-keyword{padding-left:var(--keyword-word-offset)}.keyword-section:not(.detail-open) .keyword-wheel-node[data-distance="1"] .wheel-keyword{font-size:clamp(1.38rem,4vw,4.3rem);opacity:0}.keyword-section:not(.detail-open) .keyword-wheel-node[data-distance="2"] .wheel-keyword{font-size:clamp(1.08rem,2.9vw,2.9rem);opacity:.16}.keyword-section:not(.detail-open) .keyword-wheel-node[data-distance="3"] .wheel-keyword{font-size:clamp(.96rem,2.1vw,1.9rem);opacity:0}.keyword-section:not(.detail-open) .keyword-wheel-node[data-hidden=true]{opacity:0;pointer-events:none}.wheel-keyword.selected{color:#000;opacity:1}.wheel-keyword:hover{color:#000}.keyword-count{display:none}.keyword-child-flyout{display:flex;flex-direction:column;gap:8px;left:calc(100% + 34px);min-width:190px;opacity:0;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .18s ease,transform .18s ease}.keyword-section.detail-open .keyword-child-flyout{display:none;gap:1px;left:0;margin:5px 0 9px 12px;min-width:0;opacity:1;pointer-events:auto;position:static;top:auto;transform:none}.keyword-section.detail-open .wheel-keyword.selected+.keyword-child-flyout{display:flex}.keyword-wheel-node:hover .keyword-child-flyout,.keyword-wheel-node:focus-within .keyword-child-flyout{opacity:1;pointer-events:auto;transform:translate(8px,-50%)}.keyword-section.detail-open .keyword-wheel-node:hover .keyword-child-flyout,.keyword-section.detail-open .keyword-wheel-node:focus-within .keyword-child-flyout{opacity:1;pointer-events:auto;transform:none}.keyword-child-flyout button,.keyword-sub-list button{background:#fff;border:1px solid #000000;color:#555;cursor:pointer;font-family:var(--font-ui);font-size:.78rem;letter-spacing:.012em;padding:8px 10px;text-align:left;text-transform:uppercase;white-space:nowrap}.keyword-section.detail-open .keyword-child-flyout button{border:0;color:#6f6f6f;font-size:.66rem;letter-spacing:0;padding:3px 0;text-transform:none}.keyword-section.detail-open .keyword-child-flyout button:hover,.keyword-child-flyout button:hover,.keyword-sub-list button:hover{color:#000}.keyword-section.detail-open{display:grid;grid-template-columns:380px minmax(0,1fr)}.keyword-section.detail-open .keyword-wheel{align-items:flex-start;border-right:1px solid #000000;justify-content:flex-start;min-height:calc(var(--app-viewport-height) - var(--desktop-header-height));overflow:visible;padding:32px 20px 32px 84px;width:380px}.keyword-section.detail-open .keyword-wheel-node{flex:0 0 auto;margin-bottom:4px;width:100%}.keyword-section.detail-open .wheel-keyword,.keyword-section.detail-open .wheel-keyword[data-distance]{color:#6f6f6f;font-family:var(--font-ui);font-size:.92rem;font-weight:500;letter-spacing:0;line-height:1.05;max-width:100%;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.keyword-section.detail-open .wheel-keyword.selected{color:#000}.keyword-parent-label{color:#777;font-family:var(--font-ui);font-size:.7rem;letter-spacing:.018em;margin:14px 0 0;text-transform:uppercase}.keyword-sub-list{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 34px}.keyword-page{min-height:calc(var(--app-viewport-height) - var(--desktop-header-height));padding:clamp(28px,5vw,76px)}.kicker{color:#787878;font-family:var(--font-ui);font-size:.74rem;letter-spacing:.018em;margin:0 0 28px;text-transform:uppercase}.keyword-page h1{font-family:var(--font-display);font-size:clamp(2.25rem,var(--keyword-title-fluid, 8vw),8.5rem);font-weight:400;letter-spacing:-.055em;line-height:.88;margin:0;white-space:nowrap}.keyword-definition{font-family:var(--font-body);font-size:16px;line-height:1.52;margin:8px 0 0;max-width:1120px;overflow-wrap:break-word;text-align:left;white-space:normal;word-break:keep-all}.keyword-page>.keyword-definition:first-of-type{font-family:var(--font-emphasis);font-size:clamp(1.02rem,1.55vw,1.28rem);font-weight:400;line-height:1.55;max-width:1120px}.keyword-page h1+.keyword-definition{margin-top:34px}.keyword-definition+.keyword-definition{margin-top:4px}.keyword-definition strong{font-family:var(--font-emphasis);font-weight:600}.keyword-operation{margin:24px 0 30px;max-width:1120px}.keyword-operation h2{font-family:var(--font-body);font-size:1.08rem;font-weight:700;line-height:1.35;margin:0 0 10px}.keyword-operation p{font-family:var(--font-body);font-size:16px;line-height:1.52;margin:0;overflow-wrap:break-word;text-align:left;white-space:normal;word-break:keep-all}.keyword-text-grid{display:grid;gap:22px;grid-template-columns:repeat(3,minmax(0,1fr))}.keyword-subkeyword-entry{border-top:1px solid #000000;margin:34px 0 0;max-width:1120px;padding-top:12px}.keyword-subkeyword-entry button{align-items:baseline;background:transparent;border:0;border-bottom:1px solid #000000;color:#000;cursor:pointer;display:flex;font-family:var(--font-ui);justify-content:space-between;gap:18px;padding:0 0 12px;text-align:left;width:100%}.keyword-subkeyword-entry button span{font-size:clamp(1.08rem,1.45vw,1.42rem);font-weight:700;letter-spacing:0}.keyword-subkeyword-entry button small{color:#666;font-family:var(--font-meta);font-size:.72rem;font-weight:400;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}.keyword-subkeyword-entry button:hover span,.keyword-subkeyword-entry button:focus-visible span{text-decoration:underline;text-underline-offset:4px}.keyword-sub-browser{max-width:min(1180px,100%)}.keyword-page h1.keyword-sub-browser-title{display:grid;font-size:clamp(3.2rem,7.2vw,7.1rem);letter-spacing:-.045em;line-height:.86;max-width:100%;overflow:visible;white-space:normal}.keyword-sub-browser-title span{display:block;max-width:100%}.keyword-sub-browser-title span+span{padding-left:clamp(22px,5vw,76px)}.keyword-sub-browser-back{align-items:flex-start;background:transparent;border:0;border-bottom:1px solid #000000;color:#000;cursor:pointer;display:inline-flex;flex-direction:column;font-family:var(--font-ui);gap:4px;margin:0 0 18px;padding:0 0 10px;text-align:left}.keyword-sub-browser-back span{color:#777;font-family:var(--font-meta);font-size:.68rem;font-weight:400;letter-spacing:.02em;text-transform:uppercase}.keyword-sub-browser-back strong{font-size:1rem;font-weight:700;letter-spacing:0}.keyword-sub-browser-back:hover strong,.keyword-sub-browser-back:focus-visible strong{text-decoration:underline;text-underline-offset:4px}.keyword-search{align-items:center;border-bottom:1px solid #000000;border-top:1px solid #000000;display:grid;gap:28px;grid-template-columns:98px minmax(220px,420px);margin:30px 0 0;min-height:96px;padding:0}.keyword-search span{color:#000;font-family:var(--font-meta);font-size:.88rem;letter-spacing:.018em;line-height:1;text-transform:uppercase}.keyword-search input{background:transparent;border:0;border-bottom:1px solid #000000;border-radius:0;font-family:var(--font-ui);font-size:.84rem;line-height:1;padding:0 0 8px;width:100%}.keyword-search input::placeholder{color:#5f5f5f;opacity:1}.keyword-search input:focus{outline:0}.keyword-search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.keyword-sub-results{border-top:0;margin-top:0}.keyword-sub-results button{align-items:center;background:transparent;border:0;border-bottom:1px solid #d8d8d8;color:#000;cursor:pointer;display:grid;gap:22px;grid-template-columns:minmax(210px,.36fr) minmax(0,.64fr);height:96px;padding:0;text-align:left;width:100%}.keyword-sub-results button span{display:-webkit-box;font-family:var(--font-ui);font-size:clamp(1.18rem,1.55vw,1.58rem);font-weight:750;letter-spacing:0;line-height:1.05;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.keyword-sub-results button small{color:#3f3f3f;display:-webkit-box;font-family:var(--font-body);font-size:clamp(.94rem,1vw,1.04rem);line-height:1.58;max-width:720px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;word-break:keep-all}.keyword-sub-results button:hover span,.keyword-sub-results button:focus-visible span{text-decoration:underline;text-underline-offset:4px}.info-list{border-top:1px solid #000000;padding-top:12px}.info-list h2,.reference-section h2{font-family:var(--font-ui);font-size:.78rem;font-weight:500;letter-spacing:.018em;margin:0 0 14px;text-transform:uppercase}.info-list ul{margin:0;padding-left:18px}.info-list li{font-family:var(--font-body);line-height:1.72;margin-bottom:8px;word-break:keep-all}.reference-section{margin-top:46px}.linked-book-row,.linked-image-row{cursor:grab;display:flex;gap:16px;-ms-overflow-style:none;overflow-x:auto;padding-bottom:0;scrollbar-width:none;touch-action:pan-x;-webkit-user-select:none;user-select:none}.linked-book-row::-webkit-scrollbar,.linked-image-row::-webkit-scrollbar{display:none}.linked-book-row:active,.linked-image-row:active{cursor:grabbing}.linked-book-row button{background:#fff;border:1px solid #000000;cursor:pointer;flex:0 0 220px;padding:0;text-align:left}.linked-book-row img{aspect-ratio:4 / 3;object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%}.linked-book-row span{display:block;font-family:var(--font-ui);font-size:.76rem;letter-spacing:.012em;padding:8px;text-transform:uppercase}.linked-image-row figure,.linked-image-card{flex:0 0 min(42vw,320px);margin:0}.linked-image-card{background:transparent;border:0;cursor:pointer;padding:0;text-align:left}.linked-image-row img,.linked-image-card img{aspect-ratio:1 / 1;object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%}.linked-image-row figcaption,.linked-image-card span{color:#5d5d5d;display:block;font-family:var(--font-image-title);font-size:var(--image-title-size, .72rem);letter-spacing:.012em;margin-top:8px;overflow:hidden;text-overflow:clip;text-transform:uppercase;white-space:nowrap}.image-section{--image-reader-width: 50vw;--image-map-panel-width: clamp(224px, 18vw, 286px);min-height:calc(var(--app-viewport-height) - var(--desktop-header-height))}.image-mobile-toolbar,.image-gallery{display:none}.image-map-panel{background:#fff;border:1px solid #000000;box-shadow:10px 10px #0000000f;display:flex;flex-direction:column;gap:14px;max-height:calc(var(--app-viewport-height) - 124px);overflow:hidden;padding:14px;position:fixed;right:22px;top:96px;width:var(--image-map-panel-width);z-index:56}.image-section.detail-open .image-map-panel{display:none}.image-map-panel-heading{align-items:center;border-bottom:1px solid #000000;display:flex;justify-content:space-between;padding-bottom:10px}.image-map-panel-heading span{font-family:var(--font-meta);font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.image-map-panel-heading button{background:#fff;border:0;cursor:pointer;font-family:var(--font-meta);font-size:.62rem;font-weight:650;letter-spacing:.03em;padding:0;text-decoration:underline;text-transform:uppercase;text-underline-offset:3px}.image-map-panel-heading button:disabled{color:#9a9a9a;cursor:default;text-decoration:none}.image-map-panel-active{font-family:var(--font-image-title);font-size:1.08rem;font-weight:700;letter-spacing:0;line-height:1.02;min-height:2.2em;overflow-wrap:anywhere}.image-map-keywords{border-top:1px solid #d8d8d8;display:flex;flex:0 1 auto;flex-direction:column;max-height:min(58vh,560px);min-height:0;overflow-y:auto}.image-map-keywords button{align-items:baseline;background:#fff;border:0;border-bottom:1px solid #d8d8d8;cursor:pointer;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;padding:11px 0;text-align:left}.image-map-keywords button.active{color:#000}.image-map-keywords button.active span{font-weight:800}.image-map-keywords span{font-family:var(--font-image-title);font-size:.86rem;font-weight:560;letter-spacing:0;line-height:1.05;overflow:hidden;text-overflow:clip;white-space:nowrap}.image-map-keywords small{color:#696969;font-family:var(--font-meta);font-size:.68rem;letter-spacing:.02em}.image-scatter{cursor:grab;height:calc(var(--app-viewport-height) - var(--desktop-header-height));overflow:hidden;position:relative;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.image-section.keyword-map-mode .image-scatter{width:calc(100% - var(--image-map-panel-width) - 42px)}.image-section.detail-open .image-scatter{background:transparent}.image-section.detail-open .image-scatter:before{display:none}.image-section.detail-open .image-scatter:after{display:none}.image-zoom-plane{height:calc(var(--app-viewport-height) - var(--desktop-header-height));left:0;position:absolute;top:0;transform-origin:0 0;width:100%}.image-scatter:active{cursor:grabbing}.image-zoom-indicator{display:none}.scatter-image{background:transparent;border:0;cursor:grab;padding:0;position:absolute;touch-action:none;transform:translate(-50%,-50%);transition:filter .18s ease,opacity .18s ease,transform .18s ease}.scatter-image img{height:auto;object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%}.scatter-image:hover,.scatter-image.pinned{filter:contrast(1.04);transform:translate(-50%,-50%) scale(1.04);z-index:20}.scatter-image:active{cursor:grabbing}.image-section.keyword-map-mode .scatter-image{cursor:pointer;transition:left .42s cubic-bezier(.2,.7,.2,1),top .42s cubic-bezier(.2,.7,.2,1),width .42s cubic-bezier(.2,.7,.2,1),filter .18s ease,opacity .18s ease,transform .18s ease}.image-section.keyword-map-mode .scatter-image:active{cursor:pointer}.scatter-image.map-muted{filter:grayscale(.3) contrast(.84);opacity:.42;pointer-events:none}.image-cluster-label{align-items:baseline;background:#fff;border:1px solid #000000;display:inline-flex;gap:8px;max-width:190px;padding:6px 8px;pointer-events:none;position:absolute;transform:translate(-50%,-50%);z-index:8}.image-cluster-label.selected{background:#000;color:#fff;z-index:36}.image-cluster-label span{font-family:var(--font-image-title);font-size:.76rem;font-weight:760;letter-spacing:0;line-height:1;overflow:hidden;text-overflow:clip;white-space:nowrap}.image-cluster-label small{font-family:var(--font-meta);font-size:.62rem;letter-spacing:.02em}.image-section.detail-open .scatter-image:not(.pinned){filter:none;opacity:1}.image-section.detail-open .scatter-image.pinned{opacity:0;pointer-events:none}.image-detail-backdrop{background:linear-gradient(145deg,#ffffff57,#e2ecef29),#f6fafa29;border:0;border-right:1px solid rgba(255,255,255,.56);bottom:0;cursor:default;left:0;padding:0;position:fixed;top:0;width:calc(100vw - var(--image-reader-width));z-index:128;backdrop-filter:blur(8px) saturate(1.06);-webkit-backdrop-filter:blur(8px) saturate(1.06)}.image-focus-display{align-items:center;bottom:0;display:flex;justify-content:center;left:0;pointer-events:none;position:fixed;top:0;width:calc(100vw - var(--image-reader-width));z-index:129}.image-focus-glass{align-items:center;background:transparent;border:0;border-radius:0;box-shadow:none;display:inline-flex;justify-content:center;max-height:min(78vh,760px);max-width:min(44vw,calc(100vw - var(--image-reader-width) - 60px));padding:0}.image-focus-glass img{filter:drop-shadow(0 18px 30px rgba(24,31,35,.16));max-height:min(62vh,620px);max-width:min(31vw,calc(100vw - var(--image-reader-width) - 170px));object-fit:contain}.image-hover-card{background:#fff;border:1px solid #000000;box-shadow:12px 12px #00000014;left:clamp(16px,4vw,54px);max-height:calc(var(--app-viewport-height) - 140px);max-width:390px;overflow:hidden;padding:18px;pointer-events:none;position:fixed;top:110px;width:min(390px,calc(100vw - 48px));z-index:58}.image-hover-card h1{font-family:var(--font-image-title);font-size:var(--image-title-size, .96rem);font-weight:650;letter-spacing:0;line-height:1.08;margin:0 0 12px;overflow:hidden;text-overflow:clip;white-space:nowrap}.image-hover-card p{display:-webkit-box;font-family:var(--font-image-body);font-size:.86rem;line-height:1.58;margin:12px 0 0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:6;word-break:keep-all}.image-hover-keywords{border-top:1px solid #000000;display:flex;flex-wrap:wrap;gap:5px 9px;margin-top:12px;padding-top:10px}.image-hover-keywords span{font-family:var(--font-ui);font-size:.72rem;font-weight:650}.image-hover-keywords span:not(:first-child){font-weight:500}.image-hover-keywords .secondary{color:#666;font-style:italic}.image-reference-card{background:#fff;border:1px solid #000000;box-shadow:12px 12px #00000014;max-height:calc(var(--app-viewport-height) - 140px);max-width:390px;overflow-y:auto;overscroll-behavior:contain;padding:18px;position:fixed;right:clamp(16px,4vw,54px);top:110px;z-index:60}.image-reference-card.image-reference-expanded{display:grid;grid-template-columns:60px minmax(0,1fr);border-bottom:0;border-left:1px solid #000000;border-right:0;border-top:0;bottom:0;box-shadow:none;height:var(--app-viewport-height);max-height:none;max-width:none;overflow:hidden;padding:0;right:0;top:0;width:var(--image-reader-width);z-index:140}.image-reference-expanded .image-reference-body{display:block;height:var(--app-viewport-height);min-width:0;overflow-x:hidden;overflow-y:auto;padding:clamp(22px,2.2vw,34px)}.image-reader-spine{align-items:center;background:#fff;border-right:1px solid #000000;display:flex;flex-direction:column;font-family:var(--font-ui);height:var(--app-viewport-height);justify-content:space-between;padding:22px 0 18px;width:60px}.image-reader-spine span,.image-reader-spine small{color:#000;display:block;font-size:.78rem;font-weight:500;letter-spacing:.01em;line-height:.95;max-height:calc(var(--app-viewport-height) - 190px);overflow:hidden;text-align:left;text-overflow:clip;text-transform:uppercase;writing-mode:vertical-rl}.image-reader-spine span{font-family:var(--font-image-title);font-weight:700}.image-reader-spine small{font-size:.72rem;max-height:170px}.image-reference-card h1{font-family:var(--font-image-title);font-size:var(--image-title-size, 1rem);font-weight:650;letter-spacing:0;line-height:1.02;max-width:100%;overflow:hidden;text-overflow:clip;white-space:nowrap}.image-reference-card h1.image-title-with-artist{align-items:baseline;display:flex;flex-wrap:wrap;gap:6px 10px;white-space:normal}.image-title-with-artist span{min-width:0}.image-title-with-artist small{color:#666;font-family:var(--font-meta);font-size:.68rem;font-weight:500;letter-spacing:.02em;line-height:1.15;text-transform:uppercase}.image-viewer-topbar,.image-viewer-frame{display:none}.image-reference-body{display:contents}.image-card-close{background:#fff;border:1px solid #000000;cursor:pointer;float:right;font-family:var(--font-meta);font-size:.68rem;letter-spacing:.02em;margin:0 0 10px 12px;padding:7px 9px;text-transform:uppercase}.image-reference-card p{font-family:var(--font-image-body);line-height:1.72;word-break:keep-all}.image-reference-card dl{border-top:1px solid #000000;margin:18px 0;padding-top:12px}.image-reference-card dl div{display:grid;gap:12px;grid-template-columns:72px 1fr;margin-bottom:8px}.image-reference-card dt{color:#777;font-family:var(--font-meta);font-size:.68rem;letter-spacing:.02em;text-transform:uppercase}.image-reference-card dd{font-family:var(--font-meta);font-size:.74rem;letter-spacing:.01em;margin:0}.image-keyword-summary,.image-keyword-reasons,.image-design-operation,.image-analysis-section,.image-ai-categories,.image-reference-card .info-list{border-top:1px solid #000000;margin-top:16px;padding-top:12px}.image-keyword-summary h2,.image-keyword-reasons h2,.image-design-operation h2,.image-analysis-section h2,.image-ai-categories h2,.image-reference-card .info-list h2{font-family:var(--font-ui);font-size:.76rem;font-weight:600;letter-spacing:.018em;margin:0 0 12px;text-transform:uppercase}.image-keyword-summary div{display:grid;gap:10px;grid-template-columns:96px 1fr;margin-bottom:9px}.image-keyword-summary span{color:#666;font-family:var(--font-meta);font-size:.66rem;letter-spacing:.02em;text-transform:uppercase}.image-keyword-summary p{display:flex;flex-wrap:wrap;gap:6px 9px;line-height:1.35;margin:0}.image-keyword-summary button{background:transparent;border:0;cursor:pointer;font-family:var(--font-ui);font-size:.76rem;font-weight:650;letter-spacing:0;padding:0}.image-keyword-summary b{font-family:var(--font-ui);font-size:.76rem;font-weight:650;letter-spacing:0}.image-keyword-summary .sub button,.image-keyword-summary .sub b{font-weight:500}.image-keyword-summary .secondary button,.image-keyword-summary .secondary b{color:#666;font-style:italic;font-weight:500}.image-keyword-empty{color:#666;font-family:var(--font-meta);font-size:.72rem;letter-spacing:.02em;text-transform:uppercase}.image-keyword-reasons article{border-top:1px solid #d8d8d8;margin-top:10px;padding-top:10px}.image-keyword-reasons article:first-of-type{border-top:0;margin-top:0;padding-top:0}.image-keyword-reasons h3{font-family:var(--font-ui);font-size:.78rem;font-weight:700;letter-spacing:0;margin:0 0 6px}.image-keyword-reasons article.secondary h3{color:#666;font-style:italic}.image-keyword-reasons p,.image-design-operation p,.image-analysis-section p,.image-ai-categories p{margin:0 0 10px}.movement-analysis-block{border-top:1px solid #d8d8d8;font-family:var(--font-movement);margin-top:10px;padding-top:10px}.movement-analysis-heading{margin-bottom:8px}.movement-analysis-intro{color:#444}.movement-analysis-item{margin-top:12px}.movement-analysis-item p{margin-bottom:7px}.movement-analysis-item strong{font-family:var(--font-movement);font-weight:750}.movement-analysis-citations{border-top:1px solid #d8d8d8;color:#666;font-family:var(--font-meta);font-size:.68rem;line-height:1.45;margin:12px 0 0;padding:10px 0 0 18px}.movement-analysis-citations li{margin-bottom:6px;overflow-wrap:anywhere}.movement-analysis-citations a{color:#000;text-decoration:underline;text-underline-offset:2px}.movement-analysis-citations span{display:block;margin-top:2px}.reference-keywords{display:flex;flex-wrap:wrap;gap:8px}.reference-keywords button,.reference-keywords span{background:#fff;border:1px solid #000000;cursor:pointer;font-family:var(--font-meta);font-size:.68rem;letter-spacing:.02em;padding:7px 9px;text-transform:uppercase}.proposed-keyword-list{border-top:1px solid #000000;max-width:100%;margin-top:16px;min-width:0;overflow-x:hidden;padding-top:12px}.proposed-keyword-list article{border:1px solid #000000;max-width:100%;min-width:0;overflow-wrap:anywhere;margin-top:10px;padding:10px}.admin-drawer{--admin-panel-width: min(52vw, 760px);bottom:0;left:0;pointer-events:none;position:fixed;top:0;width:calc(var(--admin-panel-width) + 60px);z-index:120}.admin-spine{align-items:center;background:#fff;border:0;border-right:1px solid #000000;cursor:pointer;display:flex;flex-direction:column;font-family:var(--font-ui);height:var(--app-viewport-height);justify-content:space-between;left:0;padding:calc(18px + env(safe-area-inset-top)) 0 calc(18px + env(safe-area-inset-bottom));pointer-events:auto;position:fixed;top:0;transition:transform .36s ease;width:60px;z-index:122}.admin-drawer.open .admin-spine{transform:translate(var(--admin-panel-width))}.admin-spine span,.admin-spine small{color:#000;display:block;font-size:.82rem;font-weight:500;letter-spacing:.01em;line-height:.95;text-align:left;text-transform:uppercase;writing-mode:vertical-rl}.admin-spine small{font-size:.72rem;max-height:190px}.admin-panel{background:#fff;border-right:1px solid #000000;bottom:0;display:flex;flex-direction:column;height:var(--app-viewport-height);left:0;overflow:hidden;padding:18px 18px 22px;pointer-events:auto;position:fixed;top:0;transform:translate(-100%);transition:transform .36s ease;width:var(--admin-panel-width);z-index:121}.admin-drawer.open .admin-panel{transform:translate(0)}.admin-panel-header,.admin-session-row,.admin-actions{align-items:center;display:flex;gap:8px;justify-content:space-between}.admin-panel-header{border-bottom:1px solid #000000;flex:0 0 auto;padding-bottom:10px}.admin-session-row{flex:0 0 auto}.admin-session-row .admin-session{margin:0}.admin-session-row button{flex:0 0 auto}.admin-panel-header a{color:#000;font-family:var(--font-ui);font-size:.76rem;letter-spacing:.018em;text-decoration:none}.admin-panel>h2,.admin-panel h3{font-family:var(--font-ui);font-size:.86rem;font-weight:500;letter-spacing:.018em;margin:0 0 12px;text-transform:uppercase}.admin-panel>h2{font-family:var(--font-display);font-size:clamp(2rem,4vw,4.2rem);font-weight:400;letter-spacing:-.052em;line-height:.9;flex:0 0 auto;margin:14px 0 12px;text-transform:none}.admin-panel p{font-family:var(--font-body);line-height:1.68;word-break:keep-all}.password-recovery{flex:0 0 auto}.admin-panel input[type=email],.admin-panel input[type=password],.admin-panel input[type=file],.admin-meta-grid input,.admin-meta-grid textarea{width:100%}.admin-panel input[type=email],.admin-panel input[type=password],.admin-meta-grid input,.admin-meta-grid textarea{border:1px solid #000000;font-family:var(--font-body);margin-bottom:0;padding:10px}.admin-login-form{display:grid;gap:10px;width:100%}.admin-panel .admin-login-form input,.admin-panel .admin-login-form button{display:block;margin:0;width:100%}.admin-panel .admin-login-form button:first-of-type{margin-top:8px}.admin-meta-grid textarea{height:41px;min-height:41px;resize:vertical}.admin-toggle-mark{align-items:center;display:inline-flex;flex:0 0 14px;height:14px;justify-content:center;width:14px}.admin-toggle-mark:before{border-left:5px solid transparent;border-right:5px solid transparent;content:"";display:block;height:0;width:0}.admin-toggle-mark[data-open=false]:before{border-top:6px solid #000000}.admin-toggle-mark[data-open=true]:before{border-bottom:6px solid #000000}.admin-compose{border-top:1px solid #000000;display:flex;flex:0 0 auto;flex-direction:column;min-height:0;padding:0}.admin-compose-body{display:grid;gap:12px;grid-template-columns:minmax(0,1fr);min-height:0;padding:12px 0}.admin-panel .admin-compose-toggle{align-items:center;background:transparent;border:0;border-bottom:1px solid #000000;display:flex;flex:0 0 36px;justify-content:space-between;margin:0;padding:0;width:100%}.admin-compose-toggle span{font-family:var(--font-ui);font-size:.86rem;font-weight:500;letter-spacing:.018em;text-transform:uppercase}.admin-compose-toggle i{font-style:normal}.admin-compose.collapsed .admin-compose-toggle,.admin-library.collapsed .admin-library-toggle,.admin-queue.collapsed .admin-queue-toggle{border-bottom:0}.admin-meta-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-meta-grid textarea{grid-column:1 / -1}.admin-notes-field{display:grid;gap:8px}.admin-notes-field span{font-family:var(--font-ui);font-size:.84rem;font-weight:700;letter-spacing:.012em}.admin-notes-field textarea{border:1px solid #000000;font-family:var(--font-body);min-height:86px;padding:10px;resize:vertical;width:100%}.admin-actions{align-content:flex-start;align-items:flex-start;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto;justify-content:stretch}.admin-panel button,.admin-upload{background:#fff;border:1px solid #000000;cursor:pointer;display:inline-block;font-family:var(--font-ui);font-size:.72rem;letter-spacing:.018em;margin:0 8px 8px 0;padding:8px 10px;text-transform:uppercase}.admin-panel button:disabled{color:#999;cursor:wait}.admin-session,.admin-message,.admin-selection{color:#555;font-family:var(--font-ui);font-size:.82rem;letter-spacing:0}.admin-selection{grid-column:1;margin:0}.admin-actions>button{grid-column:2;justify-self:end;margin:0}.admin-upload{align-items:stretch;display:grid;gap:8px;grid-column:1 / -1;margin:0;min-height:58px;width:100%}.admin-upload input[type=file]{font-family:var(--font-ui);font-size:.72rem}.admin-queue{border-bottom:1px solid #000000;border-top:1px solid #000000;flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;padding:0 0 12px}.admin-queue.open{flex:1 1 auto}.admin-queue.collapsed{flex:0 0 36px;min-height:0;overflow:hidden;padding:0}.admin-queue.collapsed .admin-message,.admin-queue.collapsed .pending-jobs{display:none}.admin-panel .admin-queue-toggle{align-items:center;background:transparent;border:0;border-bottom:1px solid #000000;display:flex;flex:0 0 36px;height:36px;justify-content:space-between;margin:0;padding:0;width:100%}.admin-queue-toggle span{font-family:var(--font-ui);font-size:.86rem;font-weight:500;letter-spacing:.018em;text-transform:uppercase}.admin-queue-toggle i{font-style:normal}.admin-message.queue-status{margin:0;padding:8px 0 0}.pending-jobs{display:grid;gap:12px;margin-top:10px;min-width:0}.pending-jobs article{border-top:1px solid #000000;padding-top:12px}.job-card{max-width:100%;min-width:0;overflow-x:hidden}.job-summary{align-items:center;background:#fff;border:0;cursor:pointer;display:grid;gap:10px;grid-template-columns:52px 1fr auto 18px;margin:0;padding:0;text-align:left;width:100%}.job-summary img{aspect-ratio:1 / 1;object-fit:cover;width:52px}.job-summary-title{align-items:baseline;display:flex;gap:8px;font-family:var(--font-ui);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-summary-title b{min-width:0;overflow:hidden;text-overflow:ellipsis}.job-summary-title em{color:#666;flex:0 1 auto;font-family:var(--font-meta);font-size:.7rem;font-style:normal;letter-spacing:.02em;min-width:0;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase}.job-summary small{color:#777;font-family:var(--font-meta);font-size:.72rem;letter-spacing:.02em;text-transform:uppercase}.job-summary i{text-align:right}.job-detail{max-height:none;max-width:100%;min-width:0;overflow-x:hidden;overflow-y:visible;padding-top:12px}.job-detail p,.job-detail li,.job-detail dd{max-width:100%;overflow-wrap:anywhere;word-break:keep-all}.job-detail>img{aspect-ratio:1 / 1;margin-bottom:10px;object-fit:cover;width:100%}.job-detail-title{align-items:baseline;display:flex;flex-wrap:wrap;gap:6px 10px}.job-detail-title small{color:#666;font-family:var(--font-meta);font-size:.72rem;font-weight:500;letter-spacing:.02em;text-transform:uppercase}.job-detail .image-keyword-summary,.job-detail .image-keyword-reasons,.job-detail .image-design-operation,.job-detail .image-analysis-section,.job-detail .image-ai-categories,.job-detail .info-list{border-top:1px solid #000000;margin-top:14px;padding-top:10px}.published-admin{border-top:0;min-height:0;overflow-y:auto;padding-top:0;-ms-overflow-style:none;scrollbar-width:none}.published-admin::-webkit-scrollbar{display:none}.admin-library{border-top:1px solid #000000;display:flex;flex:0 0 36px;flex-direction:column;min-height:0;overflow:hidden;padding-top:0;transition:flex-basis .22s ease}.admin-library.open{flex:1 1 auto;overflow:hidden}.admin-panel.queue-open .admin-library.open{flex:0 0 38%}.admin-panel .admin-library-toggle{align-items:center;background:transparent;border:0;border-bottom:1px solid #000000;display:flex;flex:0 0 36px;justify-content:space-between;margin:0;padding:0;width:100%}.admin-library-toggle span{font-family:var(--font-ui);font-size:.86rem;font-weight:500;letter-spacing:.018em;text-transform:uppercase}.admin-library-toggle i{font-style:normal}.admin-library-body{display:grid;gap:12px;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);min-height:0;overflow:hidden;padding-top:12px}.admin-library-body .published-admin{border-left:1px solid #000000;padding-left:12px}.admin-library-body .published-admin:first-child{border-left:0;padding-left:0}.published-admin h3{background:#fff;border-bottom:1px solid #000000;margin:0;padding:0 0 10px;position:sticky;top:0;z-index:1}.admin-panel .admin-section-toggle{align-items:center;background:transparent;border:0;display:flex;justify-content:space-between;margin:0;padding:0 0 8px;width:100%}.admin-section-toggle span{font-family:var(--font-ui);font-size:.86rem;font-weight:500;letter-spacing:.018em;text-transform:uppercase}.admin-section-toggle i{font-style:normal}.admin-collapse-body{max-height:calc(34vh - 34px);overflow-y:auto}.published-admin.collapsed{overflow:visible}.published-admin article{align-items:center;border-top:1px solid #d8d8d8;display:grid;gap:8px;grid-template-columns:minmax(120px,.72fr) minmax(0,1.28fr) 18px;padding:8px 0}.published-admin article:has(img){grid-template-columns:42px minmax(0,1fr) 24px}.published-admin img{aspect-ratio:1 / 1;object-fit:cover;width:42px}.published-admin small{color:#777;font-family:var(--font-meta);font-size:.68rem;letter-spacing:.01em;overflow-wrap:anywhere;text-transform:uppercase}.published-admin span{font-family:var(--font-ui);line-height:1.18;min-width:0;overflow-wrap:anywhere;white-space:normal}.published-admin button{align-items:center;aspect-ratio:1 / 1;background:transparent;border:0;display:inline-flex;font-family:var(--font-meta);font-size:.72rem;justify-content:center;margin:0;min-width:0;padding:0;width:18px}.analysis-v2-meta{border-bottom:1px solid #000000;border-top:1px solid #000000;display:grid;gap:0;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));margin:10px 0;max-width:100%;min-width:0}.analysis-v2-meta div{border-right:1px solid #000000;padding:8px}.analysis-v2-meta div:last-child{border-right:0}.analysis-v2-meta dt{color:#777;font-family:var(--font-meta);font-size:.72rem;letter-spacing:.02em;text-transform:uppercase}.analysis-v2-meta dd{font-family:var(--font-meta);font-size:.74rem;margin:3px 0 0;overflow-wrap:anywhere}@media(min-width:901px)and (max-width:1360px){:root{--desktop-header-height: 72px}.top-categories{height:var(--desktop-header-height);padding:0 clamp(18px,3vw,38px) 0 72px}.site-title{font-size:clamp(2rem,4vw,3.8rem);letter-spacing:-.045em}.category-nav{gap:clamp(22px,4vw,56px)}.category{font-size:clamp(.94rem,1.8vw,1.14rem)}.book-stage{padding:clamp(8px,1.6vw,22px) clamp(10px,2vw,24px) clamp(16px,2.2vw,28px) 72px}.book-stage img{max-height:calc(var(--app-viewport-height) - 96px)}.book-meta{bottom:calc(16px + env(safe-area-inset-bottom))}.wheel-keyword{font-size:clamp(1.72rem,5.6vw,5.4rem)}.keyword-section:not(.detail-open) .keyword-wheel-node[data-distance="1"] .wheel-keyword{font-size:clamp(1.32rem,3.7vw,3.8rem)}.keyword-section:not(.detail-open) .keyword-wheel-node[data-distance="2"] .wheel-keyword{font-size:clamp(1rem,2.7vw,2.55rem)}.keyword-section.detail-open{grid-template-columns:minmax(280px,31vw) minmax(0,1fr)}.keyword-section.detail-open .keyword-wheel{padding:28px 18px 28px 72px;width:auto}.keyword-page{padding:clamp(24px,4vw,58px)}.admin-drawer{width:calc(var(--admin-panel-width) + 56px)}.admin-spine,.image-reader-spine{width:56px}.admin-spine small,.image-reader-spine small{max-height:min(170px,calc(var(--app-viewport-height) - 150px))}.image-reference-card.image-reference-expanded{grid-template-columns:56px minmax(0,1fr)}}@media(max-width:900px){.admin-drawer{--admin-panel-width: min(84vw, 720px)}.admin-compose-body,.admin-library-body{grid-template-columns:1fr}.admin-library-body .published-admin{border-left:0;border-top:1px solid #000000;padding-left:0;padding-top:12px}.keyword-section.detail-open{grid-template-columns:1fr}.keyword-section.detail-open .keyword-wheel{border-bottom:1px solid #000000;border-right:0;min-height:0;width:100%}.keyword-text-grid{grid-template-columns:1fr}.image-reference-card{inset:auto 16px 16px;max-width:none}}@media(max-width:900px){.top-categories{gap:30px;height:62px}.book-section,.book-stage{height:calc(var(--app-viewport-height) - 62px);min-height:calc(var(--app-viewport-height) - 62px)}.book-stage img{max-height:calc(var(--app-viewport-height) - 72px)}.keyword-wheel,.keyword-page{min-height:calc(var(--app-viewport-height) - 62px)}.image-scatter{min-height:170vh}}@media(max-width:900px){:root,html,body{--mobile-header-height: calc(88px + env(safe-area-inset-top)) ;min-width:0;overflow-x:hidden;width:100%}#root,.app{max-width:100vw;overflow-x:hidden}.app{min-height:100lvh;padding-bottom:0;padding-top:var(--mobile-header-height)}.app.image-detail-mode{--mobile-header-height: 0px;padding-top:0}.app.book-mode{height:100dvh;overflow:hidden;padding-bottom:0;overscroll-behavior:none;touch-action:none}.top-categories{align-items:stretch;border-bottom:1px solid #000000;flex-direction:column;gap:8px;height:var(--mobile-header-height);justify-content:flex-start;padding:calc(10px + env(safe-area-inset-top)) 12px 9px;position:fixed;right:0;width:100%;z-index:110}.site-title{font-size:1.82rem;letter-spacing:0;line-height:.92;margin-right:82px;text-align:left;width:fit-content}.category-nav{background:#fff;border:0;display:grid;gap:0;grid-template-columns:repeat(3,minmax(0,1fr));height:34px;left:auto;max-width:none;position:static;right:auto;width:100%;z-index:auto}.category{align-items:center;border-right:0;display:flex;font-size:.76rem;justify-content:center;letter-spacing:.02em;min-height:32px;min-width:0;overflow:hidden;opacity:1;padding:0;text-overflow:ellipsis}.category:last-child{border-right:0}.image-detail-mode .category-nav,.image-detail-mode .top-categories,.image-detail-mode .admin-spine{display:none}.category.active{background:transparent;color:#000;font-weight:700;text-decoration:none}.category:focus,.category:focus-visible,.image-mobile-toolbar button:focus,.image-mobile-toolbar button:focus-visible{outline:0}.book-section,.book-stage{height:calc(100dvh - var(--mobile-header-height));max-width:100vw;min-height:calc(100dvh - var(--mobile-header-height));overflow:hidden}.book-section{touch-action:none}.book-stage{align-items:flex-start;padding:clamp(20px,5vh,46px) 8px calc(82px + env(safe-area-inset-bottom))}.book-stage img{height:auto;max-height:calc(100dvh - var(--mobile-header-height) - 112px - env(safe-area-inset-bottom));max-width:calc(100vw - 16px);object-fit:contain;width:auto}.book-turn-zone{align-items:center;-webkit-tap-highlight-color:transparent;appearance:none;background:transparent;bottom:calc(82px + env(safe-area-inset-bottom));display:flex;top:0;width:32%}.book-turn-zone:hover,.book-turn-zone:active{background:transparent}.book-turn-zone:focus,.book-turn-zone:focus-visible{outline:0}.book-turn-zone.previous{justify-content:flex-start}.book-turn-zone.next{justify-content:flex-end}.book-turn-zone span{display:none}.book-meta{bottom:calc(32px + env(safe-area-inset-bottom));display:block;left:12px;max-width:calc(100vw - 24px);position:fixed;right:auto;width:calc(100vw - 24px);z-index:115}.book-index-toggle{background:transparent;border:0;font-size:1.38rem;left:50%;letter-spacing:0;padding:5px 0;position:fixed;bottom:calc(96px + env(safe-area-inset-bottom));transform:translate(-50%);width:auto}.book-index-toggle:focus,.book-index-toggle:focus-visible,.book-index-list button:focus,.book-index-list button:focus-visible{outline:0}.book-keywords{flex-wrap:nowrap;gap:6px;margin-top:8px;overflow-x:auto;padding-bottom:1px;scrollbar-width:none}.book-keywords::-webkit-scrollbar{display:none}.book-keywords button,.book-keywords span{background:transparent;border:0;flex:0 0 auto;font-size:.72rem;min-height:0;padding:2px 0}.book-keywords button:hover{background:transparent;color:#000}.book-index-panel{background:transparent;border:0;bottom:calc(148px + env(safe-area-inset-bottom));left:50%;max-height:none;max-width:none;right:auto;transform:translate(-50%);width:auto}.book-page-entry{background:#ffffffeb;gap:9px;padding:2px 0}.book-page-entry input{font-size:1.18rem;width:54px}.book-page-entry span{font-size:.98rem}.keyword-section{max-width:100vw;min-height:calc(100dvh - var(--mobile-header-height));overflow-x:hidden;overflow-y:auto;padding-bottom:calc(18px + env(safe-area-inset-bottom))}.keyword-wheel{align-items:stretch;gap:0;justify-content:flex-start;min-height:auto;padding:6px 16px calc(26px + env(safe-area-inset-bottom));width:100%}.keyword-section:not(.detail-open) .keyword-wheel:before,.keyword-section:not(.detail-open) .keyword-wheel-node:after{display:none}.keyword-section:not(.detail-open) .keyword-wheel-node{border-bottom:1px solid #000000;left:auto;position:static;top:auto;transform:none}.keyword-section:not(.detail-open) .wheel-keyword,.keyword-section:not(.detail-open) .keyword-wheel-node[data-distance="1"] .wheel-keyword,.keyword-section:not(.detail-open) .keyword-wheel-node[data-distance="2"] .wheel-keyword,.keyword-section:not(.detail-open) .keyword-wheel-node[data-distance="3"] .wheel-keyword{align-items:baseline;color:#000;display:flex;font-family:var(--font-ui);font-size:clamp(1.2rem,8vw,2.25rem);gap:12px;justify-content:space-between;letter-spacing:0;line-height:1.05;opacity:.48;padding:11px 4px;text-align:left;white-space:normal;width:100%;word-break:keep-all}.keyword-section:not(.detail-open) .keyword-child-flyout{display:none}.keyword-section.detail-open .keyword-child-flyout{display:none!important}.keyword-count{color:#777;display:inline-block;flex:0 0 auto;font-family:var(--font-meta);font-size:.68rem;font-weight:400;letter-spacing:.02em}.keyword-section:not(.detail-open) .keyword-wheel-node[data-hidden=true]{opacity:1;pointer-events:auto}.keyword-section:not(.detail-open) .keyword-wheel-node,.keyword-section:not(.detail-open) .keyword-wheel-node[data-hidden=true]{opacity:1!important;pointer-events:auto!important;transform:none!important}.keyword-section:not(.detail-open) .keyword-wheel-node .wheel-keyword{opacity:.48!important;transform:none!important}.keyword-section:not(.detail-open) .keyword-wheel-node[data-selected=true] .wheel-keyword{border-left:0;font-weight:700;opacity:1!important;padding-left:4px}.keyword-section.detail-open{display:block}.keyword-section.detail-open .keyword-wheel{background:#fff;border-bottom:1px solid #d8d8d8;border-right:0;display:none;left:0;max-height:min(46dvh,360px);min-height:0;overflow-y:auto;padding:8px 16px 14px;position:fixed;right:0;box-shadow:0 14px 24px #00000014;top:var(--mobile-header-height);width:100%;z-index:105}.keyword-section.detail-open.menu-open .keyword-wheel{display:flex}.keyword-section.detail-open .wheel-keyword,.keyword-section.detail-open .wheel-keyword[data-distance]{min-height:32px;padding:6px 0}.keyword-page{max-width:100vw;min-height:auto;padding:8px 16px calc(24px + env(safe-area-inset-bottom));touch-action:auto}.keyword-page .kicker{margin-bottom:8px}.keyword-page h1{font-size:clamp(2rem,var(--keyword-title-fluid, 17vw),4.1rem);letter-spacing:0;max-width:100%;overflow-wrap:anywhere;white-space:normal}.keyword-definition,.keyword-operation p,.info-list li{font-size:.96rem}.keyword-page.core-detail .keyword-text-grid .info-list:not(:first-child),.keyword-page.sub-detail .keyword-text-grid .info-list:not(:first-child),.keyword-page.sub-detail .keyword-operation,.keyword-page.sub-detail .keyword-sub-list,.keyword-page.sub-detail .keyword-connection-definition,.keyword-page.sub-detail .linked-book-reference{display:none}.keyword-subkeyword-entry{border-top:1px solid #000000;margin-top:26px;padding-top:10px}.keyword-subkeyword-entry button,.keyword-sub-browser-back,.keyword-sub-results button{background:#fff;border:0;color:#000;cursor:pointer;font-family:var(--font-ui);padding:0;text-align:left}.keyword-subkeyword-entry button{align-items:baseline;display:flex;font-size:1rem;font-weight:700;justify-content:space-between;min-height:38px;width:100%}.keyword-subkeyword-entry small{color:#777;font-family:var(--font-meta);font-size:.68rem;font-weight:400}.keyword-sub-browser-back{color:#777;font-size:.78rem;margin-bottom:12px}.keyword-search{border-top:1px solid #000000;display:grid;gap:9px;margin:18px 0 0;padding-top:12px}.keyword-search span{color:#777;font-family:var(--font-meta);font-size:.68rem;text-transform:uppercase}.keyword-search input{border:0;border-bottom:1px solid #000000;border-radius:0;font-family:var(--font-ui);font-size:1rem;padding:8px 0;width:100%}.keyword-search input:focus{outline:0}.keyword-search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.keyword-sub-results{border-top:1px solid #000000;margin-top:22px}.keyword-sub-results button{border-bottom:1px solid #d8d8d8;display:grid;gap:6px;padding:12px 0;width:100%}.keyword-sub-results button span{font-size:1.02rem;font-weight:700}.keyword-sub-results button small{color:#666;display:-webkit-box;font-family:var(--font-body);font-size:.78rem;line-height:1.42;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.reference-section{margin-top:34px}.linked-book-row,.linked-image-row{gap:10px;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}.linked-book-row button{flex-basis:170px}.linked-image-row figure,.linked-image-card{flex-basis:min(68vw,260px)}.image-section{max-width:100vw;min-height:calc(100lvh - var(--mobile-header-height));overflow-x:hidden}.image-mobile-toolbar{background:#fff;border-bottom:1px solid #000000;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));position:static;z-index:45}.image-map-panel{display:none}.image-mobile-toolbar button{background:#fff;border:0;border-right:1px solid #000000;cursor:pointer;font-family:var(--font-meta);font-size:.72rem;letter-spacing:.02em;min-height:42px;text-transform:uppercase}.image-mobile-toolbar button:last-child{border-right:0}.image-mobile-toolbar button.active{background:#fff;color:#000;font-weight:700;text-decoration:none}.image-gallery{display:grid;gap:0;grid-template-columns:repeat(2,minmax(0,1fr));padding:0 0 112px;width:100%}.image-gallery-card{background:#f5f5f5;border:0;cursor:pointer;min-width:0;overflow:hidden;padding:0;text-align:left}.image-gallery-card.active{box-shadow:none}.image-gallery-card img{aspect-ratio:1 / 1.08;background:#f5f5f5;object-fit:cover;width:100%}.image-gallery-card span{display:none;font-family:var(--font-image-title);font-size:var(--image-title-size, .72rem);line-height:1.2;min-height:42px;overflow:hidden;overflow-wrap:anywhere;padding:8px}.image-section.gallery-mode .image-scatter,.image-section.scatter-mode .image-gallery{display:none}.image-section.scatter-mode .image-scatter{display:block}.image-scatter{height:calc(100dvh - var(--mobile-header-height) - 43px);min-height:calc(100dvh - var(--mobile-header-height) - 43px);width:100vw}.image-zoom-plane{height:100%}.image-zoom-indicator{bottom:calc(12px + env(safe-area-inset-bottom));left:12px;z-index:85}.image-hover-card,.image-focus-display,.image-detail-backdrop,.image-reader-spine{display:none}.image-reference-card{border:0;bottom:0;box-shadow:none;display:flex;flex-direction:column;height:calc(100dvh - var(--mobile-header-height));left:0;max-height:none;max-width:none;overflow:hidden;overflow-x:hidden;padding:0;right:0;touch-action:auto;top:var(--mobile-header-height);z-index:130}.image-reference-card.image-reference-expanded{border:0;bottom:0;box-shadow:none;display:flex;flex-direction:column;grid-template-columns:none;height:calc(100dvh - var(--mobile-header-height));left:0;max-height:none;max-width:none;overflow:hidden;padding:0;right:0;top:var(--mobile-header-height);width:100vw}.image-section.detail-open .image-mobile-toolbar,.image-section.detail-open .image-gallery,.image-section.detail-open .image-scatter{display:none}.image-viewer-topbar{align-items:center;border-bottom:1px solid #eeeeee;display:flex;flex:0 0 36px;justify-content:space-between;padding:0 10px}.image-viewer-topbar span{color:#555;font-family:var(--font-meta);font-size:.62rem;letter-spacing:.02em;text-transform:uppercase}.image-viewer-frame{background:#fff;display:flex;flex:0 0 auto;padding:8px 8px 0}.image-viewer-frame img{background:#f2f2f2;max-height:min(52dvh,calc(100dvh - var(--mobile-header-height) - 260px));object-fit:contain;width:100%}.image-reference-body,.image-reference-expanded .image-reference-body{display:block;flex:1 1 auto;height:auto;min-height:0;overflow-x:hidden;overflow-y:auto;padding:8px 12px calc(22px + env(safe-area-inset-bottom));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.image-reference-body .kicker{display:none}.image-reference-card h1{font-size:clamp(.78rem,var(--image-title-size, 1rem),1.08rem);font-weight:700;letter-spacing:0;line-height:1.16;margin:0 0 14px;text-overflow:clip;white-space:nowrap}.image-reference-card h1.image-title-with-artist{white-space:normal}.image-title-with-artist small{font-size:.62rem}.image-reference-card p{font-size:.82rem;line-height:1.58;margin:0 0 14px}.image-keyword-summary,.image-keyword-reasons,.image-design-operation,.image-analysis-section,.image-ai-categories,.image-reference-card .info-list{margin-top:14px;padding-top:10px}.image-keyword-summary h2,.image-keyword-reasons h2,.image-design-operation h2,.image-analysis-section h2,.image-ai-categories h2,.image-reference-card .info-list h2{font-size:.72rem;margin-bottom:10px}.image-keyword-summary div{gap:5px;grid-template-columns:1fr;margin-bottom:10px}.image-keyword-summary button{font-size:.74rem}.image-keyword-reasons h3{font-size:.78rem}.image-reference-card dl div{grid-template-columns:66px 1fr}.image-card-close{background:transparent;border:0;font-size:.64rem;margin:0;padding:0;position:static}.image-reference-body>.image-card-close{display:none}.admin-drawer{--admin-panel-width: 100vw;width:100vw;z-index:140}.admin-spine{border:1px solid #000000;bottom:auto;height:auto;left:auto;max-width:calc(100vw - 24px);padding:8px 10px;right:12px;top:calc(10px + env(safe-area-inset-top));width:auto;z-index:145}.admin-drawer.open .admin-spine{opacity:0;pointer-events:none;transform:none}.admin-spine span,.admin-spine small{font-size:.7rem;line-height:1;writing-mode:horizontal-tb}.admin-spine small{display:none}.admin-panel{border-right:0;height:100dvh;max-width:100vw;overflow-x:hidden;overflow-y:auto;padding:14px 14px calc(18px + env(safe-area-inset-bottom));transform:translateY(100%);width:100vw;z-index:160}.admin-drawer.open .admin-panel{transform:translateY(0)}.admin-panel>h2{font-size:clamp(2.1rem,14vw,3.8rem);letter-spacing:0}.admin-session-row{align-items:flex-start;flex-direction:column}.admin-compose-body,.admin-meta-grid,.analysis-v2-meta{grid-template-columns:1fr}.admin-meta-grid textarea{min-height:72px}.admin-actions{display:grid;grid-template-columns:1fr}.admin-actions>button{grid-column:1;justify-self:stretch;width:100%}.admin-queue{min-height:180px}.admin-panel button,.admin-upload{min-height:38px}.admin-login-form{gap:12px}.admin-panel .admin-login-form button:first-of-type{margin-top:10px}.job-summary{grid-template-columns:48px minmax(0,1fr) 18px}.job-summary img{width:48px}.job-summary small,.admin-panel.library-open .admin-compose,.admin-panel.library-open .admin-queue{display:none}.admin-panel.library-open .admin-session-row{border-bottom:1px solid #000000;padding-bottom:10px}.admin-library.open{flex:1 1 auto;margin-top:10px;min-height:0;overflow:hidden}.admin-panel.library-open .admin-library.open{flex:1 1 auto}.admin-library-body{gap:10px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0;overflow:hidden;padding-top:10px}.admin-library-body .published-admin{border-left:1px solid #000000;border-top:0;display:flex;flex-direction:column;min-height:0;overflow-y:auto;padding-left:10px;padding-top:0}.admin-library-body .published-admin:first-child{border-left:0;padding-left:0}.published-admin h3{background:#fff;flex:0 0 auto;padding-bottom:8px;position:sticky;top:0;z-index:2}.published-admin article,.published-admin article:has(img){gap:6px;grid-template-columns:34px minmax(0,1fr) 18px;min-width:0;padding:7px 0}.published-admin article:not(:has(img)){grid-template-columns:minmax(0,.72fr) minmax(0,1fr) 18px}.published-admin img{width:34px}.published-admin small{font-size:.56rem;line-height:1.05}.published-admin span{font-size:.76rem;line-height:1.2}.published-admin button{width:18px}}
