/* Reuse Looksift's shared canvas shell, theme and controls. */
.monster-studio .studio-layout{grid-template-columns:252px minmax(360px,1fr) 272px;min-height:calc(100dvh - var(--header-height))}

.monster-studio .preset-panel{padding:27px 18px 20px;max-height:calc(100dvh - var(--header-height));overflow:auto}
.monster-studio .preset-panel h2{font-size:24px;margin:11px 0 10px}.monster-studio .panel-intro{line-height:1.9;font-size:14px}.monster-studio .preset-panel>.section-kicker,.monster-studio .preset-panel>.panel-intro{display:block}
.monster-studio .stage-panel{height:calc(100dvh - var(--header-height));min-height:640px;max-height:none}
.monster-studio .inspector{height:calc(100dvh - var(--header-height));min-height:640px}
.monster-studio .stage-toolbar{padding:12px 22px;min-height:54px}
.monster-stage-label{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--muted)}
.monster-studio .stage-space{padding:20px;min-height:0;flex:1}
.monster-studio .canvas-frame{position:relative;flex-shrink:0;overflow:hidden;box-shadow:0 12px 40px #0002}
#monster-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;outline-offset:-4px}#monster-canvas:active{cursor:grabbing}
.monster-stage-footer{display:flex;justify-content:space-between;padding:0 22px 16px;font-size:14px;color:var(--muted)}
.monster-front-view{position:absolute;top:14px;left:14px;display:grid;place-items:center;width:33px;height:33px;background:var(--paper);color:var(--muted);border:1px solid var(--line);padding:6px;z-index:2}
.monster-front-view svg{width:20px;height:20px}.monster-front-view:hover{background:var(--hover);color:var(--green)}
.monster-part-group{margin-top:23px}.monster-part-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;font-size:14px}
.monster-part-heading small{font-family:Georgia,serif;letter-spacing:1.2px;color:var(--muted);font-size:14px}
.monster-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:24px}.monster-categories button{padding:7px 6px;font-size:14px;background:var(--subtle);border:1px solid var(--line);color:var(--muted)}.monster-categories button[aria-pressed=true]{background:var(--green-soft);color:var(--green);border-color:var(--green)}
.monster-part-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.monster-part{border:1px solid var(--line);background:var(--subtle);padding:9px 3px 8px;min-height:76px;transition:background .15s,border-color .15s}
.monster-part:hover{background:var(--hover);border-color:var(--track)}.monster-part[aria-pressed=true]{background:var(--green-soft);border-color:var(--green);color:var(--green)}
.monster-part svg{width:40px;height:38px;display:block;margin:0 auto 5px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;color:var(--muted)}
.monster-part[aria-pressed=true] svg{color:var(--green)}.monster-part span{font-size:14px}
.monster-part span{display:block;line-height:1.6;min-height:18px;overflow-wrap:anywhere}.monster-part[hidden]{display:none}
.monster-library-tools{display:grid;gap:7px;margin-top:14px}.monster-library-tools select{min-width:0;width:100%;font:14px var(--sans);color:var(--ink);background:var(--subtle);border:1px solid var(--line);padding:9px 8px;border-radius:4px;box-sizing:border-box}.monster-library-tools select:focus{outline:1px solid var(--green);outline-offset:1px}
.monster-pagination{display:flex;align-items:center;gap:9px;margin-top:15px;font-size:14px;color:var(--muted)}.monster-pagination button{border:1px solid var(--line);background:var(--subtle);color:var(--green);width:29px;height:28px;padding:0}.monster-pagination button:disabled{opacity:.35;cursor:default}.monster-pagination small{margin-left:auto;font-size:14px}
.monster-summary dd{max-width:80%;overflow-wrap:anywhere}
.monster-part:disabled{opacity:.4;cursor:not-allowed}.monster-part:disabled:hover{background:var(--subtle);border-color:var(--line)}
.monster-optional-note{font-size:14px;color:var(--muted);line-height:1.7;margin:0 0 10px}
.monster-library-note{padding-top:23px;margin-top:23px;border-top:1px solid var(--line);color:var(--muted);font-size:14px;display:flex;flex-direction:column;gap:9px}
.monster-library-note strong{font:32px/1 Georgia,serif;color:var(--green)}.monster-library-note small{font:14px var(--sans);color:var(--muted);padding-left:5px}
.monster-studio .inspector-section{padding:24px 0}.monster-studio .inspector h2{font-size:19px;line-height:1.6;margin-top:9px}
.monster-help{font-size:14px;color:var(--muted);line-height:1.9;margin-top:8px}
.monster-rarity-odds{width:100%;border-collapse:collapse;margin-top:15px;font-size:14px;line-height:1.6}
.monster-rarity-odds tr{border-bottom:1px solid var(--line)}.monster-rarity-odds th{padding:8px 8px 8px 0;text-align:left;font-weight:500;white-space:nowrap}
.monster-rarity-odds td{padding:8px 0;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.monster-optional{border:0;padding:0;margin:18px 0 0;min-width:0}.monster-optional legend{font-size:14px;color:var(--muted);margin-bottom:9px;padding:0}
#optional-parts{display:flex;flex-wrap:wrap;gap:8px 13px}#optional-parts label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:14px;padding:4px 0}#optional-parts input{margin:0;width:14px;height:14px;accent-color:var(--green);cursor:pointer}
.monster-roll{margin-top:18px;min-height:46px}.monster-roll svg{width:21px;height:21px}
.monster-roll.is-rolling svg{animation:monster-roll .28s ease-out}
.monster-small{font-size:14px;color:var(--muted)}.monster-summary{margin:0}
.monster-summary>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.monster-summary>div:last-child{border-bottom:0;padding-bottom:0}.monster-summary dt{color:var(--muted);font-size:14px}.monster-summary dd{margin:0;text-align:right;font-size:14px}
.monster-summary dd small{display:block;color:var(--muted);font-size:14px;margin-top:4px}
.monster-summary dd{max-width:none}.monster-summary dd.monster-part-controls{grid-column:1/-1;text-align:left;display:grid;gap:16px;padding-top:3px}
.monster-choice{display:grid;gap:8px}.monster-choice>span{font-size:14px;color:var(--muted)}.monster-choice>div{display:flex;border:1px solid var(--line);border-radius:5px;overflow:hidden;padding:3px;gap:3px;background:var(--subtle)}
.monster-choice button{flex:1;min-width:0;padding:7px 2px;border:0;border-radius:3px;background:transparent;font-size:14px;color:var(--muted)}.monster-choice button:hover{background:var(--hover)}.monster-choice button[aria-pressed=true]{background:var(--green-soft);color:var(--green)}
.monster-size-field>div{display:flex;align-items:center;gap:5px;font-size:14px;color:var(--muted)}.monster-size-field output{margin-left:auto;color:var(--ink);font-variant-numeric:tabular-nums}.monster-size-field input{width:100%;margin:9px 0 0;accent-color:var(--green);cursor:pointer}
.monster-size-reset{display:grid;place-items:center;width:22px;height:22px;padding:5px;background:none;border:0;color:var(--muted)}.monster-size-reset svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.monster-size-reset:hover{color:var(--green)}.monster-size-reset:disabled{opacity:.3;cursor:default}.monster-part-controls[data-inactive]{opacity:.4}.monster-part-controls input:disabled{cursor:default}
.monster-turntable{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);z-index:3;display:flex;align-items:center;justify-content:center;gap:8px;min-width:112px;height:36px;padding:0 15px;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--muted);font-size:14px;box-shadow:0 3px 12px #0002}.monster-turntable:hover{background:var(--hover);color:var(--green)}.monster-turntable[aria-pressed=true]{color:var(--green);border-color:var(--green)}.monster-turntable span{font-size:14px}
.monster-studio .export-action{padding-top:12px}.monster-export-note{font-size:14px;color:var(--muted);margin:11px 0 0;text-align:center}
@keyframes monster-roll{from{transform:rotate(-100deg) scale(.8)}to{transform:rotate(0) scale(1)}}
@media(min-width:1500px){.monster-studio .studio-layout{grid-template-columns:268px minmax(450px,1fr) 288px}.monster-studio .preset-panel{padding:30px 22px}.monster-part{min-height:80px}}
@media(max-width:1100px){.monster-studio .studio-layout{grid-template-columns:216px minmax(310px,1fr) 230px}.monster-studio .header-actions .back-link{font-size:14px}.monster-studio .page-identity>span{display:none}.monster-studio .preset-panel{padding:24px 14px}.monster-studio .inspector{padding-left:16px;padding-right:16px}}
@media(max-width:900px){.monster-studio .studio-layout{min-width:800px;display:grid}.monster-studio .preset-panel{grid-column:1;grid-row:1;display:flex;border-right:1px solid var(--line)}.monster-studio .inspector{grid-column:3;grid-row:1;display:flex}.monster-studio .stage-panel{grid-column:2;grid-row:1;position:static}.monster-studio .header-actions .back-link{display:none}.monster-studio .preset-panel h2,.monster-studio .panel-intro,.monster-studio .section-kicker{display:block}}
@media(prefers-reduced-motion:reduce){.monster-part{transition:none}.monster-roll.is-rolling svg{animation:none}}

