*,*:before,*:after{box-sizing:border-box}*{margin:0}html{interpolate-size:allow-keywords}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p{overflow-wrap:break-word;text-wrap:pretty}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;text-wrap:balance}#root,#app{isolation:isolate}:root{--font-body: Seravek, "Gill Sans Nova", Ubuntu, Calibri, "DejaVu Sans", source-sans-pro, system-ui, sans-serif;--font-display: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", "Hoefler Text", Georgia, serif;--parchment: #f6edd9;--parchment-deep: #efe2c5;--card: #fcf7ea;--ink: #2c2620;--ink-soft: #5f5544;--ink-faint: #8d8169;--gold: #b28c3e;--gold-soft: #dcc893;--rule: #dccdab;--wine: #8a3a2c;--radius: 4px;--gap: .75rem;--space: clamp(1rem, 3vw, 1.75rem);font-family:var(--font-body);color:var(--ink);color-scheme:light dark;accent-color:var(--gold)}@media(prefers-color-scheme:dark){:root{--parchment: #17140f;--parchment-deep: #1f1b14;--card: #221d16;--ink: #ece0c6;--ink-soft: #b8ab90;--ink-faint: #8b8069;--gold: #c9a45d;--gold-soft: #6d5a31;--rule: #3a3226;--wine: #c2705d}}body{min-height:100dvh;background-color:var(--parchment);background-image:radial-gradient(120% 90% at 50% -10%,rgb(255 255 255 / 45%),transparent 60%),radial-gradient(90% 70% at 8% 100%,rgb(139 116 63 / 10%),transparent 65%),radial-gradient(80% 60% at 100% 30%,rgb(139 116 63 / 8%),transparent 60%);background-attachment:fixed;color:var(--ink);letter-spacing:.01em;-webkit-tap-highlight-color:transparent}button,input,select,textarea{touch-action:manipulation}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.page{max-width:60ch;margin-inline:auto;padding:3rem var(--space)}.page h1{font-family:var(--font-display);font-variant-caps:all-small-caps;letter-spacing:.06em}.masthead{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:var(--gap);align-items:baseline;justify-content:space-between;padding:.6rem var(--space);border-bottom:1px solid var(--rule);background-color:color-mix(in srgb,var(--parchment) 88%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.masthead__mark{font-family:var(--font-display);font-size:1.05rem;font-variant-caps:all-small-caps;font-weight:700;letter-spacing:.14em;color:var(--ink-soft)}.masthead__nav{display:flex;gap:.35rem}.tab{padding:.3rem .85rem;border:1px solid transparent;border-radius:999px;font-family:var(--font-display);font-size:.95rem;font-variant-caps:all-small-caps;font-weight:700;letter-spacing:.1em;color:var(--ink-faint);text-decoration:none}.tab:hover{color:var(--ink)}.tab.active{border-color:var(--gold-soft);background-color:color-mix(in srgb,var(--gold) 12%,transparent);color:var(--ink)}.sheet{display:flex;flex-direction:column;gap:clamp(1.25rem,3vw,2rem);max-width:64rem;margin-inline:auto;padding:var(--space) var(--space) 4rem}.identity{display:flex;flex-direction:column;gap:.5rem;padding-bottom:.85rem;border-bottom:2px solid var(--gold-soft)}.identity__name{width:100%;padding:0;border:none;background:none;font-family:var(--font-display);font-size:clamp(1.75rem,6vw,2.5rem);font-variant-caps:all-small-caps;font-weight:700;letter-spacing:.04em;line-height:1.1;color:var(--ink)}.identity__name::placeholder{color:var(--ink-faint);opacity:.7}.identity__name:focus-visible{outline:none;box-shadow:0 2px 0 var(--gold)}.identity__meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.identity__meta .field{flex:1 1 7rem;min-width:0}.band__title,.panel__title{font-family:var(--font-display);font-size:.95rem;font-variant-caps:all-small-caps;font-weight:700;letter-spacing:.16em;color:var(--ink-soft)}.band{display:flex;flex-direction:column;gap:.7rem}.band__title{display:flex;gap:.75rem;align-items:center}.band__title:after{content:"";flex:1;height:1px;background:linear-gradient(to right,var(--gold-soft),transparent)}.band__note{font-size:.82rem;color:var(--ink-faint)}.vitals{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(6.5rem,1fr))}.vitals--casting{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr))}.tile{display:flex;flex-direction:column;gap:.15rem;align-items:center;padding:.7rem .5rem;border:1px solid var(--rule);border-radius:var(--radius);background-color:var(--card);box-shadow:0 1px #2c26200a;text-align:center}.tile--gold{border-color:var(--gold-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 14%,transparent)}.tile__label{font-family:var(--font-display);font-size:.78rem;font-variant-caps:all-small-caps;font-weight:700;letter-spacing:.12em;line-height:1.2;color:var(--ink-faint)}.tile__value{font-size:clamp(1.6rem,5vw,2.1rem);font-variant-numeric:tabular-nums;font-weight:600;line-height:1.1}.tile--gold .tile__value{color:color-mix(in srgb,var(--ink) 80%,var(--gold))}.tile--wine .tile__value,.tile--wine .number-input{color:var(--wine)}.tile__hint{font-size:.72rem;color:var(--ink-faint)}.tile__value--field{display:flex;justify-content:center}.hp{display:flex;gap:.3rem;align-items:center;justify-content:center}.hp__pair{display:flex;gap:.1rem;align-items:baseline;font-size:clamp(1.4rem,4.5vw,1.9rem);font-variant-numeric:tabular-nums;font-weight:600}.hp__slash{color:var(--ink-faint)}.temp-hp{display:inline-flex;gap:.3rem;align-items:center;font-size:.72rem;color:var(--ink-faint)}.hp__nudge,.ability__nudge,.stepper__button{display:grid;place-items:center;min-width:2rem;min-height:2rem;padding:0;border:1px solid var(--rule);border-radius:999px;background-color:transparent;font-size:1rem;line-height:1;color:var(--ink-soft);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .1s ease}.hp__nudge:hover,.ability__nudge:hover,.stepper__button:hover{border-color:var(--gold);background-color:color-mix(in srgb,var(--gold) 10%,transparent)}.hp__nudge:active,.ability__nudge:active,.stepper__button:active{transform:scale(.94)}.abilities{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(5.5rem,1fr));padding:0;list-style:none}.ability{display:flex;flex-direction:column;gap:.3rem;align-items:center;padding:.6rem .4rem .5rem;border:1px solid var(--rule);border-radius:var(--radius);background-color:var(--card)}.ability__abbr{font-family:var(--font-display);font-size:.8rem;font-variant-caps:all-small-caps;font-weight:700;letter-spacing:.14em;color:var(--ink-faint)}.ability__mod{font-size:clamp(1.7rem,5.5vw,2.2rem);font-variant-numeric:tabular-nums;font-weight:600;line-height:1}.ability__score{display:flex;gap:.15rem;align-items:center}.ability__score .number-input{width:2.4rem}.saves{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(5.5rem,1fr));padding:0;list-style:none}.save{display:flex;gap:.4rem;align-items:center;justify-content:center;width:100%;min-height:2.6rem;padding:.35rem .5rem;border:1px solid var(--rule);border-radius:999px;background-color:var(--card);cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.save:hover{border-color:var(--gold)}.save--proficient{border-color:var(--gold);background-color:color-mix(in srgb,var(--gold) 12%,var(--card))}.save__dot{width:.5rem;height:.5rem;border:1px solid var(--gold);border-radius:999px;background-color:transparent;transition:background-color .2s ease}.save--proficient .save__dot{background-color:var(--gold)}.save__abbr{font-family:var(--font-display);font-size:.85rem;font-variant-caps:all-small-caps;font-weight:700;letter-spacing:.1em;color:var(--ink-faint)}.save__value{font-size:1.05rem;font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}.panels{display:flex;flex-direction:column;gap:.6rem}.panel{border:1px solid var(--rule);border-radius:var(--radius);background-color:color-mix(in srgb,var(--card) 60%,transparent)}.panel--open{border-color:var(--gold-soft);background-color:var(--card)}.panel__heading{margin:0;font-size:inherit;font-weight:inherit}.panel__toggle{display:flex;gap:.6rem;align-items:center;width:100%;min-height:3rem;padding:.6rem .9rem;border:none;background:none;text-align:left;cursor:pointer}.panel__chevron{width:.5rem;height:.5rem;border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(-45deg);transition:transform .2s ease}.panel--open .panel__chevron{transform:rotate(45deg)}.panel__meta{margin-left:auto;font-size:.82rem;font-variant-numeric:tabular-nums;color:var(--ink-faint)}.panel__body{display:flex;flex-direction:column;gap:.85rem;padding:0 .9rem 1rem}.stack{display:flex;flex-direction:column;gap:.75rem;padding:0;list-style:none}.stack--tight{gap:.5rem}.card{display:flex;flex-direction:column;gap:.5rem;padding:.7rem .75rem;border:1px solid var(--rule);border-radius:var(--radius);background-color:color-mix(in srgb,var(--parchment-deep) 45%,var(--card))}.card__row{display:flex;gap:.6rem;align-items:center}.card__row--controls{flex-wrap:wrap;align-items:flex-end}.card__figure{display:flex;flex-direction:column;align-items:center;margin-left:auto;font-size:1.5rem;font-variant-numeric:tabular-nums;font-weight:600;line-height:1}.card__figure-label,.mini__label{font-family:var(--font-display);font-size:.7rem;font-variant-caps:all-small-caps;font-weight:700;letter-spacing:.12em;color:var(--ink-faint)}.card__note{font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--ink-soft)}.mini{display:flex;flex-direction:column;gap:.2rem}.mini--check{flex-direction:row;gap:.4rem;align-items:center;font-size:.85rem;color:var(--ink-soft);cursor:pointer}.mini--check input{width:1.1rem;height:1.1rem}.field,.number-input{padding:.4rem .5rem;border:1px solid var(--rule);border-radius:var(--radius);background-color:color-mix(in srgb,var(--parchment) 40%,var(--card));font-family:inherit;font-size:.95rem;color:var(--ink)}.field:focus-visible,.number-input:focus-visible,.panel__toggle:focus-visible,.save:focus-visible,.pip:focus-visible,.button:focus-visible,.tab:focus-visible,.stepper__button:focus-visible,.ability__nudge:focus-visible,.hp__nudge:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.field--title{flex:1 1 8rem;min-width:0;font-family:var(--font-display);font-size:1.1rem;font-variant-caps:all-small-caps;font-weight:700;letter-spacing:.06em}.field--label{flex:1 1 8rem;min-width:0}.field--area{width:100%;resize:vertical;line-height:1.5}.field--select{padding-right:.3rem}.number-input{width:3rem;font-variant-numeric:tabular-nums;text-align:center}.number-input--hp{width:3.2rem;padding:.15rem .2rem;border-color:transparent;background:none;font-size:inherit;font-weight:inherit;color:inherit}.number-input--tile{width:4rem;border-color:transparent;background:none;font-size:inherit;font-weight:inherit}.button{align-self:flex-start;min-height:2.4rem;padding:.4rem .9rem;border:1px solid var(--gold-soft);border-radius:999px;background-color:color-mix(in srgb,var(--gold) 8%,transparent);font-family:var(--font-display);font-size:.9rem;font-variant-caps:all-small-caps;font-weight:700;letter-spacing:.1em;color:var(--ink);cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.button:hover{border-color:var(--gold);background-color:color-mix(in srgb,var(--gold) 16%,transparent)}.button--quiet{border-color:transparent;background:none;color:var(--ink-faint)}.button--quiet:hover{border-color:var(--rule);background:none;color:var(--ink)}.empty{font-size:.88rem;font-style:italic;color:var(--ink-faint)}.formula{font-size:.82rem;font-variant-numeric:tabular-nums;color:var(--ink-soft)}.grid{display:grid;gap:.75rem}.grid--armor{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));align-items:end}.stepper{display:inline-flex;gap:.25rem;align-items:center}.stepper__value{display:inline-flex;gap:.25rem;align-items:baseline;min-width:2.5rem;font-variant-numeric:tabular-nums;font-weight:600;text-align:center;justify-content:center}.stepper--sm .stepper__value{min-width:2.2rem;font-size:.95rem}.stepper--sm .stepper__button{min-width:1.9rem;min-height:1.9rem}.stepper__suffix{font-family:var(--font-display);font-size:.7rem;font-variant-caps:all-small-caps;font-weight:700;letter-spacing:.1em;color:var(--ink-faint)}.pips{display:inline-flex;flex-wrap:wrap;gap:.4rem}.pip{position:relative;width:1.5rem;height:1.5rem;padding:0;border:1.5px solid var(--gold);border-radius:999px;background-color:transparent;cursor:pointer;transition:background-color .22s ease,transform .16s ease,box-shadow .22s ease}.pip:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 18%,transparent)}.pip--filled{background-color:color-mix(in srgb,var(--ink) 88%,var(--gold));animation:pip-fill .28s ease-out}@keyframes pip-fill{0%{transform:scale(.7);opacity:.5}to{transform:scale(1);opacity:1}}.slots{display:flex;flex-direction:column;gap:.75rem}.slots__list{display:flex;flex-direction:column;gap:.4rem;padding:0;list-style:none}.slot{display:flex;flex-wrap:wrap;gap:.5rem .75rem;align-items:center;padding:.55rem .7rem;border:1px solid var(--rule);border-radius:var(--radius);background-color:var(--card)}.slot__level{flex:0 0 2.5rem;font-family:var(--font-display);font-size:1rem;font-variant-caps:all-small-caps;font-weight:700;letter-spacing:.08em;color:var(--ink-soft)}.slot__track{flex:1 1 8rem}.slot__none{font-size:.82rem;font-style:italic;color:var(--ink-faint)}.slot__count{font-variant-numeric:tabular-nums;font-weight:600}.slot__count-label{font-size:.75rem;font-weight:400;color:var(--ink-faint)}.slots__actions{display:flex;flex-wrap:wrap;gap:.5rem}.counter{display:flex;flex-wrap:wrap;gap:.5rem .75rem;align-items:center;padding:.55rem .7rem;border:1px solid var(--rule);border-radius:var(--radius);background-color:var(--card)}.counter__track{flex:1 1 8rem}.counter__meta{display:flex;gap:.5rem;align-items:center;margin-left:auto}.ink{display:inline-block}.ink--wet{animation:ink-bloom .48s cubic-bezier(.2,.7,.2,1)}@keyframes ink-bloom{0%{filter:blur(1.5px);opacity:.35;transform:translateY(-1px) scale(1.07)}45%{filter:blur(.35px);opacity:1}to{filter:none;opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.print-only{display:none}@media print{@page{margin:12mm}:root{--parchment: #fff;--parchment-deep: #fff;--card: #fff;--ink: #000;--ink-soft: #333;--ink-faint: #555;--gold: #666;--gold-soft: #999;--rule: #999;--wine: #000}body{background:#fff;background-image:none}.masthead{position:static;-webkit-backdrop-filter:none;backdrop-filter:none}.masthead__nav,.button,.stepper__button,.ability__nudge,.hp__nudge,.panel__chevron,.band__note{display:none!important}.sheet{max-width:none;gap:.9rem;padding:0}.panel__body[hidden],.print-only{display:flex!important}.panel,.band,.tile,.card,.slot,.counter,.ability{break-inside:avoid;box-shadow:none}.field,.number-input,.identity__name{border-color:transparent;background:none;color:#000}.field--area{resize:none}.pip--filled{background-color:#000;animation:none}.save,.tile,.ability,.panel,.card,.slot,.counter{border-color:#999}}
