:root{--color-background:#fff;--color-surface:#f1f1f1;--color-text:#111;--color-text-muted:#5f5f5f;--color-accent:#111;--color-accent-strong:#000;--color-inverse-bg:#111;--color-inverse-text:#fff;--font-heading:"Barlow Condensed", sans-serif;--font-body:"Noto Sans JP", sans-serif;--font-mono:"JetBrains Mono", monospace;--line-heading:1.2;--line-body:1.9;--fs-2xs:clamp(.625rem, .6rem + .13vw, .6875rem);--fs-xs:clamp(.75rem, .73rem + .1vw, .8rem);--fs-sm:clamp(.875rem, .85rem + .13vw, .95rem);--fs-base:clamp(1rem, .95rem + .25vw, 1.125rem);--fs-lg:clamp(1.125rem, 1rem + .6vw, 1.25rem);--fs-xl:clamp(1.25rem, 1.05rem + 1vw, 1.5rem);--fs-2xl:clamp(1.5rem, 1.15rem + 1.75vw, 2rem);--fs-3xl:clamp(1.875rem, 1.2rem + 3.4vw, 3rem);--spacing-half:4px;--spacing-1:clamp(7px, .8vw, 10px);--spacing-2:clamp(13px, 1.5vw, 20px);--spacing-3:clamp(18px, 2.2vw, 28px);--spacing-4:clamp(24px, 3vw, 40px);--spacing-6:clamp(36px, 4.5vw, 56px);--spacing-8:clamp(48px, 6vw, 72px);--spacing-section:clamp(72px, 9.5vw, 128px);--radius-sm:0px;--radius-md:0px;--radius-full:0px;--container-max:min(92vw, 1280px);--container-text:min(92vw, 68ch);--button-bg:var(--color-accent);--button-text:var(--color-inverse-text);--button-radius:var(--radius-sm);--card-border-color:#bcbcbc;--card-radius:var(--radius-sm);--scrollbar-color:var(--color-text);--scrollbar-width:4px}*,:before,:after{box-sizing:border-box}html{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color) transparent}html::-webkit-scrollbar{width:var(--scrollbar-width);height:var(--scrollbar-width)}html::-webkit-scrollbar-track{background:0 0}html::-webkit-scrollbar-thumb{background:var(--scrollbar-color)}body{background:var(--color-background);color:var(--color-text);font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--line-body);margin:0;font-weight:400}img{max-width:100%;height:auto;display:block}a{color:inherit}button{font:inherit;color:var(--button-text);background:var(--button-bg);border-radius:var(--button-radius);padding:var(--spacing-1) var(--spacing-3);cursor:pointer;border:0}button:hover{background:var(--color-accent-strong)}button[disabled]{background:var(--color-surface);color:var(--color-text-muted);cursor:default}.site-header{z-index:5;padding:var(--spacing-2) var(--spacing-3);mix-blend-mode:difference;color:var(--color-inverse-text);pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:fixed;inset:0 0 auto}.site-header>.site-logo a,.site-header>.menu-toggle{pointer-events:auto}.site-header>.site-logo{font-family:var(--font-heading);font-size:var(--fs-2xl);letter-spacing:.04em;margin:0;font-weight:600}.site-header>.site-logo a{text-decoration:none}.site-header>.site-logo,.site-header>.site-logo a{align-items:center;gap:var(--spacing-1);display:flex}.site-logo svg{flex:none;width:1.2em;height:1.2em}.site-header-static{mix-blend-mode:normal;color:var(--color-text);border-bottom:1px solid var(--card-border-color);pointer-events:auto;position:static}.site-header>.menu-toggle{width:2.5rem;height:2.5rem;color:inherit;background:0 0;padding:0;font-size:0}.site-header>.menu-toggle:before,.site-header>.menu-toggle:after{content:"";background:currentColor;width:60%;height:1px;margin:7px auto;display:block}.menu{z-index:4;width:min(92vw,420px);padding:var(--spacing-8) var(--spacing-4);background:var(--color-background);border-left:1px solid var(--card-border-color);position:fixed;inset:0 0 0 auto;overflow-y:auto}.menu>.menu-close{margin-bottom:var(--spacing-3)}.menu>.menu-count{margin:0 0 var(--spacing-2);font-family:var(--font-heading);font-size:var(--fs-sm);color:var(--color-text-muted);letter-spacing:.08em}.menu label{margin-bottom:var(--spacing-2);font-size:var(--fs-sm);display:block}.menu-filters{margin-top:var(--spacing-4)}.menu-filters>.filter{margin:0 0 var(--spacing-3);padding:var(--spacing-2);border:1px solid var(--card-border-color)}.menu-filters>.filter legend{padding:0 var(--spacing-half);font-family:var(--font-heading);font-size:var(--fs-sm);letter-spacing:.06em;font-weight:600}.menu-filters>.filter label{margin:0 var(--spacing-2) var(--spacing-1) 0;font-size:var(--fs-xs);font-weight:400;display:inline-block}.menu-filters>.filter-reset{width:100%}.menu input[type=search]{width:100%;padding:var(--spacing-1) var(--spacing-2);font:inherit;border:1px solid var(--card-border-color);border-radius:var(--radius-sm)}.hero{background:var(--color-inverse-bg);height:100svh;display:flex;position:relative;overflow:hidden}.hero img{object-fit:cover;object-position:50% 50%;flex:1 1 0;min-width:0;height:100%}.hero>.hero-title{z-index:1;left:var(--spacing-4);bottom:var(--spacing-6);color:var(--color-inverse-text);mix-blend-mode:difference;font-family:var(--font-heading);font-size:var(--fs-3xl);font-weight:600;line-height:var(--line-heading);letter-spacing:.02em;margin:0;position:absolute}.hero>.hero-title span{font-family:var(--font-body);font-size:var(--fs-sm);letter-spacing:.08em;font-weight:400;display:block}.hero svg{width:100%;height:100%;fill:var(--color-background);stroke:var(--color-background);stroke-width:1px;position:absolute;inset:0}.gallery{width:min(96vw,1440px);margin:var(--spacing-8) auto var(--spacing-section);position:relative}.card{border:1px solid var(--card-border-color);border-radius:var(--card-radius);background:var(--color-background);margin-bottom:var(--spacing-3)}.card>h2{margin:var(--spacing-2) var(--spacing-2) 0;font-family:var(--font-heading);font-size:var(--fs-lg);font-weight:600;line-height:var(--line-heading);letter-spacing:.02em;text-transform:uppercase}.card>.card-engine{margin:0 var(--spacing-2) var(--spacing-2);font-size:var(--fs-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.card-detail{padding:0 var(--spacing-2) var(--spacing-2)}.card-figure{margin:0;position:relative}.card-figure>.card-badge{display:none}.card-source{font-size:var(--fs-xs);color:var(--color-text-muted)}.card-source p{margin:0 0 var(--spacing-half)}.card-edited{margin:var(--spacing-2) 0 0;font-size:var(--fs-xs)}.card-prompt{margin:var(--spacing-2) 0 0;padding:var(--spacing-2);background:var(--color-surface);font-family:var(--font-mono);font-size:var(--fs-xs);white-space:pre-wrap;word-break:break-word;line-height:1.7;overflow-x:auto}.card-edited+.card-prompt{margin-top:var(--spacing-half)}.card-prompt del+ins{margin-left:.5ch}.menu[hidden],.modal[hidden]{display:none}.modal{z-index:5;background:var(--color-background);display:flex;position:fixed;inset:0}.modal>.modal-image{background:var(--color-inverse-bg);flex:60%;justify-content:center;align-items:center;display:flex;position:relative}.modal>.modal-image>.card-badge{right:var(--spacing-2);bottom:var(--spacing-2);padding:2px var(--spacing-1);background:var(--color-inverse-bg);color:var(--color-inverse-text);font-size:var(--fs-2xs);letter-spacing:.04em;margin:0;line-height:1.6;position:absolute}.modal>.modal-body{padding:var(--spacing-6) var(--spacing-4);flex:40%;overflow-y:auto}.modal>.modal-body>.card-detail{padding:var(--spacing-2) 0}.modal-close{margin-bottom:var(--spacing-2)}.modal-copies{gap:var(--spacing-1);flex-wrap:wrap;display:flex}.wipe{z-index:6;background:var(--color-inverse-bg);transform-origin:0;pointer-events:none;position:fixed;inset:0;transform:scaleX(0)}.page{width:var(--container-text);padding:var(--spacing-8) 0 var(--spacing-section);margin:0 auto}.page h1{margin:0 0 var(--spacing-4);font-family:var(--font-heading);font-size:var(--fs-2xl);font-weight:600;line-height:var(--line-heading)}.page h2{margin:var(--spacing-6) 0 var(--spacing-2);font-size:var(--fs-lg);font-weight:700}.page p{margin:0 0 var(--spacing-2)}.site-footer{padding:var(--spacing-6) var(--spacing-3);border-top:1px solid var(--card-border-color);text-align:center;font-size:var(--fs-sm)}.site-footer p{margin:0 0 var(--spacing-1)}.error{margin:0 0 var(--spacing-2);color:var(--color-accent-strong);font-size:var(--fs-sm);font-weight:700}.error-summary,.notice{padding:var(--spacing-2);background:var(--color-surface);font-size:var(--fs-sm)}.js .gallery .card-detail,.js .card[data-pending],.js .card[data-filtered]{display:none}.js .card img,.js .card h2{cursor:pointer}.js .gallery{overflow:hidden}@media (prefers-reduced-motion:reduce){.wipe{display:none}}