/* 常温保存 / pixel café. Shared presentation; story and game logic stay in their pages. */
@font-face{font-family:CafeDot;src:url('./khdot.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
html[data-cafe]{--cafe-font:CafeDot,monospace;--cafe-page:#b6e7d1;--cafe-paper:#fffdf0;--cafe-ink:#254b3a;--cafe-muted:#526956;--cafe-accent:#276349;--cafe-line:#86b79a;--cafe-tint:#e1f2d2;--cafe-pop:#de786a;--cafe-pattern:url('./mint.svg');--cafe-food:url('./float.svg');color-scheme:light;scroll-behavior:smooth;scroll-padding-top:24px}
html[data-cafe="shortcake"],[data-corner="shortcake"]{--cafe-page:#f3b8b3;--cafe-paper:#fffaf0;--cafe-ink:#623e3a;--cafe-muted:#795850;--cafe-accent:#a53849;--cafe-line:#d99490;--cafe-tint:#ffe3d7;--cafe-pop:#a53849;--cafe-pattern:url('./strawberry.svg');--cafe-food:url('./cake.svg')}
html[data-cafe="burger"],[data-corner="burger"]{--cafe-page:#e9b969;--cafe-paper:#fff6dd;--cafe-ink:#513d26;--cafe-muted:#755632;--cafe-accent:#8f3d26;--cafe-line:#bc8e4d;--cafe-tint:#efd5a0;--cafe-pop:#598144;--cafe-pattern:url('./sesame.svg');--cafe-food:url('./burger.svg')}
html[data-cafe="pudding"],[data-corner="pudding"]{--cafe-page:#f1d99a;--cafe-paper:#fffbea;--cafe-ink:#5d4233;--cafe-muted:#7b5e49;--cafe-accent:#92502f;--cafe-line:#c4a075;--cafe-tint:#f7e5b9;--cafe-pop:#bb6450;--cafe-pattern:url('./caramel.svg');--cafe-food:url('./pudding.svg')}
html[data-cafe="mint"],[data-corner="mint"]{--cafe-page:#b0dcd5;--cafe-paper:#f8fff2;--cafe-ink:#294f4c;--cafe-muted:#516d65;--cafe-accent:#28645d;--cafe-line:#87b9ab;--cafe-tint:#d9ede5;--cafe-pop:#b9675b;--cafe-pattern:url('./mint.svg');--cafe-food:url('./float.svg')}
html[data-cafe="grape"],[data-corner="grape"]{--cafe-page:#d5c7e8;--cafe-paper:#fcf8ff;--cafe-ink:#4a3a5e;--cafe-muted:#6e5f82;--cafe-accent:#6a4aa8;--cafe-line:#a894c9;--cafe-tint:#ebe2f4;--cafe-pop:#e26b9c;--cafe-pattern:url('./grape.svg');--cafe-food:url('./dice.svg')}
html[data-cafe="orange"],[data-corner="orange"]{--cafe-page:#e99a53;--cafe-paper:#fff0cf;--cafe-ink:#644126;--cafe-muted:#82573a;--cafe-accent:#9e5e2d;--cafe-line:#c18c54;--cafe-tint:#ffdf9e;--cafe-pop:#d9503a;--cafe-pattern:none;--cafe-food:url('./orange-soda.svg')}
html[data-cafe="lemon"],[data-corner="lemon"]{--cafe-page:#f4e35a;--cafe-paper:#fffbe0;--cafe-ink:#5e5220;--cafe-muted:#7d6f2c;--cafe-accent:#8a6d10;--cafe-line:#c9b23a;--cafe-tint:#fff3a6;--cafe-pop:#d9503a;--cafe-pattern:none;--cafe-food:url('./soda-lemon.svg')}
html[data-cafe="red"],[data-corner="red"]{--cafe-page:#e0323c;--cafe-paper:#fff0ee;--cafe-ink:#5a1d20;--cafe-muted:#7a3236;--cafe-accent:#a3242b;--cafe-line:#c7686c;--cafe-tint:#ffd6d4;--cafe-pop:#ffd05a;--cafe-pattern:none;--cafe-food:url('./soda-red.svg')}
html[data-cafe="cola"],[data-corner="cola"]{--cafe-page:#48271e;--cafe-paper:#fff0d5;--cafe-ink:#3f2418;--cafe-muted:#6a4a3a;--cafe-accent:#8f3d26;--cafe-line:#b78255;--cafe-tint:#f3d4a7;--cafe-pop:#d9a767;--cafe-pattern:none;--cafe-food:url('./soda-cola.svg')}
html[data-cafe="blue"],[data-corner="blue"]{--cafe-page:#2a5fd8;--cafe-paper:#eef4ff;--cafe-ink:#1d2f6b;--cafe-muted:#3a4d8a;--cafe-accent:#1f43b0;--cafe-line:#7f9de0;--cafe-tint:#dce7ff;--cafe-pop:#ffd05a;--cafe-pattern:none;--cafe-food:url('./soda-blue.svg')}
html[data-cafe="sea"],[data-corner="sea"]{--cafe-page:#7fd3e6;--cafe-paper:#f2fdff;--cafe-ink:#22566a;--cafe-muted:#3f7182;--cafe-accent:#1f6e88;--cafe-line:#7cc0d2;--cafe-tint:#d6f4fa;--cafe-pop:#ee9a6c;--cafe-pattern:none;--cafe-food:url('./soda-sea.svg')}
html[data-cafe="champagne"],[data-corner="champagne"]{--cafe-page:#f3c8b8;--cafe-paper:#fff7f2;--cafe-ink:#6b3f3b;--cafe-muted:#8a5d57;--cafe-accent:#b0554f;--cafe-line:#d9a396;--cafe-tint:#ffe6dc;--cafe-pop:#c98a2f;--cafe-pattern:none;--cafe-food:url('./soda-champagne.svg')}
html[data-cafe="choco"],[data-corner="choco"]{--cafe-page:#2a1a13;--cafe-paper:#3b2822;--cafe-ink:#f6e9da;--cafe-muted:#cdb5a3;--cafe-accent:#e9b972;--cafe-line:#75513f;--cafe-tint:#4d342b;--cafe-pop:#e9b972;--cafe-pattern:none;--cafe-food:url('./choco-pancake.svg')}
html[data-cafe]{--bg:var(--cafe-page);--bg2:var(--cafe-paper);--text:var(--cafe-ink);--text-soft:var(--cafe-muted);--soft:var(--cafe-muted);--line:var(--cafe-line);--accent:var(--cafe-accent);--accent-soft:var(--cafe-line);--dot:var(--cafe-font);--serif:var(--cafe-font);--page:var(--cafe-page);--sheet:var(--cafe-paper);--ink:var(--cafe-ink);--ink-dim:var(--cafe-muted);--ink-dimmer:var(--cafe-muted);--ink-faint:var(--cafe-muted);--ground:var(--cafe-paper);--ground-2:var(--cafe-tint);--wash:var(--cafe-tint);--hover:var(--cafe-tint);--line-soft:var(--cafe-line);--accent-2:var(--cafe-pop);--spec:var(--cafe-paper);--shadow-soft:4px 4px 0 var(--cafe-line);--radius:0}
html[data-cafe] body{background:var(--cafe-page);background-image:var(--cafe-pattern);background-size:160px 160px;background-attachment:scroll;color:var(--cafe-ink);font-family:var(--cafe-font);font-weight:400;line-height:1.85;isolation:isolate;min-height:100svh;-webkit-font-smoothing:auto}
html[data-cafe] body::before,html[data-cafe] body::after{content:none}
html[data-cafe] :is(h1,h2,h3,p,a,button,input,textarea,select,span,div,li,dt,dd,summary,th,td){font-family:var(--cafe-font)}
html[data-cafe] :is(h1,h2,h3){font-weight:400;text-shadow:none;letter-spacing:.06em}
html[data-cafe] :is(h1,.page__title){font-size:clamp(24px,5vw,32px);line-height:1.5;letter-spacing:.08em;color:var(--cafe-ink)}
html[data-cafe] :is(a,.back,.link){color:var(--cafe-accent)}
html[data-cafe] :is(a,button,input,summary):focus-visible{outline:3px solid var(--cafe-accent);outline-offset:4px}
html[data-cafe] :is(.note,.notes,.lead,.page__kicker,.page__note,.sitename,.profile__label,.profile__read,.contact__label,.shelf__head,.jar__no,.jar__desc,.diary-banner__desc,.sgkf__desc,.nhint,.r18game__enter,footer){color:var(--cafe-muted);opacity:1;text-shadow:none}
html[data-cafe] :is(.profile__name,.profile__desc,.duo__tap,.jar__name,.diary-banner__name,.yume__head,.ycar__name,.sgkf__name,.sec__head){color:var(--cafe-ink);text-shadow:none;font-weight:400}
html[data-cafe] :is(.jar,.diary-banner,.yumeshu-banner,.entry,.sec,.announce,.namebox,.sheet,.disc,.spec,.agegate__box){background:var(--cafe-paper);color:var(--cafe-ink);border:2px solid var(--cafe-line);border-radius:0;box-shadow:4px 4px 0 var(--cafe-line);backdrop-filter:none;-webkit-backdrop-filter:none}
html[data-cafe] :is(.jar,.diary-banner,.yumeshu-banner):hover{background:var(--cafe-tint);color:var(--cafe-ink);border-color:var(--cafe-accent);box-shadow:4px 4px 0 var(--cafe-line);transform:translateY(-2px)}
html[data-cafe] :is(.jar)::before,html[data-cafe] :is(.jar)::after{content:none}
html[data-cafe] :is(.jar__arrow,.diary-banner__arrow,.gridmore,.jar__more){color:var(--cafe-accent)}
html[data-cafe] :is(.jar__no,.jar__desc,.diary-banner__desc){font-size:13px;letter-spacing:.03em}
html[data-cafe] :is(.jar__name,.diary-banner__name,.yume__head){font-size:20px;letter-spacing:.03em}
html[data-cafe] :is(.back:hover,.gridmore:hover,.link:hover,.jar__more:hover){color:var(--cafe-accent)}
html[data-cafe] :is(.tile,.novelgrid__item,.gallery a,.entry__imgs a,.entry__img-inline,.entry__yt,.entry__vids video){border-radius:0;box-shadow:none;border-color:var(--cafe-line);background:var(--cafe-paper)}
html[data-cafe] :is(.others a,.ycar__chips button,.ycar__nav,.namerow input,.badge,.spoiler__toggle){color:var(--cafe-ink);background:var(--cafe-paper);border:1px solid var(--cafe-line);border-radius:0}
html[data-cafe] :is(.others a[aria-current="page"],.ycar__chips button.on,.ycar__chips button:hover,.ycar__nav:hover,.spoiler.open .spoiler__toggle){color:var(--cafe-accent);background:var(--cafe-tint);border-color:var(--cafe-accent)}
html[data-cafe] .topbar{background:var(--cafe-paper);border-bottom:2px solid var(--cafe-line);backdrop-filter:none;-webkit-backdrop-filter:none}
html[data-cafe] .novel-charcount{color:var(--cafe-muted)!important;opacity:1!important}
html[data-cafe] .agegate{backdrop-filter:none;background:#314537cc}
html[data-cafe] .agegate__btn{border-radius:0;min-height:44px}
html[data-cafe] .agegate__btn--yes{background:var(--cafe-accent);color:var(--cafe-paper)}
html[data-cafe] .agegate__btn--yes:hover{background:var(--cafe-ink)}
html[data-cafe] .agegate__btn--no{color:var(--cafe-ink)}
html[data-cafe] .kakunin-link{color:var(--cafe-muted);font-size:12px}
html[data-cafe] .cafe-mascot{display:block;width:96px;height:96px;object-fit:contain;image-rendering:pixelated;margin:16px auto 20px}
html[data-cafe] .cafe-rule{border:0;border-top:2px dashed var(--cafe-line);margin:36px 0}
html[data-cafe] .cafe-corner{color:var(--cafe-ink);position:relative;background:var(--cafe-paper);border:2px solid var(--cafe-line);box-shadow:4px 4px 0 var(--cafe-line);padding:24px;margin:0;min-width:0}
html[data-cafe] .cafe-corner .yume__head{padding:4px 0 18px;margin:0 0 12px;border-bottom:2px dashed var(--cafe-line);display:flex;align-items:center;gap:12px}
html[data-cafe] .cafe-corner .yume__head::before{content:"";width:48px;height:48px;background:var(--cafe-food) center/contain no-repeat;image-rendering:pixelated;flex:none}
html[data-cafe] .cafe-corner .yume__head::after{content:none}
html[data-cafe] .cafe-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 28px;margin:22px 0 0}
html[data-cafe] .cafe-nav a{font-size:16px;line-height:2.5;color:var(--cafe-ink);text-underline-offset:6px}
html[data-cafe] .cafe-nav a:hover{text-decoration:underline;text-decoration-style:dotted}
/* Home: a short counter at the top, then each food has its own shelf. */
html[data-cafe-home] body{background:#b6e7d1}
html[data-cafe-home] .hero{padding:42px 20px 34px;min-height:0;margin:0}
html[data-cafe-home] .hero__inner{animation:rise 1.3s ease forwards;opacity:1;transform:none}
html[data-cafe-home] .hero__title{font:400 clamp(28px,6vw,40px)/1.3 var(--cafe-font);letter-spacing:.18em;text-indent:.18em;margin:12px 0 0}
html[data-cafe-home] .hero .cafe-mascot{width:112px;height:144px;margin:0 auto 16px}
html[data-cafe-home] body>.wrap{max-width:1000px;padding:0 24px 64px}
html[data-cafe-home] .shelf{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:0}
html[data-cafe-home] #yumeSection{grid-column:1/-1}
html[data-cafe-home] #yumeSection .ycar{max-width:650px;margin:auto}
html[data-cafe-home] .sr{opacity:1;transform:none;transition:none}
html[data-cafe-home] .ycar__name{font-size:22px;letter-spacing:.08em;text-indent:.08em;margin:12px 0 24px}
html[data-cafe-home] .ycar__img{background:var(--cafe-tint)}
html[data-cafe-home] .ycar__nav{width:40px;height:44px}
html[data-cafe-home] .ycar__chips button{min-height:40px;font-size:14px}
html[data-cafe-home] .novelgrid{grid-template-columns:repeat(3,1fr);gap:12px}
html[data-cafe-home] .novelgrid img{border-radius:0}
html[data-cafe-home] .jar--game{grid-column:1/-1;max-width:none;aspect-ratio:2.5/1;background:#f4d99e;border-color:#bc8e4d;min-height:230px;margin:0}
html[data-cafe-home] .jar--game::before{content:"";position:absolute;inset:18px auto auto 20px;width:72px;height:72px;background:url('./burger.svg') center/contain no-repeat;image-rendering:pixelated;pointer-events:none}
html[data-cafe-home] .jar__ground{background:#9cae60;border-top:6px solid #fff2b8;border-radius:0}
html[data-cafe-home] .jar__more{color:#513d26;font-size:16px}
html[data-cafe-home] .game__food button{background:#fff6dd;border-color:#bc8e4d;border-radius:0}
html[data-cafe-home] .diary-banner{margin:0;padding:24px;min-height:108px;align-self:start}
html[data-cafe-home] .diary-banner::before{content:"";width:48px;height:48px;flex:0 0 48px;background:var(--cafe-food) center/contain no-repeat;image-rendering:pixelated;margin-right:12px}
html[data-cafe-home] .shelf-divider{grid-column:1/-1;width:100%;height:0;border-top:2px dashed var(--cafe-line);margin:8px 0}
html[data-cafe-home] .profile,html[data-cafe-home] .contact{margin:0;padding:28px 12px;background:transparent}
html[data-cafe-home] .profile__avatar{border-radius:0;box-shadow:none;max-width:96px}
html[data-cafe-home] .profile__name{font-size:24px}
html[data-cafe-home] .duo{grid-column:1/-1;margin:0;padding:24px;background:transparent}
html[data-cafe-home] .notes{padding:24px;background:#fffdf0;font-size:12px;letter-spacing:.02em;line-height:1.9;margin-top:36px}
/* Reading gets a quiet cream sheet. The food stays at the edge. */
html[data-cafe-reader] article{max-width:760px;margin:24px auto 0;background:var(--cafe-paper);border-top:6px solid var(--cafe-page);padding:32px 0 40px;box-shadow:4px 4px 0 var(--cafe-line)}
html[data-cafe-reader] article p{color:var(--cafe-ink);font-family:var(--cafe-font);line-height:2.1}
html[data-cafe-reader] .botnav{max-width:760px;margin:auto;background:var(--cafe-paper);padding:32px 16px 48px}
html[data-cafe-reader] .topbar{position:sticky}
html[data-cafe="burger"] .page__kicker{letter-spacing:.08em}
html[data-cafe="burger"] .shelf{margin-top:30px}
html[data-cafe="burger"] .jar{padding:24px;margin-bottom:22px}
html[data-cafe="burger"] .jar__name{font-size:20px}
html[data-cafe="pudding"] .entry{margin-bottom:28px;padding:24px}
html[data-cafe="pudding"] .entry__meta{border-color:var(--cafe-line)}
html[data-cafe="pudding"] .spoiler__toggle{color:var(--cafe-accent);background:var(--cafe-tint)}
html[data-cafe] .cafe-paper{background:var(--cafe-paper);padding:24px;box-shadow:4px 4px 0 var(--cafe-line)}
/* Keep profile setup transitions and controls, only change its material. */
html[data-cafe-setup] .bgfx{display:none}
html[data-cafe-setup] .sheet{border-radius:0;animation:none}
html[data-cafe-setup] .fill{background:var(--cafe-accent)}
html[data-cafe-setup] .mark{color:var(--cafe-accent)}
html[data-cafe-setup] .tinput,html[data-cafe-setup] .chbtn{border-radius:0}
/* A low-resolution canvas supplies every bubble, edge and reflection. */
#cafe-soda,#cafe-fizz{position:fixed;inset:0;pointer-events:none;z-index:-1;image-rendering:pixelated}
.cafe-motion{position:fixed;right:12px;bottom:12px;z-index:20;max-width:calc(100vw - 24px);font:400 13px/1.6 var(--cafe-font);background:#fffdf0;color:#254b3a;border:2px solid #86b79a;box-shadow:3px 3px 0 #86b79a}
.cafe-motion summary{padding:8px 12px;cursor:pointer;min-height:40px;box-sizing:border-box}
.cafe-motion[open]{width:280px}
.cafe-motion .cafe-controls{padding:0 12px 12px}
.cafe-motion button{font:inherit;color:#254b3a;background:#e1f2d2;border:1px solid #86b79a;border-radius:0;padding:8px;margin:0 4px 8px 0;min-height:40px;cursor:pointer}
.cafe-motion label{display:block}
.cafe-motion input{width:100%;accent-color:#276349;min-height:32px}
.cafe-motion p{margin:4px 0 0;font:inherit}
html[data-cafe] .cafe-spark{position:absolute;width:12px;height:12px;right:20px;top:16px;background:var(--cafe-pop);clip-path:polygon(33% 0,66% 0,66% 33%,100% 33%,100% 66%,66% 66%,66% 100%,33% 100%,33% 66%,0 66%,0 33%,33% 33%);animation:cafe-twinkle 7s steps(1,end) infinite;pointer-events:none}
html[data-cafe] .cafe-corner:nth-child(2n) .cafe-spark{animation-delay:-3s}
@keyframes cafe-twinkle{0%,62%,100%{opacity:0}65%,76%{opacity:.8}70%,82%{opacity:.35}}
@media(max-width:680px){html[data-cafe-home] body>.wrap{padding:0 16px 64px}html[data-cafe-home] .shelf{grid-template-columns:1fr;gap:20px}html[data-cafe-home] .hero{padding:28px 16px}html[data-cafe-home] .hero .cafe-mascot{width:96px;height:120px}html[data-cafe-home] .cafe-corner{padding:18px}html[data-cafe-home] .jar--game{aspect-ratio:1.5/1}html[data-cafe-home] .diary-banner{padding:18px}html[data-cafe-home] .novelgrid{grid-template-columns:repeat(4,1fr);gap:10px}html[data-cafe-reader] article{margin:0;box-shadow:none;border-top:0}html[data-cafe-reader] .topbar .sn{display:none}html[data-cafe] .cafe-paper{padding:20px 14px}html[data-cafe] .notes{overflow-wrap:anywhere}.cafe-motion{right:8px;bottom:8px}}
@media(prefers-reduced-motion:reduce){html[data-cafe]{scroll-behavior:auto}html[data-cafe] *,html[data-cafe] *::before,html[data-cafe] *::after{animation:none!important;transition:none!important}}
@media print{#cafe-soda,.cafe-motion,.cafe-nav,.cafe-mascot{display:none!important}html[data-cafe] body{background:white}html[data-cafe] article{box-shadow:none;border:0}}

/* Remove the remaining glass treatment on the carousel and work thumbnails. */
html[data-cafe-home] .ycar__stage{border:2px solid var(--cafe-line);border-radius:0;box-shadow:none}
html[data-cafe-home] .ycar__slide img{background:var(--cafe-tint)}
html[data-cafe-home] .novelgrid a{border-radius:0;box-shadow:none;transform:none;animation:none}
html[data-cafe-home] .novelgrid a:hover{transform:translateY(-2px);outline:2px solid var(--cafe-accent);outline-offset:2px}
html[data-cafe-home] .profile__avatar{width:96px;height:96px}
html[data-cafe] .tile:hover{box-shadow:none}
html[data-cafe] .cafe-paper{margin-top:28px;margin-bottom:36px}
html[data-cafe] .cafe-motion button:disabled{opacity:.55;cursor:wait}

/* Entry notice uses the same readable cream surface, without changing consent. */
html[data-cafe] .dcl{background:var(--cafe-page);color:var(--cafe-ink);font-family:var(--cafe-font)}
html[data-cafe] .dcl__box{background:var(--cafe-paper);border:2px solid var(--cafe-line);border-radius:0;box-shadow:4px 4px 0 var(--cafe-line)}
html[data-cafe] .dcl__ttl{color:var(--cafe-ink);font-size:24px}
html[data-cafe] :is(.dcl__lab,.dcl__lead,.dcl__n,.dcl__note,.dcl__no){color:var(--cafe-muted);font-size:13px}
html[data-cafe] .dcl__list{font-size:14px}
html[data-cafe] .dcl__list b{color:var(--cafe-ink)}
html[data-cafe] .dcl__list li{border-color:var(--cafe-line)}
html[data-cafe] .dcl__rule{background:var(--cafe-line)}
html[data-cafe] .dcl__ok{background:var(--cafe-accent);color:var(--cafe-paper);border:2px solid var(--cafe-accent);border-radius:0;font-size:14px}
html[data-cafe] .dcl__ok:hover{background:var(--cafe-ink);border-color:var(--cafe-ink)}
/* Grid tracks may shrink on narrow screens; long labels must not widen the page. */
html[data-cafe-home] .shelf{grid-template-columns:repeat(2,minmax(0,1fr))}
html[data-cafe-home] .shelf>*{min-width:0}
html[data-cafe-home] .duo{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px}
html[data-cafe-home] .duo__item{min-width:0}
html[data-cafe-home] .duo__item img{width:100%;max-width:162px;margin:auto}
@media(max-width:680px){html[data-cafe-home] .shelf{grid-template-columns:minmax(0,1fr)}html[data-cafe-home] .ycar__chips{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-cafe-home] .duo{padding:16px}html[data-cafe-home] .diary-banner__body{min-width:0;overflow-wrap:anywhere}}
/* A minimum game height must not force its aspect ratio wider than the grid. */
html[data-cafe-home] .jar--game{width:100%}
/* The same pair of links appears on about as well as the home page. */
html[data-cafe] .duo{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px}
html[data-cafe] .duo__item{min-width:0}
html[data-cafe] .duo__item img{width:100%;max-width:162px;margin:auto}

/* Home-only previews: images in loose pixel bubbles, with no section card. */
html[data-cafe-home] #cafe-novels{grid-column:1/-1;padding:24px 0 16px;background:none;border:0;box-shadow:none;--cafe-ink:#254b3a;--cafe-accent:#276349;--cafe-muted:#526956}
html[data-cafe-home] #cafe-novels .yume__head{justify-content:center;padding:0;margin:0;border:0;gap:10px}
html[data-cafe-home] #cafe-novels .yume__head::before{width:32px;height:32px}
html[data-cafe-home] #cafe-novels>.cafe-spark{display:none}
html[data-cafe-home] #novelGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 40px;max-width:680px;margin:28px auto 0;padding:16px 0 24px;align-items:center;justify-items:center}
html[data-cafe-home] #novelGrid .novel-bubble{position:relative;width:100%;max-width:160px;aspect-ratio:1;overflow:visible;border:0;border-radius:0;background:none;box-shadow:none;transform:none;rotate:none;animation:none;transition:none;-webkit-tap-highlight-color:transparent}
html[data-cafe-home] #novelGrid .novel-bubble:nth-child(2){max-width:128px;top:20px;--bubble-delay:-3s;--bubble-duration:8s}
html[data-cafe-home] #novelGrid .novel-bubble:nth-child(3){max-width:144px;top:-12px;--bubble-delay:-5s}
html[data-cafe-home] #novelGrid .novel-bubble:nth-child(4){max-width:128px;top:12px;--bubble-delay:-2s;--bubble-duration:9s}
html[data-cafe-home] #novelGrid .novel-bubble:nth-child(5){max-width:160px;top:24px;--bubble-delay:-6s}
html[data-cafe-home] #novelGrid .novel-bubble:nth-child(6){max-width:112px;top:-8px;--bubble-delay:-4s;--bubble-duration:8s}
.novel-bubble__body{position:absolute;inset:0;display:block;background:url('./bubble.svg') center/100% 100% no-repeat;image-rendering:pixelated;animation:cafe-bubble-bob var(--bubble-duration,7s) steps(4,end) var(--bubble-delay,0s) infinite}
html[data-cafe-home] #novelGrid img{position:absolute;inset:18.75%;width:62.5%;height:62.5%;object-fit:cover;image-rendering:auto;clip-path:polygon(20% 0,80% 0,80% 5%,95% 5%,95% 20%,100% 20%,100% 80%,95% 80%,95% 95%,80% 95%,80% 100%,20% 100%,20% 95%,5% 95%,5% 80%,0 80%,0 20%,5% 20%,5% 5%,20% 5%)}
html[data-cafe-home] #novelGrid:focus-within .novel-bubble__body,html[data-cafe-home] #novelGrid:hover .novel-bubble__body,html[data-cafe-home][data-cafe-paused="true"] .novel-bubble__body{animation-play-state:paused}
html[data-cafe-home] #novelGrid .novel-bubble:hover{outline:none;transform:none}
html[data-cafe-home] #novelGrid .novel-bubble:focus-visible{outline:2px dashed #276349;outline-offset:4px}
html[data-cafe-home] #novelGrid .novel-bubble:hover .novel-bubble__body,html[data-cafe-home] #novelGrid .novel-bubble:focus-visible .novel-bubble__body{filter:brightness(1.06)}
html[data-cafe-home] #cafe-novels .gridmore{width:fit-content;min-height:44px;margin:28px auto 0;padding:8px 4px;font-size:14px;text-decoration:underline;text-underline-offset:6px}
html[data-cafe-home] .profile__label,html[data-cafe-home] .contact__label{font-size:14px}
html[data-cafe-home] .hero .cafe-mascot{width:96px;height:144px}
@keyframes cafe-bubble-bob{0%,100%{transform:translateY(4px)}50%{transform:translateY(-4px)}}
@media(max-width:680px){html[data-cafe-home] #cafe-novels{padding:20px 0 12px}html[data-cafe-home] #novelGrid{max-width:420px;gap:16px 12px;margin-top:20px}html[data-cafe-home] #novelGrid .novel-bubble:nth-child(2){width:84%}html[data-cafe-home] #novelGrid .novel-bubble:nth-child(3){width:94%}html[data-cafe-home] #novelGrid .novel-bubble:nth-child(4){width:88%}html[data-cafe-home] #novelGrid .novel-bubble:nth-child(6){width:78%}html[data-cafe-home] .hero .cafe-mascot{width:80px;height:120px}}

/* Keep the original roomy title and its individual character animations. */
html[data-cafe-home] .hero{padding:clamp(3.4rem,11vh,6rem) 2rem clamp(1.4rem,4vh,2.6rem)}
html[data-cafe-home] .hero__title{font:400 clamp(3rem,17vw,5.2rem)/1.25 'Hibiya',serif;letter-spacing:.06em;text-indent:0;margin:0}
html[data-cafe-home] .hero__title .ch{font-family:inherit}
html[data-cafe-home][data-cafe-paused="true"] .hero__title .ch{animation-play-state:paused}

/* Sugoroku is an independent design: retain its unboxed rotating dice link. */
html[data-cafe-home] #cafe-sugoroku{grid-column:1/-1;width:100%;max-width:820px;margin:clamp(3.5rem,11vw,6rem) auto 0;padding:0;border:0;box-shadow:none;background:none;--dot:'Hibiya',serif}
html[data-cafe-home] #cafe-sugoroku .yume__head{font-family:var(--dot);font-size:1.2rem;letter-spacing:.2em;text-indent:.2em;gap:1rem;color:#fff}
html[data-cafe-home] #cafe-sugoroku .yume__head::before,html[data-cafe-home] #cafe-sugoroku .yume__head::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.38)}
html[data-cafe-home] #cafe-sugoroku .sgkf{color:#fff}
html[data-cafe-home] #cafe-sugoroku .sgkf__name{font-family:var(--dot);font-size:clamp(1.7rem,7.5vw,2.2rem);letter-spacing:.12em;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.6)}
html[data-cafe-home] #cafe-sugoroku .sgkf__desc{font-size:.72rem;color:#b7b0a8;letter-spacing:.1em}
html[data-cafe-home] #cafe-sugoroku .sgkf__play{font-family:var(--dot)}
html[data-cafe-home] #sugoroku-notice{grid-column:1/-1;display:flex;align-items:center;gap:14px;width:100%;max-width:480px;min-height:0;margin:1.4rem auto 0;padding:15px 18px;border:1px solid rgba(205,168,107,.42);border-radius:12px;background:rgba(20,16,13,.5);color:#fff;box-shadow:0 10px 26px rgba(0,0,0,.5)}
html[data-cafe-home] #sugoroku-notice::before{content:none}
html[data-cafe-home] #sugoroku-notice .diary-banner__name{font-family:'Hibiya',serif;font-size:1.12rem;letter-spacing:.08em;color:#fff}
html[data-cafe-home] #sugoroku-notice .diary-banner__desc{font-size:.64rem;letter-spacing:.08em;color:#b7b0a8}
html[data-cafe-home] #sugoroku-notice .diary-banner__arrow{font-size:.85rem;color:#cda86b}
html[data-cafe-home] #sugoroku-notice:hover{transform:translateY(-3px);border-color:#cda86b;box-shadow:0 16px 34px rgba(0,0,0,.6)}

/* Profile comes first again; provisional food artwork never adds a card. */
html[data-cafe-home] .profile{grid-column:1/-1;padding:16px 12px 8px}
html[data-cafe-home] .contact--food{grid-column:1/-1;padding:8px 0 0}
html[data-cafe] .contact--food .links{display:grid;grid-template-columns:repeat(3,minmax(0,96px));justify-content:center;gap:clamp(8px,3vw,28px);max-width:360px;margin:auto}
html[data-cafe] .contact--food .link{min-width:0;display:block}
html[data-cafe] .contact--food .link img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;image-rendering:pixelated;margin:auto}
html[data-cafe] .contact--food .link span{font-size:14px;letter-spacing:.04em;margin-top:6px}
html[data-cafe] .duo--food{grid-template-columns:minmax(0,120px) auto minmax(0,120px);justify-content:center;gap:clamp(8px,3vw,24px);width:100%;max-width:420px;margin:16px auto 24px;padding:0;background:none}
html[data-cafe] .duo--food .duo__item{display:block;min-width:0;text-align:center}
html[data-cafe] .duo--food .duo__item img{display:block;width:100%;height:120px;max-width:120px;object-fit:contain;image-rendering:pixelated;margin:auto}
html[data-cafe] .duo--food .duo__caption{display:block;font-size:14px;line-height:1.8;margin-top:6px;white-space:nowrap}
html[data-cafe] .duo--food .duo__tap{font-size:16px;letter-spacing:0}
@media(max-width:380px){html[data-cafe] .duo--food .duo__item img{height:100px}}
/* Soda pages (fizz): plain colour, square paper frames like every other card. */
html[data-cafe-fizz] body{background-image:none}
html[data-cafe-fizz] .gallery img{border-radius:0;border:2px solid var(--cafe-line);background:var(--cafe-paper);box-shadow:4px 4px 0 var(--cafe-line)}
html[data-cafe-fizz] h1::after{background:var(--cafe-page-accent);opacity:1;border-radius:0}
html[data-cafe-fizz] .back{border-bottom-color:var(--cafe-line)}
/* Text sitting directly on the soda: dark sodas (red, cola, blue) need cream ink, while paper surfaces keep --cafe-ink. */
html[data-cafe-fizz]{--cafe-page-ink:var(--cafe-ink);--cafe-page-muted:var(--cafe-muted);--cafe-page-accent:var(--cafe-accent)}
html[data-cafe-fizz][data-cafe="red"]{--cafe-page-ink:#fff3f0;--cafe-page-muted:#ffd6d4;--cafe-page-accent:#fff3f0;--cafe-line:#f0a5a8}
html[data-cafe-fizz][data-cafe="cola"]{--cafe-page-ink:#fff0d5;--cafe-page-muted:#f2d6b0;--cafe-page-accent:#fff0d5;--cafe-line:#c99c6a}
html[data-cafe-fizz][data-cafe="blue"]{--cafe-page-ink:#f2f6ff;--cafe-page-muted:#cfe0ff;--cafe-page-accent:#f2f6ff;--cafe-line:#a9c0f0}
html[data-cafe-fizz] body{color:var(--cafe-page-ink)}
html[data-cafe-fizz] :is(h1,.page__title){color:var(--cafe-page-ink)}
html[data-cafe-fizz] :is(.sitename,.note,.empty,.loading,footer){color:var(--cafe-page-muted)}
html[data-cafe-fizz] :is(.back,.link){color:var(--cafe-page-ink)}
html[data-cafe-fizz] :is(.back,.link):hover{color:var(--cafe-page-ink)}