.monster-rarity{--rarity-color:#d0c6af;position:absolute;top:16px;right:16px;display:flex;align-items:center;gap:10px;min-width:92px;padding:10px 13px;border:1px solid color-mix(in srgb,var(--rarity-color) 50%,transparent);border-radius:7px;background:#171a17f2;color:var(--rarity-color);box-shadow:0 3px 12px #0002;cursor:help}
.monster-set-symbol{display:block;width:30px;height:32px;flex-shrink:0;background:currentColor;mask:url('./assets/monster/mtg-dom-symbol.svg') center/contain no-repeat}
.monster-rarity>div{display:grid;gap:4px}.rarity-heading{display:flex;align-items:center;gap:7px}.rarity-heading b{font:14px/1 Georgia,serif;opacity:.75;border-right:1px solid currentColor;padding-right:7px}.monster-rarity strong{font-size:14px;line-height:1.25;font-weight:600;letter-spacing:1px;text-transform:uppercase;white-space:nowrap}.monster-rarity small{font-size:14px;letter-spacing:1px;opacity:.8;font-variant-numeric:tabular-nums}
.monster-rarity[data-rarity=common]{--rarity-color:#161616;background:#d8d8d2f2;border-color:#777b74}
.monster-rarity[data-rarity=uncommon]{--rarity-color:#c5ccd1;background:linear-gradient(135deg,#333a3eee,#1b1e20f2)}
.monster-rarity[data-rarity=rare]{--rarity-color:#d9b663;background:linear-gradient(135deg,#3d3015f2,#211c12ed)}
.monster-rarity[data-rarity=mythic]{--rarity-color:#f58d42;background:linear-gradient(135deg,#502919f2,#28150eee);border-color:#e37d37;box-shadow:0 0 20px #e862243a,inset 0 0 12px #ffbe8115}
.monster-rarity[hidden]{display:none}
.mythic-reveal{position:absolute;inset:0;z-index:4;pointer-events:none;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at center,#f276381a 0%,transparent 65%)}.mythic-reveal[hidden]{display:none}.mythic-halo{position:absolute;width:70%;aspect-ratio:1;border:1px solid #f2763888;border-radius:50%;box-shadow:0 0 80px #f276384d,inset 0 0 55px #ffb08433}.mythic-burst{position:absolute;width:100%;aspect-ratio:1;background:repeating-conic-gradient(from 0deg,transparent 0deg 23deg,#fa9b6629 24deg,transparent 26deg 45deg);mask-image:radial-gradient(transparent 18%,#000 30%,transparent 68%)}.mythic-reveal-title{display:grid;justify-items:center;gap:8px;align-self:start;margin-top:11%;color:#ffceab;text-shadow:0 2px 12px #000,0 0 30px #f27638}.mythic-reveal-title>span{font-size:32px}.mythic-reveal-title strong{font-size:clamp(20px,3vw,38px);font-weight:500;letter-spacing:4px;padding-left:4px}.mythic-reveal-title small{font-size:14px;letter-spacing:4px}.is-revealing{animation:mythic-appear 2.6s ease both}.is-revealing .mythic-halo{animation:mythic-expand 2.6s ease-out both}.is-revealing .mythic-burst{animation:mythic-rays 2.6s ease-out both}@keyframes mythic-appear{0%{opacity:0}18%,72%{opacity:1}100%{opacity:0}}@keyframes mythic-expand{from{transform:scale(.4);opacity:0}25%{opacity:1}to{transform:scale(1.25);opacity:0}}@keyframes mythic-rays{from{transform:rotate(-12deg) scale(.6)}to{transform:rotate(12deg) scale(1.15)}}@media(prefers-reduced-motion:reduce){.is-revealing,.is-revealing .mythic-halo,.is-revealing .mythic-burst{animation:none}.mythic-halo,.mythic-burst{display:none}}


.monster-rarity:is([data-rarity=rare],[data-rarity=mythic]){isolation:isolate}
.monster-rarity[data-rarity=rare]{--breath-duration:2.6s;--aura-shadow:0 0 24px #eac059aa,0 0 42px #b9872633,inset 0 0 15px #e6c36a44;--aura-rim:#f4d78acc;--aura-scale:1.04}
.monster-rarity[data-rarity=mythic]{--breath-duration:1.8s;--aura-shadow:0 0 17px #ffad6ccc,0 0 36px #fa782faa,0 0 58px #eb481f55,inset 0 0 19px #ffd4a966;--aura-rim:#ffc69a;--aura-scale:1.055}
.monster-rarity:is([data-rarity=rare],[data-rarity=mythic])::before{content:"";position:absolute;inset:-1px;border:1px solid var(--aura-rim);border-radius:inherit;box-shadow:var(--aura-shadow);pointer-events:none;animation:rarity-breathe var(--breath-duration) ease-in-out infinite;transform-origin:center}
@keyframes rarity-breathe{0%,100%{opacity:.18;transform:scale(1)}50%{opacity:1;transform:scale(var(--aura-scale))}}
@media(prefers-reduced-motion:reduce){.monster-rarity:is([data-rarity=rare],[data-rarity=mythic])::before{animation:none;opacity:.65}}

.monster-studio .preset-panel h2{font-size:clamp(20px,1.6vw,25px);line-height:1.3;white-space:normal}.monster-part span{overflow-wrap:anywhere}.monster-categories button{font-size:14px}.monster-studio .monster-assemble h2{font-size:24px;line-height:1.3}.monster-studio .monster-roll{font-size:14px}
.monster-studio .download-pose{background:var(--action-bg);color:var(--action-ink)}
@media(max-width:800px){
 .monster-studio .studio-layout{display:flex;flex-direction:column;min-width:0;min-height:0}
 .monster-studio .stage-panel{order:0;width:100%;height:68dvh;min-height:430px;max-height:650px}
 .monster-studio .stage-space{padding:12px}
 .monster-studio .preset-panel{order:1;display:block;width:100%;height:auto;max-height:none;border-right:0;border-top:1px solid var(--line);padding:22px 16px}
 .monster-studio .preset-panel h2{margin:8px 0}.monster-studio .panel-intro{display:none}
 .monster-categories{grid-template-columns:repeat(6,minmax(0,1fr));margin-top:18px}
 .monster-part-options{grid-template-columns:repeat(3,minmax(0,1fr))}
 .monster-studio .inspector{order:2;display:flex;flex-direction:column;width:100%;height:auto;min-height:0;border-left:0;padding:0 16px 20px}
 .monster-studio .inspector-scroll{overflow:visible;max-height:none}
 .monster-studio .export-action{padding-top:18px}.monster-studio .section-kicker{font-size:14px}
}
