.masthead{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.8rem;padding-bottom:1.2rem;border-bottom:2px solid var(--ink);position:relative}.masthead:after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:1px;background:var(--ink);opacity:.7}.masthead-eyebrow{font-family:var(--font-hand);font-size:1.15rem;color:var(--ink-red);letter-spacing:.02em;transform:rotate(-1.5deg);transform-origin:left center;margin-bottom:-.2rem}.masthead-meta{display:flex;justify-content:space-between;font-family:var(--font-display);font-size:.8rem;color:var(--ink-faded);letter-spacing:.08em;text-transform:uppercase}.ribbon-nav{position:fixed;inset:auto 0 0;display:flex;gap:0;padding:.55rem .7rem .7rem;background:linear-gradient(180deg,var(--paper-deep),var(--paper-shadow));border-top:2px solid var(--ink);box-shadow:0 -10px 24px -16px #281e1280;z-index:40;overflow-x:auto;scrollbar-width:none}.ribbon-nav::-webkit-scrollbar{display:none}.ribbon-nav a{flex:0 0 auto;font-family:var(--font-display);font-size:.92rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);padding:.55rem .9rem;text-decoration:none;position:relative;white-space:nowrap}.ribbon-nav a+a{border-left:1px solid rgba(40,30,18,.25)}.ribbon-nav a[aria-current=page]{color:var(--ink-red);text-shadow:0 0 0 currentColor}.ribbon-nav a[aria-current=page]:after{content:"";position:absolute;left:12%;right:12%;bottom:4px;height:2px;background:var(--ink-red);filter:blur(.2px)}@media (min-width: 880px){.ribbon-nav{inset:0 auto 0 0;flex-direction:column;width:clamp(160px,14vw,200px);padding:2rem 0 1rem;border-top:0;border-right:2px solid var(--ink);box-shadow:18px 0 32px -24px #281e1280;background:linear-gradient(90deg,var(--paper-deep) 0%,var(--paper-shadow) 100%)}.ribbon-nav a{width:100%;text-align:left;padding:.85rem 1.2rem .85rem 1.6rem;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%);margin-bottom:.35rem;background:var(--paper);box-shadow:var(--shadow-pinned)}.ribbon-nav a+a{border-left:0}.ribbon-nav a[aria-current=page]{background:var(--paper-deep);color:var(--ink-red);box-shadow:inset 0 0 0 1px var(--ink-red),var(--shadow-pinned)}.ribbon-nav a[aria-current=page]:after{display:none}body{padding-left:clamp(160px,14vw,200px)}}.polaroid{--tilt: 0deg;position:relative;background:#f7efdd;padding:14px 14px 38px;border-radius:var(--radius-card);box-shadow:var(--shadow-card);transform:rotate(var(--tilt));transition:transform .22s ease,box-shadow .22s ease;text-align:center;border:1px solid rgba(80,60,30,.15)}.polaroid:before,.polaroid:after{content:"";position:absolute;top:-7px;width:64px;height:16px;background:var(--tape);border:1px solid var(--tape-edge);box-shadow:0 1px 2px #281e1226;z-index:2}.polaroid:before{left:-8px;transform:rotate(-12deg)}.polaroid:after{right:-8px;transform:rotate(10deg)}.polaroid:hover{transform:rotate(0) translateY(-3px);box-shadow:0 14px 30px -14px #281e1280}.polaroid-image{background:#efe3c4;background-image:radial-gradient(circle at 30% 30%,rgba(255,255,255,.4),transparent 60%),radial-gradient(circle at 70% 70%,rgba(120,80,40,.1),transparent 70%);aspect-ratio:1;display:grid;place-items:center;border:1px solid rgba(80,60,30,.2);margin-bottom:10px;overflow:hidden}.polaroid-image img{width:78%;height:78%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 0 rgba(40,30,18,.12))}.polaroid-caption{font-family:var(--font-hand);font-size:1.35rem;line-height:1.1;color:var(--ink);margin:0}.polaroid-caption .dex{font-family:var(--font-display);font-size:.72rem;letter-spacing:.1em;color:var(--ink-faded);display:block;margin-bottom:-2px}@media (max-width: 480px){.polaroid{--tilt: 0deg !important}}.polaroid-types{display:flex;justify-content:center;gap:6px;margin-top:6px;flex-wrap:wrap}.type-chip{font-family:var(--font-display);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:2px;color:#f7efdd;border:1px solid rgba(0,0,0,.2)}.rarity{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-hand);font-size:1.05rem;color:var(--ink-soft)}.rarity-dots{display:inline-flex;gap:3px}.rarity-dots .dot{width:8px;height:8px;border-radius:50%;background:var(--ink-red);opacity:.85}.rarity-dots .dot.off{background:transparent;border:1.5px solid var(--ink-faded);opacity:.6}.level-range{font-family:var(--font-display);font-size:.95rem;letter-spacing:.04em;color:var(--ink)}.level-range .lv{color:var(--ink-faded);font-size:.75em;margin-right:2px}.tape-strip{display:inline-block;font-family:var(--font-display);font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink);padding:5px 12px;background:#e1c88299;border-top:1px dashed rgba(60,40,10,.3);border-bottom:1px dashed rgba(60,40,10,.3);position:relative;transform:rotate(-1deg)}.tape-strip:before,.tape-strip:after{content:"";position:absolute;top:0;bottom:0;width:10px;background:inherit}.tape-strip:before{left:-10px;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,40% 50%)}.tape-strip:after{right:-10px;clip-path:polygon(0 0,100% 0,60% 50%,100% 100%,0 100%)}.tape-strip .label{font-family:var(--font-hand);text-transform:none;letter-spacing:0;font-size:.85rem;color:var(--ink-faded);margin-right:6px}.evolution-strip{display:flex;align-items:center;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:8px}.evolution-strip .mini{width:44px;height:44px;image-rendering:pixelated;background:#503c1e14;border:1px dashed rgba(60,40,10,.25);border-radius:50%;padding:2px}.evolution-strip .arrow{font-family:var(--font-hand);font-size:.95rem;color:var(--ink-red);display:flex;flex-direction:column;align-items:center;line-height:1;transform:rotate(-2deg)}.evolution-strip .arrow .glyph{font-family:var(--font-display);font-size:1.3rem;letter-spacing:-.1em}.evolution-note{font-family:var(--font-hand);color:var(--ink-soft);font-size:.95rem;text-align:center;margin-top:6px}.evolution-terminal{font-family:var(--font-hand);color:var(--ink-faded);font-size:1rem;text-align:center;margin-top:6px}.badge-stamp{--stamp-color: var(--badge-gold);display:inline-block;position:relative;padding:16px 24px;font-family:var(--font-display);font-size:1rem;letter-spacing:.18em;text-transform:uppercase;color:var(--stamp-color);border:3px solid var(--stamp-color);clip-path:polygon(8% 0,92% 0,100% 25%,100% 75%,92% 100%,8% 100%,0 75%,0 25%);background:radial-gradient(circle at 30% 30%,rgba(255,240,200,.4),transparent 50%),#e1c8821f;text-align:center;mix-blend-mode:multiply;transform:rotate(-3deg);filter:contrast(1.1) opacity(.85)}.badge-stamp:before{content:"";position:absolute;inset:4px;border:1.5px solid currentColor;clip-path:inherit;opacity:.6}.badge-stamp .leader{display:block;font-family:var(--font-hand);font-size:1.1rem;color:var(--ink);letter-spacing:0;margin-top:4px;text-transform:none}.trainer-block{background:linear-gradient(180deg,rgba(255,245,220,.5),transparent),var(--paper);border:1px solid rgba(80,60,30,.2);border-radius:4px;padding:1.4rem 1.4rem 1.2rem;margin-bottom:2.2rem;box-shadow:var(--shadow-card);position:relative}.trainer-block:before{content:"";position:absolute;top:-10px;left:20px;width:70px;height:22px;background:var(--tape);border:1px solid var(--tape-edge);transform:rotate(-3deg)}.trainer-block-head{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;justify-content:space-between;margin-bottom:1rem}.trainer-meta{font-family:var(--font-hand);color:var(--ink-soft);font-size:1.05rem}.trainer-meta strong{font-family:var(--font-display);font-size:1.5rem;letter-spacing:.02em;color:var(--ink);display:block;line-height:1.1;margin-bottom:.2rem}.trainer-meta .spec{display:inline-block;font-family:var(--font-display);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-red);border-bottom:1px solid currentColor;padding-bottom:1px;margin-top:.2rem}.trainer-block-notes{font-family:var(--font-hand);font-size:1.1rem;color:var(--ink-soft);margin:.4rem 0 1rem;padding:.3rem .6rem;border-left:3px solid var(--ink-red);background:#e1c88229}.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.1rem}.margin-note{font-family:var(--font-hand);font-size:1.1rem;color:var(--ink-red);line-height:1.25;padding:.4rem 0;position:relative}.margin-note:before{content:"★";display:inline-block;color:var(--ink-red);margin-right:.4em;transform:translateY(2px)}.margin-note.observation{color:var(--ink-blue)}.margin-note.observation:before{content:"✎";color:var(--ink-blue)}.margin-note.warning{color:var(--ink-red)}.margin-note.warning:before{content:"!";font-family:var(--font-display);font-weight:700}.map-frame{position:relative;margin:0 auto;max-width:100%;aspect-ratio:2048 / 1650;background:var(--paper-deep);border:1px solid var(--ink-soft);box-shadow:var(--shadow-page);padding:clamp(16px,2.5vw,28px);background-image:radial-gradient(circle at 50% 50%,rgba(255,245,220,.5),transparent 70%),var(--paper-deep)}.map-frame:before,.map-frame:after,.map-frame .tape-l,.map-frame .tape-r{content:"";position:absolute;width:clamp(70px,12vw,110px);height:22px;background:var(--tape);border:1px solid var(--tape-edge);box-shadow:0 2px 4px #281e122e;z-index:3}.map-frame:before{top:-10px;left:6%;transform:rotate(-4deg)}.map-frame:after{top:-10px;right:6%;transform:rotate(5deg)}.map-frame .tape-l{bottom:-10px;left:8%;transform:rotate(3deg)}.map-frame .tape-r{bottom:-10px;right:8%;transform:rotate(-3deg)}.map-frame img.kanto-image{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;display:block}.map-frame .overlay{position:absolute;inset:clamp(16px,2.5vw,28px);width:auto;height:auto}.map-frame .overlay polygon{fill:#8c642800;stroke:#281e1200;stroke-width:1.5;vector-effect:non-scaling-stroke;transition:fill .18s ease;cursor:pointer}.map-frame .overlay polygon:hover,.map-frame .overlay polygon:focus-visible{fill:#b8923a47;outline:none}.map-frame .overlay polygon.active{fill:#8a2a1d38}.map-frame .overlay .ink-circle{fill:none;stroke:var(--ink-red);stroke-width:5;vector-effect:non-scaling-stroke;stroke-linecap:round;pointer-events:none;opacity:0;transition:opacity .22s ease;filter:url(#wobble)}.map-frame .overlay polygon:hover+.ink-circle,.map-frame .overlay .ink-circle.show{opacity:.95;animation:draw-in .6s ease forwards}@keyframes draw-in{0%{stroke-dasharray:0 4000}to{stroke-dasharray:4000 0}}.map-label{position:absolute;pointer-events:none;font-family:var(--font-hand);font-size:clamp(.85rem,1.5vw,1.05rem);color:var(--ink);text-shadow:0 0 4px rgba(247,239,221,.85),0 0 8px rgba(247,239,221,.65);transform:translate(-50%,-50%);white-space:nowrap;opacity:.85}.location-sheet{position:fixed;inset:auto 0 0;max-height:86vh;overflow-y:auto;background:radial-gradient(ellipse at top,rgba(255,245,220,.6),transparent 80%),var(--paper);border-top:2px solid var(--ink);box-shadow:0 -24px 60px -20px #281e128c;padding:1.4rem clamp(1rem,4vw,2rem) 2rem;z-index:50;transform:translateY(110%);transition:transform .32s cubic-bezier(.2,.7,.2,1)}.location-sheet[open]{transform:translateY(0)}.location-sheet::backdrop{background:#281e1259;backdrop-filter:blur(2px)}.location-sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;padding-bottom:.6rem;border-bottom:1.5px solid var(--ink)}.location-sheet-head h2{font-size:clamp(1.5rem,3vw,2rem);margin:0}.location-sheet-head .terrain-tag{font-family:var(--font-display);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border:1.5px solid currentColor;padding:4px 10px;border-radius:2px;align-self:center}.location-sheet-close{font-family:var(--font-display);font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-red);border:1.5px solid currentColor;padding:6px 12px;background:#b8923a14;cursor:pointer}.location-sheet-close:hover{background:#8a2a1d1a}.section-head{font-family:var(--font-display);font-size:.95rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--ink-faded);margin:1.6rem 0 1rem;padding-bottom:.3rem;position:relative}.section-head .small-note{position:absolute;right:0;top:0;font-family:var(--font-hand);font-size:1rem;color:var(--ink-faded);letter-spacing:0;text-transform:none}@media (min-width: 880px){.location-sheet{position:fixed;inset:5vh clamp(20px,4vw,40px) 5vh auto;width:min(560px,46vw);border-top:0;border-left:2px solid var(--ink);transform:translate(110%)}.location-sheet[open]{transform:translate(0)}}.poke-grid{display:grid;gap:1.3rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}@media (max-width: 360px){.poke-grid{grid-template-columns:1fr}}.dex-backdrop{position:fixed;inset:0;background:#281e1252;backdrop-filter:blur(2px);z-index:49;opacity:0;visibility:hidden;transition:opacity .24s ease,visibility 0s linear .24s}.dex-backdrop[open]{opacity:1;visibility:visible;transition:opacity .24s ease,visibility 0s}.dex-sheet-body{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:center;margin-bottom:1rem}.dex-sheet-portrait{background:#efe3c4;background-image:radial-gradient(circle at 35% 30%,rgba(255,255,255,.55),transparent 65%),radial-gradient(circle at 70% 75%,rgba(120,80,40,.16),transparent 70%);border:1px solid rgba(80,60,30,.2);aspect-ratio:1;display:grid;place-items:center;box-shadow:var(--shadow-pinned);transform:rotate(-1deg)}.dex-sheet-portrait img{width:72%;height:72%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 0 rgba(40,30,18,.15))}.dex-types-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:.8rem}.dex-vitals{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0;font-family:var(--font-body)}.dex-vitals dt{font-family:var(--font-display);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faded);align-self:center}.dex-vitals dd{margin:0;font-family:var(--font-hand);font-size:1.2rem;color:var(--ink)}.stat-bars{display:flex;flex-direction:column;gap:8px;margin-bottom:1rem}.stat-row{display:grid;grid-template-columns:64px 44px 1fr;align-items:center;gap:12px;font-family:var(--font-display);font-size:.88rem}.stat-label{color:var(--ink-faded);letter-spacing:.06em}.stat-value{color:var(--ink);text-align:right}.stat-track{height:9px;background:#503c1e1f;border:1px solid rgba(80,60,30,.3);border-radius:1px;overflow:hidden;position:relative}.stat-fill{display:block;height:100%;background:linear-gradient(90deg,var(--ink-red) 0%,var(--badge-gold) 100%);transition:width .3s ease}.dex-availability{display:flex;flex-direction:column;gap:1rem}.avail-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.avail-list li{display:grid;grid-template-columns:1fr auto auto;gap:8px 14px;padding:.45rem .7rem;background:#e1c8822e;border-left:2px solid var(--ink-faded);font-family:var(--font-body)}.avail-list .loc{font-family:var(--font-body)}.avail-list .lv{font-family:var(--font-display);font-size:.88rem;color:var(--ink)}.avail-list .ch{font-family:var(--font-display);font-size:.78rem;letter-spacing:.08em;color:var(--ink-faded)}.move-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 12px;list-style:none;padding:0;margin:0}.move-list li{display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:8px;padding:5px 8px;background:#e1c88229;border-left:2px solid var(--ink-faded)}.move-list li.stab{background:#b8923a38;border-left-color:var(--ink-red)}.move-list .move-level{font-family:var(--font-display);font-size:.78rem;letter-spacing:.08em;color:var(--ink-red)}.move-list .move-level.start{color:var(--ink-faded)}.move-list .move-name{font-family:var(--font-body);font-size:.98rem;color:var(--ink);display:flex;align-items:center;gap:6px}.move-list .stab-mark{color:var(--ink-red);font-size:.95rem;line-height:1}.move-type-chip{font-family:var(--font-display);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;padding:2px 7px;border-radius:2px;color:#f7efdd;border:1px solid rgba(0,0,0,.2);white-space:nowrap}.matchup-grid{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.matchup-row{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center}.matchup-label{font-family:var(--font-display);font-size:1rem;letter-spacing:.04em;color:var(--ink);text-align:right}.matchup-row:nth-child(1) .matchup-label,.matchup-row:nth-child(2) .matchup-label{color:var(--ink-red)}.matchup-row:nth-last-child(1) .matchup-label,.matchup-row:nth-last-child(2) .matchup-label{color:var(--ink-green)}.matchup-chips{display:flex;flex-wrap:wrap;gap:5px}@media (max-width: 480px){.dex-sheet-body{grid-template-columns:1fr}}
