html{background:url(/bg-gemini.png) center/cover fixed}:root{--ink: #000;--paper: #fff;--muted: #888;--border: #ccc;--surface: #e8e8e4;--accent: #5bc8f5;--btn-h: 28px;--radius: 3px;--font-sz: 14px}#standalone-banner{background:#fffbcc;border:1px solid #e6d800;padding:6px 8px;font-size:12px;max-width:480px;margin:0 auto;flex-shrink:0}#install-btn{display:block;width:100%;background:var(--ink);color:var(--paper);border:none;padding:6px 8px;font-size:12px;cursor:pointer;text-align:center;flex-shrink:0}#slots{display:flex;gap:4px;padding:6px 8px;flex-shrink:0}.slot-btn{width:32px;height:32px;padding:0;border:1px solid var(--border);background:var(--paper);font-size:var(--font-sz)}.slot-btn.slot-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}*,*:before,*:after{box-sizing:border-box}body{font-family:sans-serif;font-size:var(--font-sz);line-height:1.4;padding:0;max-width:480px;margin:0 auto;background-color:var(--paper);color:var(--ink);display:flex;flex-direction:column;height:100dvh;overflow:hidden}#app{flex:1;overflow-y:auto;padding:8px}a{color:var(--ink);text-decoration:none}a:visited{color:#555}*{caret-color:transparent}input,textarea{caret-color:auto}input{border:1px solid var(--border);border-radius:var(--radius);padding:2px 6px;min-height:var(--btn-h);font-size:var(--font-sz)}button{cursor:pointer;touch-action:manipulation}.d20-roll,.dice-roll,.stored-roll,.luck-counter,.spell-fail{display:inline-flex}.d20-roll{align-items:stretch;margin-bottom:2px}.d20-roll .ability{display:none}.d20-roll button,.dice-roll button,.stored-roll button,.roll-log-toggle{min-height:var(--btn-h);padding:2px 4px;background:var(--ink);color:var(--paper);border:1px solid var(--ink)}.d20-roll button.roll{border-right:none;border-radius:var(--radius) 0 0 var(--radius);min-width:var(--btn-h)}.d20-roll button.mode{width:var(--btn-h);font-size:.8em;color:var(--muted);background:var(--surface);border-radius:0 var(--radius) var(--radius) 0;text-align:center;padding:0}.d20-roll button.mode.adv{color:var(--paper);font-weight:700;background:#a070d4}.d20-roll button.mode.dis{color:var(--paper);font-weight:700;background:#c04040}.mode-wrap{position:relative;display:flex}.mode-dropdown{position:absolute;top:100%;right:0;z-index:200;display:flex;flex-direction:column;box-shadow:0 4px 16px #0009;border-radius:0 0 var(--radius) var(--radius);overflow:hidden}.d20-roll button.mode.expanded{box-shadow:0 6px 20px 4px #000c}.mode-dropdown .mode{border-radius:0;border-top:none;width:var(--btn-h)}.dice-roll button{border-radius:var(--radius)}.stored-roll{align-items:center;gap:3px;flex-wrap:wrap}.stored-roll.open{background:var(--surface);border-radius:4px;padding:3px}.stored-roll button{border-radius:var(--radius)}.stored-roll .roll-btn{min-width:var(--btn-h);text-align:center}.stored-roll .picker{display:none;gap:3px;align-items:center;flex-wrap:wrap}.stored-roll .picker.open{display:inline-flex}.stored-roll .picker button{font-size:.8em;padding:2px 5px}.stored-roll .picker input{width:60px;min-height:var(--btn-h);padding:2px 4px;font-size:.8em;border:1px solid var(--border);border-radius:var(--radius)}.stored-roll button.roll-btn.attached{border-radius:0 var(--radius) var(--radius) 0;margin-left:-3px}.stored-roll .clear{font-size:.75em;background:var(--surface);color:var(--muted);border-radius:var(--radius)}.stored-roll .clear.empty{background:var(--ink);color:var(--paper);border-color:var(--ink);min-width:var(--btn-h)}.stored-roll.d20-mode{align-items:stretch;gap:0}.stored-roll.d20-mode .d20-roll{margin-bottom:0}.stored-roll.d20-mode .clear{border-right:none;border-radius:var(--radius) 0 0 var(--radius)}.stored-roll.d20-mode .d20-roll button.roll{border-left:none;border-radius:0}.stored-roll .clear-picker{font-size:.8em;padding:2px 5px}.luck-counter button{width:var(--btn-h);height:var(--btn-h);padding:0;background:var(--ink);color:var(--paper);border:1px solid var(--ink);font-size:.8em;line-height:1;border-radius:var(--radius)}.spell-fail button{min-width:20px;min-height:20px;padding:0 4px;background:transparent;border:1px solid var(--border);color:#c00;font-weight:700;font-size:.85em;line-height:1}.spell-fail button:not(.failed){color:transparent}.custom-roll{display:flex;align-items:center;margin-bottom:12px;padding-top:6px}.custom-roll input{border-radius:var(--radius);width:70px}.custom-roll button{background:var(--ink);color:var(--paper);border:1px solid var(--ink);margin-left:4px;padding:2px 8px;min-height:var(--btn-h);border-radius:var(--radius)}.custom-roll-info,.macro-show-btn{color:var(--muted);font-size:var(--font-sz)}.custom-roll-info:hover,.macro-show-btn:hover{color:#333}.custom-roll-info{margin-left:auto;text-decoration:none}.macro-show-btn{background:none;border:none;cursor:pointer;padding:0 0 0 8px}.stats{container-type:inline-size;display:flex;flex-wrap:wrap;gap:18px}.stat-cell{text-align:left;flex:0 0 auto}.stat-break{flex:1}@container (max-width: 350px){.stat-break{flex-basis:100%;flex-grow:0;height:0}}@media (max-width: 420px){.stats{gap:6px}.d20-roll button,.dice-roll button,.stored-roll button{min-height:24px;padding:1px 3px}.d20-roll button.mode{width:22px}}.char-info-row p{margin:0}.char-info-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.sync-group{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}#sync-btn{font-size:1rem;width:var(--btn-h);height:var(--btn-h);padding:0;line-height:1;border-radius:50%;border:none;background:var(--ink);color:var(--paper)}#view-sdl-btn,#edit-sdl-btn{font-size:11px;color:var(--muted);text-decoration:none}#view-sdl-btn:hover,#edit-sdl-btn:hover{color:var(--ink)}#sync-btn:hover{background:var(--accent)}#last-updated{font-size:10px;color:var(--muted);text-align:center;white-space:nowrap}#details-btn{width:var(--btn-h);height:var(--btn-h);padding:0;background:var(--surface);color:var(--muted);border:1px solid var(--ink);font-size:.8em;line-height:1;border-radius:var(--radius);display:flex;align-items:center;justify-content:center}.char-details ul{margin:0 0 6px;padding-left:18px}.details-label{margin:4px 0 2px;font-weight:700}#clear-slot-btn{background:transparent;border:none;color:var(--paper);padding:0 2px;vertical-align:middle}#clear-slot-btn:hover{background:#f88}#clear-slot-btn:hover svg{fill:#fff}@font-face{font-family:OldNewspaperTypes;src:url(/fonts/OldNewspaperTypes.ttf) format("truetype");font-display:swap}h2,h3{background:transparent;color:var(--paper);padding:2px 6px;margin:0;position:relative;z-index:0;font-family:OldNewspaperTypes,serif;font-weight:400}h2:before,h3:before{content:"";position:absolute;inset:0;background:var(--ink);z-index:-1}h2{display:flex;align-items:center;justify-content:space-between}.attacks,.spells,#roll-log ul,.roll-log-scroll ul{list-style:none;padding-left:0}.roll-log-title{flex-shrink:0}.roll-log-scroll{flex:1;overflow-y:auto;padding:0 8px}body.log-page #app{overflow:hidden;display:flex;flex-direction:column;padding:0}#roll-log ul,.roll-log-scroll ul{margin-bottom:2px;font-size:var(--roll-font-sz, var(--font-sz))}#roll-log li p,.roll-log-scroll li p{margin:0}.roll-log-toggle{border-radius:var(--radius);line-height:0}h3~ul{padding-left:18px}#gm-panel ul{list-style:none;padding-left:0}.slot-num{display:inline-block;border:1px solid currentColor;width:16px;height:16px;line-height:16px;text-align:center;font-size:.75em;vertical-align:middle}.spell-from-item-btn{background:none;border:none;padding:0;cursor:pointer;font-size:.9em;color:#888}.spell-item-content{flex-basis:100%;font-size:.95em;padding-left:4px}.spell-item-content p{margin:2px 0 0;white-space:pre-line;color:#444}.spell-details-header{color:#666}.spell-tier{margin:6px 0 2px;font-weight:700;font-size:.85em}.spell-tier small{font-weight:400;color:#666}.spells li{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.spells li .stored-roll{margin-left:auto}.attacks li{display:flex;align-items:center;gap:6px}.attacks li .stored-roll{margin-left:auto}.attacks li .dmg{margin-left:auto;display:flex;align-items:center;gap:4px}.macros li{margin-bottom:4px;display:flow-root}.macros li .stored-roll{float:right}.macro-desc{caret-color:auto;border:1px solid transparent;border-radius:var(--radius);padding:2px 4px;background:transparent}.macro-desc:focus{border-color:var(--border);outline:none}.macro-list h3{display:flex;align-items:center;justify-content:space-between}.macro-add-btn{background:transparent;border:none;color:var(--paper);padding:0 2px;vertical-align:middle}.macro-add-btn:hover{background:var(--accent)}@keyframes bottom-bar-flash{0%{background:var(--ink);color:var(--paper)}to{background:var(--surface);color:var(--ink)}}#bottom-bar.flash{animation:bottom-bar-flash 3s ease-out forwards}#bottom-bar{min-height:28px;background:var(--surface);color:var(--ink);flex-shrink:0;padding:4px 14px;padding-bottom:max(4px,env(safe-area-inset-bottom));font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px}.bb-prefix{flex-shrink:0;white-space:nowrap}.bb-detail{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:4px}.bb-verdict{flex-shrink:0;white-space:nowrap;padding-left:6px}#dice3d-toggle{background:none;border:none;cursor:pointer;font-size:18px;opacity:.35;padding:0;line-height:1;flex-shrink:0}#dice3d-toggle.active{opacity:1}#dice-box-overlay{visibility:hidden;position:fixed;inset:0;z-index:9999;pointer-events:none;display:flex;justify-content:center;align-items:flex-start}#dice-box-container{position:relative;flex-shrink:0}#dice-box-container canvas{width:100%;height:100%}.macro-del-btn{background:transparent;border:none;color:#c00;padding:0 4px;min-height:var(--btn-h);display:inline-flex;align-items:center;flex-shrink:0}
