Mercurial
comparison mrjunejune/src/jrpg/jrpg.css @ 272:41a49c29a28f
polish JRPG conversation experience
Integrate desktop conversations into the utility panel, simplify the mobile frame, add modal destinations and a reusable Zenbu composer lab, and preserve explicit conversation resume behavior.
Co-authored-by: Copilot <[email protected]>
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Fri, 07 Aug 2026 16:05:29 -0700 |
| parents | 04fee26ecce0 |
| children | e02e2036ef84 |
comparison
equal
deleted
inserted
replaced
| 271:13d61401c57d | 272:41a49c29a28f |
|---|---|
| 39 | 39 |
| 40 .jrpg-page { | 40 .jrpg-page { |
| 41 --zenbu-sys-font-family-ui: "Pixel Mplus"; | 41 --zenbu-sys-font-family-ui: "Pixel Mplus"; |
| 42 --zenbu-sys-font-family-content: "Pixel Mplus"; | 42 --zenbu-sys-font-family-content: "Pixel Mplus"; |
| 43 --zenbu-sys-font-family-code: "Pixel Mplus"; | 43 --zenbu-sys-font-family-code: "Pixel Mplus"; |
| 44 --zenbu-sys-type-label-family: "Pixel Mplus"; | |
| 44 min-width: 20rem; | 45 min-width: 20rem; |
| 45 min-height: 100dvh; | 46 min-height: 100dvh; |
| 46 overflow: hidden; | 47 overflow: hidden; |
| 47 overflow-anchor: none; | 48 overflow-anchor: none; |
| 48 background: var(--mjj-jrpg-canvas); | 49 background: var(--mjj-jrpg-canvas); |
| 252 } | 253 } |
| 253 | 254 |
| 254 .jrpg-shell[data-minimized="true"] .jrpg-workspace > :is( | 255 .jrpg-shell[data-minimized="true"] .jrpg-workspace > :is( |
| 255 .jrpg-scene, | 256 .jrpg-scene, |
| 256 .jrpg-utility, | 257 .jrpg-utility, |
| 257 mjj-jrpg-composer, | 258 mjj-composer, |
| 258 mjj-jrpg-menu | 259 mjj-jrpg-menu |
| 259 ) { | 260 ) { |
| 260 visibility: hidden; | 261 visibility: hidden; |
| 261 } | 262 } |
| 262 | 263 |
| 263 .jrpg-workspace > .jrpg-scene, | 264 .jrpg-workspace > .jrpg-scene, |
| 264 .jrpg-workspace > .jrpg-utility, | 265 .jrpg-workspace > .jrpg-utility, |
| 265 .jrpg-workspace > mjj-jrpg-composer, | 266 .jrpg-workspace > mjj-composer, |
| 266 .jrpg-workspace > mjj-jrpg-menu { | 267 .jrpg-workspace > mjj-jrpg-menu { |
| 267 position: absolute; | 268 position: absolute; |
| 268 margin: 0; | 269 margin: 0; |
| 269 border: 0; | 270 border: 0; |
| 270 border-radius: 0; | 271 border-radius: 0; |
| 289 var(--mjj-frame-utility-inline); | 290 var(--mjj-frame-utility-inline); |
| 290 width: var(--mjj-frame-utility-width); | 291 width: var(--mjj-frame-utility-width); |
| 291 height: var(--mjj-frame-utility-height); | 292 height: var(--mjj-frame-utility-height); |
| 292 } | 293 } |
| 293 | 294 |
| 294 .jrpg-workspace > mjj-jrpg-composer { | 295 .jrpg-workspace > mjj-composer { |
| 295 inset: | 296 inset: |
| 296 var(--mjj-frame-composer-block) | 297 var(--mjj-frame-composer-block) |
| 297 auto | 298 auto |
| 298 auto | 299 auto |
| 299 var(--mjj-frame-composer-inline); | 300 var(--mjj-frame-composer-inline); |
| 311 height: var(--mjj-frame-menu-height); | 312 height: var(--mjj-frame-menu-height); |
| 312 } | 313 } |
| 313 | 314 |
| 314 .jrpg-scene, | 315 .jrpg-scene, |
| 315 .jrpg-utility, | 316 .jrpg-utility, |
| 316 mjj-jrpg-composer, | 317 mjj-composer, |
| 317 mjj-jrpg-menu, | 318 mjj-jrpg-menu, |
| 318 .jrpg-preview-panel { | 319 .jrpg-preview-panel { |
| 319 box-sizing: border-box; | 320 box-sizing: border-box; |
| 320 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--mjj-jrpg-frame); | 321 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--mjj-jrpg-frame); |
| 321 border-radius: 0; | 322 border-radius: 0; |
| 391 @keyframes mjj-jrpg-idle { | 392 @keyframes mjj-jrpg-idle { |
| 392 50% { transform: translateY(calc(var(--zenbu-sys-space-related) * -1)); } | 393 50% { transform: translateY(calc(var(--zenbu-sys-space-related) * -1)); } |
| 393 } | 394 } |
| 394 | 395 |
| 395 mjj-jrpg-chat { | 396 mjj-jrpg-chat { |
| 397 box-sizing: border-box; | |
| 396 position: relative; | 398 position: relative; |
| 397 z-index: 1; | 399 z-index: 1; |
| 398 display: grid; | 400 display: grid; |
| 399 grid-template-rows: auto minmax(0, 1fr) auto; | 401 grid-template-rows: minmax(0, 1fr) auto; |
| 400 align-self: stretch; | 402 align-self: stretch; |
| 401 min-height: 0; | 403 min-height: 0; |
| 402 padding: var(--zenbu-sys-padding-md); | 404 padding: var(--zenbu-sys-padding-md); |
| 403 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--mjj-jrpg-frame); | 405 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--mjj-jrpg-frame); |
| 404 background: var(--mjj-jrpg-panel-strong); | 406 background: var(--mjj-jrpg-panel-strong); |
| 405 box-shadow: | 407 box-shadow: |
| 406 inset 0 0 0 var(--zenbu-sys-stroke-width) | 408 inset 0 0 0 var(--zenbu-sys-stroke-width) |
| 407 var(--mjj-jrpg-info); | 409 var(--mjj-jrpg-info); |
| 408 } | 410 } |
| 409 | 411 |
| 410 .jrpg-panel-heading { | |
| 411 display: flex; | |
| 412 align-items: baseline; | |
| 413 justify-content: space-between; | |
| 414 gap: var(--zenbu-sys-space-group); | |
| 415 padding-bottom: var(--zenbu-sys-padding-sm); | |
| 416 border-bottom: var(--zenbu-sys-stroke-width) solid var(--mjj-jrpg-frame-soft); | |
| 417 } | |
| 418 | |
| 419 .jrpg-menu-label, | 412 .jrpg-menu-label, |
| 420 .jrpg-brand > p, | 413 .jrpg-brand > p, |
| 421 .jrpg-dialog-heading p { | 414 .jrpg-dialog-heading p { |
| 422 color: var(--mjj-jrpg-text-muted); | 415 color: var(--mjj-jrpg-text-muted); |
| 423 font-size: var(--zenbu-sys-font-size-xs); | 416 font-size: var(--zenbu-sys-font-size-xs); |
| 424 letter-spacing: 0.08em; | 417 letter-spacing: 0.08em; |
| 425 } | |
| 426 | |
| 427 .jrpg-panel-heading h1 { | |
| 428 margin: 0; | |
| 429 color: var(--mjj-jrpg-text); | |
| 430 font-size: var(--zenbu-sys-font-size-lg); | |
| 431 } | 418 } |
| 432 | 419 |
| 433 zen-message-scroller { | 420 zen-message-scroller { |
| 434 display: block; | 421 display: block; |
| 435 overflow: hidden; | 422 overflow: hidden; |
| 456 list-style: none; | 443 list-style: none; |
| 457 } | 444 } |
| 458 | 445 |
| 459 .jrpg-message { | 446 .jrpg-message { |
| 460 display: grid; | 447 display: grid; |
| 461 grid-template-columns: minmax(4rem, auto) 1fr; | 448 grid-template-columns: minmax(4rem, auto) minmax(0, 1fr); |
| 462 gap: var(--zenbu-sys-space-control); | 449 gap: var(--zenbu-sys-space-control); |
| 463 padding-left: var(--zenbu-sys-padding-sm); | 450 padding-left: var(--zenbu-sys-padding-sm); |
| 464 border-left: var(--zenbu-sys-stroke-width-emphasis) solid var(--mjj-jrpg-accent); | 451 border-left: var(--zenbu-sys-stroke-width-emphasis) solid var(--mjj-jrpg-accent); |
| 452 } | |
| 453 | |
| 454 .jrpg-message-speaker { | |
| 455 display: flex; | |
| 456 align-items: center; | |
| 457 gap: var(--zenbu-sys-space-icon-label); | |
| 458 align-self: start; | |
| 459 } | |
| 460 | |
| 461 .jrpg-message-avatar { | |
| 462 width: var(--zenbu-sys-control-height-sm); | |
| 463 height: var(--zenbu-sys-control-height-sm); | |
| 464 flex: none; | |
| 465 object-fit: contain; | |
| 466 image-rendering: pixelated; | |
| 465 } | 467 } |
| 466 | 468 |
| 467 .jrpg-message[hidden] { | 469 .jrpg-message[hidden] { |
| 468 display: none; | 470 display: none; |
| 469 } | 471 } |
| 509 } | 511 } |
| 510 } | 512 } |
| 511 | 513 |
| 512 .jrpg-turn-navigation { | 514 .jrpg-turn-navigation { |
| 513 display: grid; | 515 display: grid; |
| 514 grid-template-columns: auto minmax(0, 1fr) auto; | 516 grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); |
| 515 align-items: center; | 517 align-items: center; |
| 516 gap: var(--zenbu-sys-space-icon-label); | 518 gap: var(--zenbu-sys-space-icon-label); |
| 517 padding-top: var(--zenbu-sys-padding-sm); | 519 padding-top: var(--zenbu-sys-padding-sm); |
| 518 border-top: var(--zenbu-sys-stroke-width) solid var(--mjj-jrpg-frame-soft); | 520 border-top: var(--zenbu-sys-stroke-width) solid var(--mjj-jrpg-frame-soft); |
| 521 } | |
| 522 | |
| 523 .jrpg-turn-navigation zen-button:first-child button { | |
| 524 justify-content: flex-start; | |
| 525 padding-inline-start: var(--zenbu-sys-padding-md); | |
| 526 } | |
| 527 | |
| 528 .jrpg-turn-navigation zen-button:last-child button { | |
| 529 justify-content: flex-end; | |
| 530 padding-inline-end: var(--zenbu-sys-padding-md); | |
| 519 } | 531 } |
| 520 | 532 |
| 521 .jrpg-turn-navigation zen-button, | 533 .jrpg-turn-navigation zen-button, |
| 522 .jrpg-turn-navigation button { | 534 .jrpg-turn-navigation button { |
| 523 width: 100%; | 535 width: 100%; |
| 559 padding: var(--zenbu-sys-padding-md); | 571 padding: var(--zenbu-sys-padding-md); |
| 560 background: var(--mjj-jrpg-surface); | 572 background: var(--mjj-jrpg-surface); |
| 561 overflow: hidden; | 573 overflow: hidden; |
| 562 } | 574 } |
| 563 | 575 |
| 564 .jrpg-utility > mjj-jrpg-preview, | 576 .jrpg-utility > mjj-jrpg-preview { |
| 565 .jrpg-utility > mjj-conversation-archive { | |
| 566 box-sizing: border-box; | 577 box-sizing: border-box; |
| 567 grid-column: 1; | |
| 568 grid-row: 1; | |
| 569 width: 100%; | 578 width: 100%; |
| 570 height: 100%; | 579 height: 100%; |
| 571 min-height: 0; | 580 min-height: 0; |
| 572 min-width: 0; | 581 min-width: 0; |
| 573 } | 582 } |
| 621 line-height: 1; | 630 line-height: 1; |
| 622 white-space: nowrap; | 631 white-space: nowrap; |
| 623 } | 632 } |
| 624 | 633 |
| 625 .jrpg-preview-panel { | 634 .jrpg-preview-panel { |
| 626 display: grid; | 635 display: block; |
| 627 grid-template-rows: auto auto minmax(0, 1fr) auto; | |
| 628 gap: var(--zenbu-sys-space-group); | |
| 629 height: 100%; | 636 height: 100%; |
| 630 padding: var(--zenbu-sys-padding-lg); | 637 padding: var(--zenbu-sys-padding-lg); |
| 631 background: | 638 background: |
| 632 linear-gradient( | 639 linear-gradient( |
| 633 135deg, | 640 135deg, |
| 637 box-shadow: | 644 box-shadow: |
| 638 inset 0 0 0 var(--zenbu-sys-stroke-width) | 645 inset 0 0 0 var(--zenbu-sys-stroke-width) |
| 639 var(--mjj-jrpg-accent); | 646 var(--mjj-jrpg-accent); |
| 640 } | 647 } |
| 641 | 648 |
| 649 .jrpg-preview-panel > :is(.jrpg-preview-content, mjj-conversation-archive) { | |
| 650 box-sizing: border-box; | |
| 651 width: 100%; | |
| 652 height: 100%; | |
| 653 min-width: 0; | |
| 654 min-height: 0; | |
| 655 } | |
| 656 | |
| 657 .jrpg-preview-content { | |
| 658 display: grid; | |
| 659 grid-template-rows: auto auto minmax(0, 1fr) auto; | |
| 660 gap: var(--zenbu-sys-space-group); | |
| 661 } | |
| 662 | |
| 663 .jrpg-preview-content[hidden] { | |
| 664 display: none; | |
| 665 } | |
| 666 | |
| 642 .jrpg-preview-panel h2, | 667 .jrpg-preview-panel h2, |
| 643 .jrpg-preview-panel p { | 668 .jrpg-preview-panel p { |
| 644 margin: 0; | 669 margin: 0; |
| 645 } | 670 } |
| 646 | 671 |
| 647 .jrpg-preview-panel h2 { | 672 .jrpg-preview-panel h2 { |
| 648 color: var(--mjj-jrpg-primary); | 673 color: var(--mjj-jrpg-primary); |
| 649 } | 674 } |
| 650 | 675 |
| 651 .jrpg-preview-panel > p { | 676 .jrpg-preview-content > p { |
| 652 color: var(--mjj-jrpg-text); | 677 color: var(--mjj-jrpg-text); |
| 653 } | 678 } |
| 654 | 679 |
| 655 .jrpg-work-showcase { | 680 .jrpg-work-showcase { |
| 656 display: grid; | 681 display: grid; |
| 1336 .jrpg-functional-tool [data-converter-download] { | 1361 .jrpg-functional-tool [data-converter-download] { |
| 1337 color: var(--mjj-jrpg-primary); | 1362 color: var(--mjj-jrpg-primary); |
| 1338 text-decoration-color: var(--mjj-jrpg-accent); | 1363 text-decoration-color: var(--mjj-jrpg-accent); |
| 1339 } | 1364 } |
| 1340 | 1365 |
| 1341 mjj-jrpg-composer { | 1366 mjj-composer { |
| 1342 grid-area: composer; | 1367 grid-area: composer; |
| 1343 display: block; | 1368 display: block; |
| 1344 min-height: 0; | 1369 min-height: 0; |
| 1345 padding: var(--zenbu-sys-padding-md); | 1370 padding: var(--zenbu-sys-padding-md); |
| 1346 background: var(--mjj-jrpg-surface); | 1371 background: var(--mjj-jrpg-surface); |
| 1347 } | 1372 } |
| 1348 | 1373 |
| 1349 .jrpg-composer { | |
| 1350 display: grid; | |
| 1351 grid-template-columns: minmax(0, 1fr) auto; | |
| 1352 grid-template-rows: minmax(0, 1fr) auto; | |
| 1353 gap: var(--zenbu-sys-space-control); | |
| 1354 height: 100%; | |
| 1355 min-height: 0; | |
| 1356 } | |
| 1357 | |
| 1358 .jrpg-composer zen-field[appearance="plain"] { | |
| 1359 display: grid; | |
| 1360 grid-column: 1; | |
| 1361 grid-row: 1; | |
| 1362 grid-template-rows: auto minmax(0, 1fr); | |
| 1363 gap: var(--zenbu-sys-space-icon-label); | |
| 1364 min-height: 0; | |
| 1365 } | |
| 1366 | |
| 1367 .jrpg-composer label, | |
| 1368 .jrpg-composer-hint { | |
| 1369 grid-column: 1 / -1; | |
| 1370 grid-row: 2; | |
| 1371 color: var(--mjj-jrpg-text-muted); | |
| 1372 font-size: var(--zenbu-sys-font-size-xs); | |
| 1373 } | |
| 1374 | |
| 1375 .jrpg-composer zen-field label { | |
| 1376 grid-column: 1; | |
| 1377 grid-row: 1; | |
| 1378 } | |
| 1379 | |
| 1380 .jrpg-composer textarea { | |
| 1381 box-sizing: border-box; | |
| 1382 grid-column: 1; | |
| 1383 grid-row: 2; | |
| 1384 width: 100%; | |
| 1385 height: 100%; | |
| 1386 min-height: calc(var(--zenbu-control-height) * 2); | |
| 1387 resize: none; | |
| 1388 padding: | |
| 1389 var(--zenbu-control-padding-block) | |
| 1390 var(--zenbu-control-padding-inline); | |
| 1391 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--mjj-jrpg-frame); | |
| 1392 border-radius: 0; | |
| 1393 background: var(--mjj-jrpg-surface-sunken); | |
| 1394 color: var(--mjj-jrpg-text); | |
| 1395 font: inherit; | |
| 1396 } | |
| 1397 | |
| 1398 .jrpg-composer textarea::placeholder { | 1374 .jrpg-composer textarea::placeholder { |
| 1399 color: var(--mjj-jrpg-text-muted); | 1375 color: var(--mjj-jrpg-text-muted); |
| 1400 } | 1376 } |
| 1401 | 1377 |
| 1402 .jrpg-page :where(a, button, textarea):focus-visible { | 1378 .jrpg-page :where(a, button, textarea):focus-visible { |
| 1403 outline: var(--zenbu-sys-focus-width) solid var(--mjj-jrpg-focus); | 1379 outline: var(--zenbu-sys-focus-width) solid var(--mjj-jrpg-focus); |
| 1404 outline-offset: var(--zenbu-sys-focus-offset); | 1380 outline-offset: var(--zenbu-sys-focus-offset); |
| 1405 } | |
| 1406 | |
| 1407 .jrpg-composer-actions { | |
| 1408 display: flex; | |
| 1409 grid-column: 2; | |
| 1410 grid-row: 1; | |
| 1411 flex-direction: column; | |
| 1412 justify-content: flex-end; | |
| 1413 gap: var(--zenbu-sys-space-control); | |
| 1414 } | |
| 1415 | |
| 1416 .jrpg-composer zen-button { | |
| 1417 width: 100%; | |
| 1418 } | |
| 1419 | |
| 1420 .jrpg-composer zen-button[hidden] { | |
| 1421 display: none; | |
| 1422 } | |
| 1423 | |
| 1424 .jrpg-composer zen-button > button { | |
| 1425 width: 100%; | |
| 1426 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--mjj-jrpg-frame); | |
| 1427 border-radius: 0; | |
| 1428 background: var(--mjj-jrpg-primary); | |
| 1429 color: var(--mjj-jrpg-primary-foreground); | |
| 1430 cursor: pointer; | |
| 1431 } | |
| 1432 | |
| 1433 .jrpg-composer zen-button > button:hover { | |
| 1434 border-color: var(--mjj-jrpg-primary-hover); | |
| 1435 background: var(--mjj-jrpg-primary-hover); | |
| 1436 } | |
| 1437 | |
| 1438 .jrpg-composer [data-cancel-control] > button { | |
| 1439 border-color: var(--mjj-jrpg-accent); | |
| 1440 background: var(--mjj-jrpg-accent); | |
| 1441 } | |
| 1442 | |
| 1443 .jrpg-composer button:disabled { | |
| 1444 opacity: var(--zenbu-sys-opacity-disabled); | |
| 1445 cursor: not-allowed; | |
| 1446 } | |
| 1447 | |
| 1448 .jrpg-composer-hint { | |
| 1449 margin: 0; | |
| 1450 } | 1381 } |
| 1451 | 1382 |
| 1452 mjj-jrpg-menu { | 1383 mjj-jrpg-menu { |
| 1453 grid-area: menu; | 1384 grid-area: menu; |
| 1454 display: block; | 1385 display: block; |
| 1512 } | 1443 } |
| 1513 | 1444 |
| 1514 .jrpg-workspace > :is( | 1445 .jrpg-workspace > :is( |
| 1515 .jrpg-scene, | 1446 .jrpg-scene, |
| 1516 .jrpg-utility, | 1447 .jrpg-utility, |
| 1517 mjj-jrpg-composer, | 1448 mjj-composer, |
| 1518 mjj-jrpg-menu | 1449 mjj-jrpg-menu |
| 1519 ), | 1450 ), |
| 1520 .jrpg-scene > mjj-jrpg-chat, | 1451 .jrpg-scene > mjj-jrpg-chat, |
| 1521 .jrpg-utility > mjj-jrpg-preview > .jrpg-preview-panel, | 1452 .jrpg-utility > mjj-jrpg-preview > .jrpg-preview-panel { |
| 1522 .jrpg-utility > mjj-conversation-archive { | |
| 1523 border: 0; | 1453 border: 0; |
| 1524 background-color: transparent; | 1454 background-color: transparent; |
| 1525 box-shadow: none; | 1455 box-shadow: none; |
| 1526 } | 1456 } |
| 1527 | 1457 |
| 1528 .jrpg-workspace > .jrpg-scene { | 1458 .jrpg-workspace > .jrpg-scene { |
| 1529 background-image: none; | 1459 background-image: none; |
| 1530 } | 1460 } |
| 1531 | 1461 |
| 1532 .jrpg-workspace > mjj-jrpg-composer, | 1462 .jrpg-workspace > mjj-composer, |
| 1533 .jrpg-workspace > mjj-jrpg-menu { | 1463 .jrpg-workspace > mjj-jrpg-menu { |
| 1534 padding: var(--zenbu-sys-padding-sm); | 1464 padding: var(--zenbu-sys-padding-sm); |
| 1535 } | 1465 } |
| 1536 | 1466 |
| 1537 .jrpg-workspace > mjj-jrpg-composer textarea { | 1467 .jrpg-workspace > mjj-composer textarea { |
| 1538 min-height: 0; | 1468 min-height: 0; |
| 1539 } | 1469 } |
| 1540 | 1470 |
| 1541 .jrpg-scene .jrpg-panel-heading, | |
| 1542 .jrpg-scene .jrpg-message, | 1471 .jrpg-scene .jrpg-message, |
| 1543 .jrpg-scene .jrpg-turn-navigation, | 1472 .jrpg-scene .jrpg-turn-navigation, |
| 1544 .jrpg-brand, | 1473 .jrpg-brand, |
| 1545 .jrpg-work-showcase a, | 1474 .jrpg-work-showcase a, |
| 1546 .jrpg-preview-panel > .jrpg-preview-dialog > zen-button > button, | 1475 .jrpg-preview-content > .jrpg-preview-dialog > zen-button > button, |
| 1547 mjj-jrpg-composer > .jrpg-composer textarea, | |
| 1548 mjj-jrpg-composer > .jrpg-composer zen-button > button, | |
| 1549 mjj-jrpg-menu nav button { | 1476 mjj-jrpg-menu nav button { |
| 1550 border: 0; | 1477 border: 0; |
| 1551 } | 1478 } |
| 1552 | 1479 |
| 1553 @media | 1480 @media |
| 1588 background-size: cover; | 1515 background-size: cover; |
| 1589 } | 1516 } |
| 1590 | 1517 |
| 1591 .jrpg-workspace > .jrpg-scene, | 1518 .jrpg-workspace > .jrpg-scene, |
| 1592 .jrpg-workspace > .jrpg-utility, | 1519 .jrpg-workspace > .jrpg-utility, |
| 1593 .jrpg-workspace > mjj-jrpg-composer, | 1520 .jrpg-workspace > mjj-composer, |
| 1594 .jrpg-workspace > mjj-jrpg-menu, | 1521 .jrpg-workspace > mjj-jrpg-menu, |
| 1595 .jrpg-workspace > .jrpg-brand, | 1522 .jrpg-workspace > .jrpg-brand, |
| 1596 .jrpg-workspace > .jrpg-frame-controls, | 1523 .jrpg-workspace > .jrpg-frame-controls, |
| 1597 .jrpg-workspace > .jrpg-frame-telemetry { | 1524 .jrpg-workspace > .jrpg-frame-telemetry { |
| 1598 position: relative; | 1525 position: relative; |
| 1851 grid-column: 2; | 1778 grid-column: 2; |
| 1852 grid-row: 1; | 1779 grid-row: 1; |
| 1853 } | 1780 } |
| 1854 | 1781 |
| 1855 mjj-conversation-archive { | 1782 mjj-conversation-archive { |
| 1856 position: relative; | |
| 1857 z-index: 1; | |
| 1858 display: grid; | 1783 display: grid; |
| 1859 grid-template-rows: auto auto minmax(0, 1fr) auto auto; | 1784 grid-template-rows: auto auto minmax(0, 1fr) auto auto; |
| 1860 align-self: stretch; | 1785 align-self: stretch; |
| 1861 min-height: 0; | 1786 min-height: 0; |
| 1862 padding: var(--zenbu-sys-padding-md); | 1787 padding: 0; |
| 1863 overflow: hidden; | 1788 overflow: hidden; |
| 1864 background: var(--mjj-jrpg-panel-strong); | 1789 background: transparent; |
| 1865 box-shadow: inset 0 0 0 var(--zenbu-sys-stroke-width) var(--mjj-jrpg-info); | 1790 box-shadow: none; |
| 1866 } | 1791 } |
| 1867 | 1792 |
| 1868 mjj-conversation-archive[hidden] { | 1793 mjj-conversation-archive[hidden] { |
| 1869 display: none; | 1794 display: none; |
| 1870 } | |
| 1871 | |
| 1872 .jrpg-utility > mjj-conversation-archive { | |
| 1873 border: 0; | |
| 1874 box-shadow: inset 0 0 0 var(--zenbu-sys-stroke-width) var(--mjj-jrpg-info); | |
| 1875 } | 1795 } |
| 1876 | 1796 |
| 1877 .jrpg-archive-heading { | 1797 .jrpg-archive-heading { |
| 1878 display: flex; | 1798 display: flex; |
| 1879 align-items: baseline; | 1799 align-items: baseline; |
| 2212 | 2132 |
| 2213 .jrpg-mobile-menu-btn { | 2133 .jrpg-mobile-menu-btn { |
| 2214 display: none; | 2134 display: none; |
| 2215 } | 2135 } |
| 2216 | 2136 |
| 2137 .jrpg-mobile-destination-owner { | |
| 2138 display: contents; | |
| 2139 } | |
| 2140 | |
| 2141 .jrpg-page zen-button[hidden] { | |
| 2142 display: none; | |
| 2143 } | |
| 2144 | |
| 2217 /* ================================================================ | 2145 /* ================================================================ |
| 2218 Mobile portrait frame layout (≤52rem + portrait) | 2146 Mobile portrait frame layout (≤52rem + portrait) |
| 2219 Overrides the generic stacked grid from the 52rem breakpoint. | 2147 Overrides the generic stacked grid from the 52rem breakpoint. |
| 2220 All geometry custom properties are centralised in .jrpg-shell. | 2148 All geometry custom properties are centralised in .jrpg-shell. |
| 2221 ================================================================ */ | 2149 ================================================================ */ |
| 2223 @media (max-width: 52rem) and (orientation: portrait) { | 2151 @media (max-width: 52rem) and (orientation: portrait) { |
| 2224 .jrpg-shell { | 2152 .jrpg-shell { |
| 2225 /* ── Aperture geometry: (inline=left%, block=top%, width%, height%) ── */ | 2153 /* ── Aperture geometry: (inline=left%, block=top%, width%, height%) ── */ |
| 2226 | 2154 |
| 2227 /* Main conversation */ | 2155 /* Main conversation */ |
| 2228 --mjj-mobile-scene-inline: 4.5%; | 2156 --mjj-mobile-scene-inline: 4.8%; |
| 2229 --mjj-mobile-scene-block: 7.5%; | 2157 --mjj-mobile-scene-block: 7.3%; |
| 2230 --mjj-mobile-scene-width: 91%; | 2158 --mjj-mobile-scene-width: 90.4%; |
| 2231 --mjj-mobile-scene-height: 45.5%; | 2159 --mjj-mobile-scene-height: 71.2%; |
| 2232 | |
| 2233 /* Preview / utility */ | |
| 2234 --mjj-mobile-utility-inline: 4.5%; | |
| 2235 --mjj-mobile-utility-block: 54.7%; | |
| 2236 --mjj-mobile-utility-width: 91%; | |
| 2237 --mjj-mobile-utility-height: 17.1%; | |
| 2238 | 2160 |
| 2239 /* Composer */ | 2161 /* Composer */ |
| 2240 --mjj-mobile-composer-inline: 4.5%; | 2162 --mjj-mobile-composer-inline: 4.8%; |
| 2241 --mjj-mobile-composer-block: 72.8%; | 2163 --mjj-mobile-composer-block: 79.6%; |
| 2242 --mjj-mobile-composer-width: 60.3%; | 2164 --mjj-mobile-composer-width: 90.4%; |
| 2243 --mjj-mobile-composer-height: 19.2%; | 2165 --mjj-mobile-composer-height: 17.7%; |
| 2244 | |
| 2245 /* Menu */ | |
| 2246 --mjj-mobile-menu-inline: 66.5%; | |
| 2247 --mjj-mobile-menu-block: 72.8%; | |
| 2248 --mjj-mobile-menu-width: 29%; | |
| 2249 --mjj-mobile-menu-height: 19.2%; | |
| 2250 | |
| 2251 /* Brand / SYS-01 cover */ | |
| 2252 --mjj-mobile-brand-inline: 11%; | |
| 2253 --mjj-mobile-brand-block: 2.4%; | |
| 2254 --mjj-mobile-brand-width: 10%; | |
| 2255 --mjj-mobile-brand-height: 3.5%; | |
| 2256 | 2166 |
| 2257 /* Baked hamburger overlay */ | 2167 /* Baked hamburger overlay */ |
| 2258 --mjj-mobile-hamburger-inline: 89.5%; | 2168 --mjj-mobile-hamburger-inline: 87.2%; |
| 2259 --mjj-mobile-hamburger-block: 2%; | 2169 --mjj-mobile-hamburger-block: 1.3%; |
| 2260 --mjj-mobile-hamburger-width: 7%; | 2170 --mjj-mobile-hamburger-width: 9.4%; |
| 2261 --mjj-mobile-hamburger-height: 4%; | 2171 --mjj-mobile-hamburger-height: 5.3%; |
| 2262 | |
| 2263 /* Telemetry value absolute positions (x = left-center, y = top-center) */ | |
| 2264 --mjj-mobile-telemetry-temp-x: 22%; | |
| 2265 --mjj-mobile-telemetry-temp-y: 94.7%; | |
| 2266 --mjj-mobile-telemetry-user-x: 45%; | |
| 2267 --mjj-mobile-telemetry-user-y: 94.7%; | |
| 2268 --mjj-mobile-telemetry-status-x: 73%; | |
| 2269 --mjj-mobile-telemetry-status-y: 94.7%; | |
| 2270 --mjj-mobile-telemetry-uptime-x: 22%; | |
| 2271 --mjj-mobile-telemetry-uptime-y: 97.5%; | |
| 2272 | 2172 |
| 2273 height: 100dvh; | 2173 height: 100dvh; |
| 2274 min-height: 0; | 2174 min-height: 0; |
| 2275 } | 2175 } |
| 2276 | 2176 |
| 2301 /* Desktop window controls are irrelevant on mobile portrait */ | 2201 /* Desktop window controls are irrelevant on mobile portrait */ |
| 2302 .jrpg-workspace > .jrpg-frame-controls { | 2202 .jrpg-workspace > .jrpg-frame-controls { |
| 2303 display: none; | 2203 display: none; |
| 2304 } | 2204 } |
| 2305 | 2205 |
| 2306 /* Restore absolute positioning for all aperture elements */ | 2206 /* Restore absolute positioning for the two frame apertures */ |
| 2307 .jrpg-workspace > .jrpg-scene, | 2207 .jrpg-workspace > .jrpg-scene, |
| 2308 .jrpg-workspace > .jrpg-utility, | 2208 .jrpg-workspace > mjj-composer { |
| 2309 .jrpg-workspace > mjj-jrpg-composer, | |
| 2310 .jrpg-workspace > mjj-jrpg-menu, | |
| 2311 .jrpg-workspace > .jrpg-brand { | |
| 2312 position: absolute; | 2209 position: absolute; |
| 2313 width: auto; | 2210 width: auto; |
| 2314 height: auto; | 2211 height: auto; |
| 2315 } | 2212 } |
| 2316 | 2213 |
| 2329 2.8vw, | 2226 2.8vw, |
| 2330 var(--zenbu-sys-font-size-sm) | 2227 var(--zenbu-sys-font-size-sm) |
| 2331 ); | 2228 ); |
| 2332 } | 2229 } |
| 2333 | 2230 |
| 2334 /* Utility / preview aperture */ | |
| 2335 .jrpg-workspace > .jrpg-utility { | |
| 2336 inset: | |
| 2337 var(--mjj-mobile-utility-block) | |
| 2338 auto | |
| 2339 auto | |
| 2340 var(--mjj-mobile-utility-inline); | |
| 2341 width: var(--mjj-mobile-utility-width); | |
| 2342 height: var(--mjj-mobile-utility-height); | |
| 2343 min-height: 0; | |
| 2344 overflow: hidden; | |
| 2345 font-size: clamp( | |
| 2346 var(--zenbu-sys-font-size-xs), | |
| 2347 2.8vw, | |
| 2348 var(--zenbu-sys-font-size-sm) | |
| 2349 ); | |
| 2350 } | |
| 2351 | |
| 2352 /* Composer aperture */ | 2231 /* Composer aperture */ |
| 2353 .jrpg-workspace > mjj-jrpg-composer { | 2232 .jrpg-workspace > mjj-composer { |
| 2354 inset: | 2233 inset: |
| 2355 var(--mjj-mobile-composer-block) | 2234 var(--mjj-mobile-composer-block) |
| 2356 auto | 2235 auto |
| 2357 auto | 2236 auto |
| 2358 var(--mjj-mobile-composer-inline); | 2237 var(--mjj-mobile-composer-inline); |
| 2363 2.8vw, | 2242 2.8vw, |
| 2364 var(--zenbu-sys-font-size-sm) | 2243 var(--zenbu-sys-font-size-sm) |
| 2365 ); | 2244 ); |
| 2366 } | 2245 } |
| 2367 | 2246 |
| 2368 /* Menu aperture */ | 2247 .jrpg-workspace > :is(.jrpg-utility, mjj-jrpg-menu) { |
| 2369 .jrpg-workspace > mjj-jrpg-menu { | 2248 display: none; |
| 2370 inset: | 2249 } |
| 2371 var(--mjj-mobile-menu-block) | 2250 |
| 2372 auto | |
| 2373 auto | |
| 2374 var(--mjj-mobile-menu-inline); | |
| 2375 width: var(--mjj-mobile-menu-width); | |
| 2376 height: var(--mjj-mobile-menu-height); | |
| 2377 overflow: hidden; | |
| 2378 font-size: clamp( | |
| 2379 var(--zenbu-sys-font-size-xs), | |
| 2380 2.5vw, | |
| 2381 var(--zenbu-sys-font-size-sm) | |
| 2382 ); | |
| 2383 } | |
| 2384 | |
| 2385 /* Brand cover (covers baked SYS-01 label) */ | |
| 2386 .jrpg-workspace > .jrpg-brand { | 2251 .jrpg-workspace > .jrpg-brand { |
| 2387 inset: | 2252 position: absolute; |
| 2388 var(--mjj-mobile-brand-block) | 2253 z-index: 4; |
| 2389 auto | 2254 inset: 1.3% auto auto 50%; |
| 2390 auto | 2255 display: grid; |
| 2391 var(--mjj-mobile-brand-inline); | 2256 place-items: center; |
| 2392 width: var(--mjj-mobile-brand-width); | 2257 width: max-content; |
| 2393 height: var(--mjj-mobile-brand-height); | 2258 max-width: 68%; |
| 2394 background: var(--mjj-jrpg-canvas); | 2259 height: 5.3%; |
| 2395 padding: 0; | 2260 padding: 0; |
| 2261 border: 0; | |
| 2262 background: transparent; | |
| 2396 box-shadow: none; | 2263 box-shadow: none; |
| 2264 text-align: center; | |
| 2265 transform: translateX(-50%); | |
| 2266 } | |
| 2267 | |
| 2268 body.jrpg-page .jrpg-brand header { | |
| 2269 width: 100%; | |
| 2270 text-align: center; | |
| 2271 } | |
| 2272 | |
| 2273 body.jrpg-page .jrpg-brand header h1 { | |
| 2274 font-size: var(--zenbu-sys-font-size-sm); | |
| 2275 text-shadow: none; | |
| 2397 } | 2276 } |
| 2398 | 2277 |
| 2399 /* Hamburger button: transparent overlay over baked art */ | 2278 /* Hamburger button: transparent overlay over baked art */ |
| 2400 .jrpg-workspace > .jrpg-mobile-menu-btn { | 2279 .jrpg-mobile-destination-owner > .jrpg-mobile-menu-btn { |
| 2401 display: grid; | 2280 display: grid; |
| 2402 place-items: center; | 2281 place-items: center; |
| 2403 position: absolute; | 2282 position: absolute; |
| 2404 z-index: 5; | 2283 z-index: 5; |
| 2405 inset: | 2284 inset: |
| 2436 | 2315 |
| 2437 .jrpg-mobile-menu-btn > button:focus-visible zen-icon { | 2316 .jrpg-mobile-menu-btn > button:focus-visible zen-icon { |
| 2438 opacity: 0.5; | 2317 opacity: 0.5; |
| 2439 } | 2318 } |
| 2440 | 2319 |
| 2441 /* Telemetry: full-workspace container so children use workspace % coords */ | |
| 2442 .jrpg-workspace > .jrpg-frame-telemetry { | 2320 .jrpg-workspace > .jrpg-frame-telemetry { |
| 2443 position: absolute; | 2321 display: none; |
| 2444 inset: 0; | 2322 } |
| 2445 display: block; | 2323 |
| 2324 .jrpg-mobile-destination-dialog { | |
| 2325 box-sizing: border-box; | |
| 2326 width: calc(100% - var(--zenbu-sys-space-content)); | |
| 2327 max-width: 42rem; | |
| 2328 height: min(88dvh, 48rem); | |
| 2329 max-height: calc(100dvh - var(--zenbu-sys-space-content)); | |
| 2330 margin: auto; | |
| 2331 padding: var(--zenbu-sys-padding-md); | |
| 2332 border: var(--zenbu-sys-stroke-width-emphasis) solid var(--mjj-jrpg-frame); | |
| 2333 border-radius: 0; | |
| 2334 background: var(--mjj-jrpg-surface); | |
| 2335 color: var(--mjj-jrpg-text); | |
| 2336 box-shadow: | |
| 2337 inset 0 0 0 var(--zenbu-sys-stroke-width) var(--mjj-jrpg-accent), | |
| 2338 var(--zenbu-sys-space-control) var(--zenbu-sys-space-control) 0 | |
| 2339 var(--mjj-jrpg-accent); | |
| 2340 } | |
| 2341 | |
| 2342 .jrpg-mobile-destination-dialog[open] { | |
| 2343 display: grid; | |
| 2344 grid-template-rows: auto minmax(0, 1fr); | |
| 2345 gap: var(--zenbu-sys-space-group); | |
| 2346 } | |
| 2347 | |
| 2348 .jrpg-mobile-destination-dialog::backdrop { | |
| 2349 background: color-mix(in srgb, var(--mjj-jrpg-canvas) 82%, transparent); | |
| 2350 } | |
| 2351 | |
| 2352 .jrpg-mobile-destination-header { | |
| 2353 display: grid; | |
| 2354 grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); | |
| 2355 align-items: center; | |
| 2356 gap: var(--zenbu-sys-space-control); | |
| 2357 padding-bottom: var(--zenbu-sys-padding-sm); | |
| 2358 border-bottom: var(--zenbu-sys-stroke-width) solid var(--mjj-jrpg-frame-soft); | |
| 2359 } | |
| 2360 | |
| 2361 .jrpg-mobile-destination-header h2 { | |
| 2362 margin: 0; | |
| 2363 color: var(--mjj-jrpg-primary); | |
| 2364 font-size: var(--zenbu-sys-font-size-lg); | |
| 2365 text-align: center; | |
| 2366 } | |
| 2367 | |
| 2368 .jrpg-mobile-destination-header zen-button:first-child { | |
| 2369 justify-self: start; | |
| 2370 } | |
| 2371 | |
| 2372 .jrpg-mobile-destination-header zen-button:last-child { | |
| 2373 justify-self: end; | |
| 2374 } | |
| 2375 | |
| 2376 .jrpg-mobile-destination-header button { | |
| 2377 border: 0; | |
| 2378 border-radius: 0; | |
| 2379 background: transparent; | |
| 2380 color: var(--mjj-jrpg-text); | |
| 2381 cursor: pointer; | |
| 2382 } | |
| 2383 | |
| 2384 .jrpg-mobile-destination-content { | |
| 2385 min-width: 0; | |
| 2386 min-height: 0; | |
| 2387 overflow: hidden; | |
| 2388 } | |
| 2389 | |
| 2390 .jrpg-mobile-destination-content > :is(mjj-jrpg-menu, .jrpg-utility) { | |
| 2391 box-sizing: border-box; | |
| 2392 position: static; | |
| 2446 width: 100%; | 2393 width: 100%; |
| 2447 height: 100%; | 2394 height: 100%; |
| 2395 min-width: 0; | |
| 2396 min-height: 0; | |
| 2397 } | |
| 2398 | |
| 2399 .jrpg-mobile-destination-content > [hidden], | |
| 2400 [data-mobile-destination-back-owner][hidden] { | |
| 2401 display: none; | |
| 2402 } | |
| 2403 | |
| 2404 .jrpg-mobile-destination-content > mjj-jrpg-menu { | |
| 2405 display: block; | |
| 2406 padding: var(--zenbu-sys-padding-md); | |
| 2407 overflow-y: auto; | |
| 2408 } | |
| 2409 | |
| 2410 .jrpg-mobile-destination-content > .jrpg-utility { | |
| 2411 display: grid; | |
| 2412 padding: 0; | |
| 2413 border: 0; | |
| 2414 overflow: hidden; | |
| 2448 background: transparent; | 2415 background: transparent; |
| 2449 pointer-events: none; | 2416 box-shadow: none; |
| 2450 font-size: clamp( | 2417 } |
| 2451 var(--zenbu-sys-font-size-xs), | 2418 |
| 2452 2.5vw, | 2419 .jrpg-mobile-destination-content .jrpg-archive-heading { |
| 2453 var(--zenbu-sys-font-size-sm) | 2420 display: none; |
| 2454 ); | |
| 2455 } | |
| 2456 | |
| 2457 .jrpg-frame-telemetry > :nth-child(1) { | |
| 2458 position: absolute; | |
| 2459 left: var(--mjj-mobile-telemetry-temp-x); | |
| 2460 top: var(--mjj-mobile-telemetry-temp-y); | |
| 2461 transform: translate(-50%, -50%); | |
| 2462 background: transparent; | |
| 2463 padding-inline: 0; | |
| 2464 pointer-events: auto; | |
| 2465 white-space: nowrap; | |
| 2466 } | |
| 2467 | |
| 2468 .jrpg-frame-telemetry > :nth-child(2) { | |
| 2469 position: absolute; | |
| 2470 left: var(--mjj-mobile-telemetry-user-x); | |
| 2471 top: var(--mjj-mobile-telemetry-user-y); | |
| 2472 transform: translate(-50%, -50%); | |
| 2473 background: transparent; | |
| 2474 padding-inline: 0; | |
| 2475 pointer-events: auto; | |
| 2476 white-space: nowrap; | |
| 2477 } | |
| 2478 | |
| 2479 .jrpg-frame-telemetry > :nth-child(3) { | |
| 2480 position: absolute; | |
| 2481 left: var(--mjj-mobile-telemetry-status-x); | |
| 2482 top: var(--mjj-mobile-telemetry-status-y); | |
| 2483 transform: translate(-50%, -50%); | |
| 2484 background: transparent; | |
| 2485 padding-inline: 0; | |
| 2486 pointer-events: auto; | |
| 2487 white-space: nowrap; | |
| 2488 } | |
| 2489 | |
| 2490 .jrpg-frame-telemetry > :nth-child(4) { | |
| 2491 position: absolute; | |
| 2492 left: var(--mjj-mobile-telemetry-uptime-x); | |
| 2493 top: var(--mjj-mobile-telemetry-uptime-y); | |
| 2494 transform: translate(-50%, -50%); | |
| 2495 background: transparent; | |
| 2496 padding-inline: 0; | |
| 2497 pointer-events: auto; | |
| 2498 white-space: nowrap; | |
| 2499 } | |
| 2500 | |
| 2501 /* Compact the brand header text for the narrow cover area */ | |
| 2502 .jrpg-workspace > .jrpg-brand header h1 { | |
| 2503 font-size: clamp( | |
| 2504 var(--zenbu-sys-font-size-xs), | |
| 2505 2vw, | |
| 2506 var(--zenbu-sys-font-size-xs) | |
| 2507 ); | |
| 2508 } | 2421 } |
| 2509 | 2422 |
| 2510 /* Compact scene internals for mobile aperture */ | 2423 /* Compact scene internals for mobile aperture */ |
| 2511 .jrpg-scene { | 2424 .jrpg-scene { |
| 2512 grid-template-columns: minmax(0, 1fr); | 2425 grid-template-columns: minmax(0, 1fr); |
| 2515 gap: var(--zenbu-sys-space-icon-label); | 2428 gap: var(--zenbu-sys-space-icon-label); |
| 2516 padding: var(--zenbu-sys-padding-sm); | 2429 padding: var(--zenbu-sys-padding-sm); |
| 2517 } | 2430 } |
| 2518 | 2431 |
| 2519 .jrpg-scene > mjj-jrpg-character { | 2432 .jrpg-scene > mjj-jrpg-character { |
| 2433 display: none; | |
| 2434 } | |
| 2435 | |
| 2436 .jrpg-scene::before { | |
| 2520 display: none; | 2437 display: none; |
| 2521 } | 2438 } |
| 2522 | 2439 |
| 2523 mjj-jrpg-chat { | 2440 mjj-jrpg-chat { |
| 2524 grid-column: 1; | 2441 grid-column: 1; |
| 2528 max-height: 100%; | 2445 max-height: 100%; |
| 2529 overflow: hidden; | 2446 overflow: hidden; |
| 2530 padding: var(--zenbu-sys-padding-sm); | 2447 padding: var(--zenbu-sys-padding-sm); |
| 2531 } | 2448 } |
| 2532 | 2449 |
| 2533 .jrpg-utility > mjj-conversation-archive { | 2450 .jrpg-preview-panel > mjj-conversation-archive { |
| 2534 width: 100%; | 2451 width: 100%; |
| 2535 height: 100%; | 2452 height: 100%; |
| 2536 max-height: 100%; | 2453 max-height: 100%; |
| 2537 overflow: auto; | 2454 overflow: auto; |
| 2538 } | 2455 } |
| 2539 | 2456 |
| 2540 /* Utility compact padding */ | |
| 2541 .jrpg-utility { | |
| 2542 padding: var(--zenbu-sys-padding-sm); | |
| 2543 } | |
| 2544 | |
| 2545 /* Composer: compact single-row within aperture */ | 2457 /* Composer: compact single-row within aperture */ |
| 2546 .jrpg-composer { | 2458 .jrpg-workspace > mjj-composer { |
| 2547 gap: var(--zenbu-sys-space-icon-label); | 2459 padding: var(--zenbu-sys-space-icon-label); |
| 2548 padding: var(--zenbu-sys-padding-sm); | |
| 2549 } | 2460 } |
| 2550 | 2461 |
| 2551 .jrpg-composer-hint { | 2462 .jrpg-composer-hint { |
| 2552 display: none; | 2463 display: none; |
| 2553 } | |
| 2554 | |
| 2555 /* Menu compact: single column stacking */ | |
| 2556 .jrpg-workspace > mjj-jrpg-menu { | |
| 2557 padding: var(--zenbu-sys-padding-xs, var(--zenbu-sys-padding-sm)); | |
| 2558 overflow-y: auto; | |
| 2559 scrollbar-width: thin; | |
| 2560 } | 2464 } |
| 2561 | 2465 |
| 2562 mjj-jrpg-menu nav { | 2466 mjj-jrpg-menu nav { |
| 2563 height: 100%; | 2467 height: 100%; |
| 2564 grid-template-columns: 1fr; | 2468 grid-template-columns: 1fr; |
| 2578 padding-block: 0; | 2482 padding-block: 0; |
| 2579 padding-inline: var(--zenbu-control-padding-inline); | 2483 padding-inline: var(--zenbu-control-padding-inline); |
| 2580 font-size: var(--zenbu-sys-font-size-xs); | 2484 font-size: var(--zenbu-sys-font-size-xs); |
| 2581 } | 2485 } |
| 2582 | 2486 |
| 2583 mjj-jrpg-menu[data-mobile-menu-collapsed] { | |
| 2584 overflow: hidden; | |
| 2585 } | |
| 2586 | |
| 2587 mjj-jrpg-menu[data-mobile-menu-collapsed] nav { | |
| 2588 display: grid; | |
| 2589 place-items: center; | |
| 2590 } | |
| 2591 | |
| 2592 mjj-jrpg-menu[data-mobile-menu-collapsed] .jrpg-menu-label { | |
| 2593 display: block; | |
| 2594 writing-mode: initial; | |
| 2595 } | |
| 2596 | |
| 2597 mjj-jrpg-menu[data-mobile-menu-collapsed] ul { | |
| 2598 display: none; | |
| 2599 } | |
| 2600 | |
| 2601 /* Preview panel compact for narrow utility aperture */ | 2487 /* Preview panel compact for narrow utility aperture */ |
| 2602 .jrpg-preview-panel { | 2488 .jrpg-preview-panel { |
| 2603 gap: var(--zenbu-sys-space-icon-label); | |
| 2604 padding: var(--zenbu-sys-padding-sm); | 2489 padding: var(--zenbu-sys-padding-sm); |
| 2605 overflow-y: auto; | 2490 overflow-y: auto; |
| 2606 } | 2491 } |
| 2607 | 2492 |
| 2493 .jrpg-preview-content { | |
| 2494 gap: var(--zenbu-sys-space-icon-label); | |
| 2495 } | |
| 2496 | |
| 2608 .jrpg-preview-panel h2 { | 2497 .jrpg-preview-panel h2 { |
| 2609 font-size: var(--zenbu-sys-font-size-sm); | 2498 font-size: var(--zenbu-sys-font-size-sm); |
| 2610 } | 2499 } |
| 2611 | 2500 |
| 2612 .jrpg-preview-panel > p { | 2501 .jrpg-preview-content > p { |
| 2613 font-size: var(--zenbu-sys-font-size-xs); | 2502 font-size: var(--zenbu-sys-font-size-xs); |
| 2614 display: -webkit-box; | 2503 display: -webkit-box; |
| 2615 -webkit-line-clamp: 2; | 2504 -webkit-line-clamp: 2; |
| 2616 -webkit-box-orient: vertical; | 2505 -webkit-box-orient: vertical; |
| 2617 overflow: hidden; | 2506 overflow: hidden; |