:root{--font-display: "Space Grotesk", sans-serif;--font-pixel: "Press Start 2P", cursive;--font-retro: "Silkscreen", sans-serif;--color-primary: #7311d4;--color-background-light: #f7f6f8;--color-background-dark: #191022;--color-rpg-gold: #ffd700;--color-rpg-silver: #c0c0c0;--color-rpg-stone: #3a3245;--color-rpg-wood: #5d4037;--color-rpg-accent: #a855f7;--color-label: #94a3b8;--color-success: #22c55e;--color-ink-1: #2a1e35;--color-ink-2: #2b3b44;--color-ink-3: #394f57;--color-paper-text: #1f2c33;--color-hp-a: #a5e39b;--color-hp-b: #6dd17a;--color-mp-a: #9bc7ff;--color-mp-b: #6f9fe0;--parchment-100: var(--color-rpg-silver);--parchment-200: #7f7a8b;--parchment-300: #4d3c61;--steel-700: #5a4f68;--steel-800: var(--color-rpg-stone);--steel-900: #1a1122;--accent-amber: var(--color-rpg-gold);--accent-teal: #7f7a8b;--accent-red: var(--color-rpg-accent);--accent-brown: var(--color-rpg-wood);--text-dark: var(--color-background-light);--text-light: #ffffff;--border-dark: #1a1022;--type-weight-regular: 400;--type-weight-medium: 500;--type-weight-semibold: 600;--type-weight-bold: 700;--type-line-tight: 1.1;--type-line-normal: 1.35;--type-line-relaxed: 1.5;--type-size-display: clamp(1.8rem, 4vw, 2.8rem);--type-size-h1: 1.25rem;--type-size-h2: 1.05rem;--type-size-h3: .85rem;--type-size-body: .9rem;--type-size-body-sm: .82rem;--type-size-caption: .74rem;--type-size-label: .75rem;--type-size-badge: .68rem;--type-face-page-title: var(--font-pixel);--type-face-section-title: var(--font-pixel);--type-face-card-title: var(--font-pixel);--type-face-body: var(--font-retro);--type-face-label: var(--font-retro);--type-face-value: var(--font-pixel);--type-size-page-title: var(--type-size-h1);--type-size-section-title: var(--type-size-h2);--type-size-card-title: var(--type-size-h3);--type-size-body-default: var(--type-size-body);--type-size-body-compact: var(--type-size-body-sm);--type-size-label-default: var(--type-size-label);--type-size-caption-default: var(--type-size-caption);--type-size-badge-default: var(--type-size-badge);--type-weight-page-title: var(--type-weight-medium);--type-weight-section-title: var(--type-weight-medium);--type-weight-card-title: var(--type-weight-medium);--type-weight-body: var(--type-weight-regular);--type-weight-label: var(--type-weight-medium);--type-weight-value: var(--type-weight-medium);--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 2.5rem;--space-9: 3rem;--space-10: 4rem;--space-inline-tight: var(--space-2);--space-inline-base: var(--space-3);--space-inline-loose: var(--space-4);--space-stack-tight: var(--space-2);--space-stack-base: var(--space-4);--space-stack-loose: var(--space-6);--space-stack-section: var(--space-7);--inset-panel: var(--space-4);--inset-card: var(--space-4);--inset-card-compact: var(--space-3);--inset-dialog: var(--space-6);--inset-chip-y: var(--space-1);--inset-chip-x: var(--space-2);--layout-page-padding: var(--space-0);--layout-shell-gap: var(--space-4);--layout-header-gap: calc(var(--space-4) + 3px);--layout-header-height: 38px;--layout-shell-height: calc(100vh - (var(--layout-page-padding) * 2));--layout-grid-scrollbar-pad: var(--space-1);--dialog-responsive-width: calc(100vw - (var(--space-4) * 2));--size-0: 0;--size-1: .25rem;--size-2: .5rem;--size-3: .75rem;--size-4: 1rem;--size-5: 1.5rem;--size-6: 2rem;--size-7: 2.5rem;--size-8: 3rem;--size-9: 4rem;--size-shell-max-width: 120rem;--size-divider: 2px;--size-meter-md: .625rem;--size-meter-sm: .5rem;--size-category-card-min-h: 10.75rem;--size-ability-card-min-h: 14.25rem;--size-glyph-box: var(--size-7);--size-dialog-close: var(--size-6);--size-ability-spacer-min-h: .375rem;--size-ability-badge: 2.625rem;--size-quest-button-min-w: 7.625rem;--size-dialog-skill-max: 42.5rem;--size-dialog-quest-max: 33.75rem;--size-dialog-contact-max: 38.75rem;--size-project-badge: 3.1875rem;--size-project-badge-icon: var(--size-4)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:var(--space-0);font-family:var(--type-face-body);font-size:var(--type-size-body-default);font-weight:var(--type-weight-body);line-height:var(--type-line-normal);color:var(--text-dark);background:radial-gradient(circle at 20% 0%,var(--parchment-300) 0%,transparent 30%),radial-gradient(circle at 90% 100%,var(--color-ink-1) 0%,transparent 38%),linear-gradient(180deg,var(--color-background-dark) 0%,var(--color-ink-1) 65%,var(--color-rpg-stone) 100%);min-height:100vh}a{color:inherit}.page-bg{position:relative;min-height:100vh;padding:var(--space-0)}.pixel-grid-overlay{position:absolute;inset:var(--space-0);background-image:radial-gradient(circle,rgba(255,255,255,.18) 1px,transparent 1px);background-size:20px 20px;pointer-events:none}.site-shell{position:relative;z-index:1;max-width:var(--size-shell-max-width);margin:var(--space-0) auto;min-height:var(--layout-shell-height)}.panel{border:3px solid var(--border-dark);box-shadow:inset 0 0 0 2px #74959373,0 8px #394f578c;border-radius:4px}.hero-header{background:linear-gradient(135deg,var(--steel-900),var(--steel-800));color:var(--text-light);padding:var(--space-6);animation:reveal .38s ease-out}.hero-header h1{margin:var(--space-0);font-size:var(--type-size-display);line-height:var(--type-line-tight);letter-spacing:.06em;text-transform:uppercase}.hero-role{margin:var(--space-2) var(--space-0) var(--space-0);color:var(--accent-amber);font-size:var(--type-size-body-compact);font-weight:var(--type-weight-semibold)}.hero-tagline{max-width:60ch;font-size:var(--type-size-body-default);line-height:var(--type-line-relaxed)}.hero-actions{margin-top:var(--space-4)}.layout-grid{display:grid;gap:var(--layout-shell-gap);grid-template-columns:320px 1fr;padding-top:var(--layout-header-gap);min-height:var(--layout-shell-height)}.page-header-menu-button.pixel-button{display:none;white-space:nowrap;line-height:1}.page-header-menu-button.pixel-button.is-hidden{display:none!important}.nav-close-inline.pixel-button{display:none;align-self:flex-end;margin-bottom:var(--space-3)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:var(--space-2);left:var(--space-2);z-index:100;padding:var(--space-3);background:var(--accent-amber);color:var(--color-ink-1);font-family:var(--type-face-label);text-decoration:none;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.side-nav{background:linear-gradient(180deg,var(--steel-800),var(--steel-900));color:var(--text-light);padding:var(--space-4);align-self:stretch;display:flex;flex-direction:column;gap:var(--space-4);position:sticky;top:var(--layout-page-padding);height:calc(100vh - (var(--layout-header-height) + var(--layout-header-gap)))}.side-nav--dialog{display:none}.side-nav-dialog{display:none;margin:0;border:0;inset:0}.sidebar-profile{display:grid;gap:var(--space-2)}.sidebar-avatar{width:100%;aspect-ratio:1 / 1;object-fit:cover;image-rendering:pixelated;margin-bottom:var(--space-3);border:2px solid var(--accent-red);box-shadow:inset 0 0 0 2px #fec87359;background:#394f57cc}.sidebar-name{margin:var(--space-0);font-family:var(--type-face-page-title);font-size:var(--type-size-page-title);font-weight:var(--type-weight-page-title);line-height:var(--type-line-tight);letter-spacing:.03em;text-transform:uppercase;color:var(--accent-amber)}.sidebar-role{margin:var(--space-0);font-family:var(--type-face-body);font-size:var(--type-size-body-compact);line-height:var(--type-line-normal);font-weight:var(--type-weight-body);color:var(--parchment-100)}.sidebar-progress{display:grid;gap:var(--space-2)}.meter{height:var(--size-meter-md);border:2px solid var(--border-dark);background:#0f151dcc;box-shadow:inset 0 0 0 1px #74959366}.meter--small{height:var(--size-meter-sm)}.meter-fill{display:block;height:100%}.meter-fill--xp{width:82%;background:linear-gradient(90deg,var(--accent-amber),var(--accent-red))}.meter-fill--hp{width:100%;background:linear-gradient(90deg,var(--color-hp-a),var(--color-hp-b))}.meter-fill--mp{width:100%;background:linear-gradient(90deg,var(--color-mp-a),var(--color-mp-b))}.sidebar-level{margin:var(--space-0);font-size:var(--type-size-caption-default);line-height:var(--type-line-normal);color:var(--accent-amber)}.sidebar-menu{margin-top:var(--space-1)}.sidebar-stats{margin-top:auto;padding:var(--space-2);background:#0000003d}.stat-entry{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);font-family:var(--type-face-body);font-size:var(--type-size-caption-default);font-weight:var(--type-weight-label);line-height:var(--type-line-normal);color:var(--parchment-100)}.stat-entry+.meter{margin-bottom:var(--space-2)}.sidebar-stats .stat-entry:last-of-type+.meter{margin-bottom:var(--space-0)}.menu-list{list-style:none;margin:var(--space-2) var(--space-0) var(--space-0);padding:var(--space-0);display:grid;gap:var(--space-2)}.menu-list a{text-decoration:none;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2);border:1px solid transparent}.menu-list a:hover,.menu-list a:focus-visible{border-color:var(--accent-red);background:#fec87338}.menu-list a.is-active{border-color:var(--accent-amber);background:#fd997833}.cursor{transform:translate(-4px);opacity:0;transition:opacity .12s ease,transform .12s ease}.menu-list a:hover .cursor,.menu-list a:focus-visible .cursor,.menu-list a.is-active .cursor{opacity:1;transform:translate(0)}.content-stack{display:grid;gap:var(--layout-shell-gap);align-content:start;min-height:var(--layout-shell-height)}.page-header{position:sticky;top:0;z-index:35;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:0;padding:var(--space-2) var(--space-4);background:transparent}.page-header-title-wrap{display:flex;align-items:center;gap:var(--space-2);min-width:0}.page-header-title{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}h2.page-header-title{margin:0}.character-sheet{display:grid;gap:var(--space-4);padding:0 var(--space-4) var(--space-4);animation:reveal .36s ease-out}.character-title-glyph{color:var(--accent-amber);font-size:var(--type-size-page-title);line-height:var(--type-line-tight)}.character-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4);align-items:start}.character-top-row{--character-portrait-col: clamp(330px, 40vw, 480px);display:grid;grid-template-columns:var(--character-portrait-col) minmax(170px,220px) 1fr;grid-template-areas:"portrait equipment stats";gap:var(--space-3);align-items:stretch}.character-bottom-row{display:grid;gap:var(--space-3)}.character-portrait-card{grid-area:portrait;padding:var(--space-3);background:linear-gradient(180deg,#394f57f2,#525162eb)}.character-portrait-frame{border:2px solid var(--accent-amber);box-shadow:inset 0 0 0 2px #fd997859;background:#394f57a6}.character-portrait{width:100%;aspect-ratio:4 / 5;object-fit:cover;image-rendering:pixelated;display:block}.character-portrait-caption{margin:var(--space-2) var(--space-0) var(--space-0);text-align:center;font-family:var(--type-face-body);font-size:var(--type-size-caption-default);font-weight:var(--type-weight-label);line-height:var(--type-line-normal);letter-spacing:.03em;color:var(--parchment-100)}.character-equipment{grid-area:equipment;height:100%;min-height:0;display:grid;grid-template-rows:auto 1fr;padding:var(--space-3);background:linear-gradient(180deg,#394f57f2,#525162eb)}.equipment-grid{margin-top:var(--space-2);display:grid;grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:var(--space-2);min-height:0}.equipment-slot{position:relative;overflow:hidden;display:grid;place-items:center;min-height:0;border:2px solid var(--accent-red);background:linear-gradient(180deg,var(--steel-900),var(--color-ink-3));box-shadow:inset 0 0 0 2px #fec87359;line-height:1}.equipment-slot:after{content:"";position:absolute;inset:var(--space-0);pointer-events:none;opacity:0;background:linear-gradient(110deg,transparent 0%,rgba(254,200,115,.1) 42%,rgba(254,200,115,.16) 50%,rgba(254,200,115,.1) 58%,transparent 100%);transform:translate(-120%)}.equipment-slot:hover:after,.equipment-slot:focus-within:after{opacity:1;animation:skillLightSweep .9s ease}.equipment-icon{font-size:clamp(2.2rem,4.2vh,3.4rem);color:var(--parchment-100);font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24}.character-stats{grid-area:stats;padding:var(--space-5) var(--space-5);background:linear-gradient(180deg,#1a1122fa,#20162cfa);box-shadow:inset -4px -4px #2a1e35d9,inset 4px 4px #4d3c61d9,0 8px #0f0a15b3}.stat-item{padding:var(--space-0) var(--space-1)}.stat-label{margin:var(--space-0) var(--space-0) var(--space-1);font-family:var(--type-face-label);font-size:var(--type-size-label-default);line-height:var(--type-line-tight);font-weight:var(--type-weight-label);color:var(--color-label);text-transform:uppercase;letter-spacing:.02em}.stat-value{margin:var(--space-0);font-family:var(--type-face-value);font-size:var(--type-size-body-compact);line-height:var(--type-line-normal);font-weight:var(--type-weight-value);color:var(--text-light);text-shadow:0 1px 0 rgba(0,0,0,.55);overflow-wrap:anywhere}.stats-grid{display:grid;grid-template-columns:1fr;gap:var(--space-0)}.stats-grid .ui-label{margin-bottom:var(--space-1)}.stats-grid p{margin:var(--space-0)}.stats-grid .stat-value{color:var(--text-light)}.stats-grid .stat-value-accent{color:var(--color-primary)}.stats-grid .stat-value-success{color:var(--color-success)}.character-stats .stat-item:last-child{padding-bottom:var(--space-2)}.character-stats .stat-item:first-child{padding-top:var(--space-2)}.stat-divider{display:block;width:100%;height:var(--size-divider);margin:var(--space-3) var(--space-0);background:linear-gradient(90deg,rgba(254,200,115,.9) 0%,rgba(254,200,115,.2) 65%,transparent 100%)}.character-backstory-shell{padding:var(--space-2);background:linear-gradient(180deg,#394f57eb,#525162f2)}.character-backstory{background:linear-gradient(180deg,#b9cbc9f0,#749593f5);border:2px solid rgba(57,79,87,.7);padding:var(--space-3) var(--space-4);color:var(--color-paper-text)}.character-backstory .ui-subtitle{color:var(--color-ink-2);margin-bottom:var(--space-2)}.character-backstory p{margin-top:var(--space-0);margin-bottom:var(--space-2);font-size:var(--type-size-body-default);line-height:var(--type-line-relaxed);font-weight:var(--type-weight-semibold)}.character-backstory p:last-child{margin-bottom:var(--space-0)}.character-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.character-actions .pixel-button{text-align:center}.action-primary{background:var(--color-primary);color:var(--color-ink-2)}.action-secondary{background:#b9cbc9d1;color:var(--color-ink-2)}.panel-frame{padding:var(--inset-panel);color:var(--text-light);background:linear-gradient(180deg,var(--steel-900),var(--color-ink-3));animation:reveal .36s ease-out}.ui-label,.pixel-button,.menu-list{font-family:var(--type-face-label);letter-spacing:.04em}.hero-header h1,.ui-title,.ui-subtitle{font-family:var(--type-face-section-title);letter-spacing:.04em}.ui-label{margin:var(--space-0);text-transform:uppercase;font-size:var(--type-size-label-default);line-height:var(--type-line-tight);font-weight:var(--type-weight-label);color:var(--accent-amber)}.ui-title{margin:var(--space-0) var(--space-0) var(--space-3);text-transform:uppercase;font-size:var(--type-size-section-title);line-height:var(--type-line-tight);font-weight:var(--type-weight-section-title);color:var(--accent-amber)}.ui-subtitle{margin:var(--space-0) var(--space-0) var(--space-2);text-transform:uppercase;font-size:var(--type-size-card-title);line-height:var(--type-line-tight);font-weight:var(--type-weight-card-title);color:var(--parchment-100)}.pixel-button{text-decoration:none;display:inline-block;text-transform:uppercase;background:var(--accent-amber);color:var(--color-ink-3);border:2px solid var(--accent-red);box-shadow:3px 3px 0 var(--color-ink-3);padding:var(--space-2) var(--space-3);cursor:pointer}.pixel-button:hover,.pixel-button:focus-visible{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--color-ink-3)}.skills-section{display:grid;gap:var(--space-stack-section);padding:0 var(--space-4) var(--space-4);animation:reveal .36s ease-out;font-family:var(--type-face-body);min-height:var(--layout-shell-height);grid-template-rows:auto auto auto 1fr;align-content:start;overflow:hidden}.skills-title{margin-bottom:var(--space-0)}.skills-categories{display:grid;gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));justify-content:stretch;align-items:start}.skill-category-slot{display:grid;gap:var(--space-0)}.skill-card{position:relative;padding:var(--space-4) var(--space-3);background:linear-gradient(180deg,var(--steel-900),var(--color-ink-3));color:var(--text-light);text-align:center;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;min-height:var(--size-category-card-min-h);overflow:hidden}.skill-card:hover,.skill-card:focus-visible{transform:translate(-1px,-1px);border-color:var(--accent-amber);box-shadow:inset 0 0 0 2px #fec87359,3px 10px #394f57a6}.skill-card:hover .skill-glyph,.skill-card:focus-visible .skill-glyph{animation:glyphShrinkPulse .62s ease-in-out infinite}.skill-card.is-selected{border-color:var(--accent-red);box-shadow:inset 0 0 0 2px #fd997859,0 8px #394f578c;z-index:3}.skill-card.is-selected:after{content:"";position:absolute;inset:var(--space-0);pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(254,200,115,.12) 50%,transparent 100%);background-size:220% 100%;animation:sweep 2s linear infinite}.skill-card-header{display:flex;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-0)}.skill-card-header--stacked{flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);position:relative;z-index:2}.skill-glyph{display:inline-flex;align-items:center;justify-content:center;width:var(--size-glyph-box);height:var(--size-glyph-box);color:var(--accent-red);font-size:1.65rem;line-height:var(--type-line-tight)}.skill-card .ui-subtitle{color:var(--accent-amber);margin:var(--space-0)}.skill-unlocked-count{font-size:var(--type-size-caption-default);line-height:var(--type-line-tight);color:var(--parchment-100);text-transform:uppercase}.skill-selected-badge{position:absolute;right:var(--space-2);top:var(--space-2);font-size:var(--type-size-badge-default);line-height:var(--type-line-tight);text-transform:uppercase;color:var(--color-ink-3);background:var(--accent-amber);border:1px solid var(--accent-red);padding:var(--space-1) var(--space-2);z-index:3}.skill-card-light{position:absolute;inset:var(--space-0);opacity:0;pointer-events:none;background:linear-gradient(110deg,transparent 0%,rgba(254,200,115,.12) 42%,rgba(254,200,115,.2) 50%,rgba(254,200,115,.12) 58%,transparent 100%);transform:translate(-120%)}.skill-card-border-glow{position:absolute;inset:var(--space-0);border:1px solid transparent;pointer-events:none}.skill-card:hover .skill-card-light,.skill-card:focus-visible .skill-card-light,.skill-card.is-selected .skill-card-light{opacity:1;animation:skillLightSweep .92s ease}.skill-card:hover .skill-card-border-glow,.skill-card:focus-visible .skill-card-border-glow,.skill-card.is-selected .skill-card-border-glow{border-color:#fec87373}.skills-unlocked-header{display:flex;align-items:center;gap:var(--space-2);min-height:0}.skills-unlocked-label,.skills-unlocked-group{margin:var(--space-0);text-transform:uppercase;white-space:nowrap}.skills-unlocked-label{color:var(--text-light);font-size:var(--type-size-label-default)}.skills-unlocked-group{color:var(--accent-amber);font-size:var(--type-size-label-default)}.skills-unlocked-line{display:block;width:100%;height:var(--size-divider);background:linear-gradient(90deg,rgba(254,200,115,.9) 0%,rgba(254,200,115,.2) 65%,transparent 100%)}.skills-abilities-grid-wrap{min-height:0;overflow:auto;padding-right:var(--layout-grid-scrollbar-pad)}.skills-abilities-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);align-content:start;align-items:stretch}.skill-ability-card{padding:var(--space-3) var(--space-3) var(--space-3);background:linear-gradient(180deg,#394f57f2,#525162eb);color:var(--text-light);border-top-color:var(--border-dark);min-height:var(--size-ability-card-min-h);display:flex;flex-direction:column;position:relative;overflow:hidden}.skill-ability-card:after{content:"";position:absolute;inset:var(--space-0);pointer-events:none;opacity:0;background:linear-gradient(110deg,transparent 0%,rgba(254,200,115,.1) 42%,rgba(254,200,115,.16) 50%,rgba(254,200,115,.1) 58%,transparent 100%);transform:translate(-120%)}.skill-ability-card:not(.is-locked):not(.skill-ability-card--unlock):hover:after,.skill-ability-card:not(.is-locked):not(.skill-ability-card--unlock):focus-within:after{opacity:1;animation:skillLightSweep .9s ease}.skill-ability-card:not(.is-locked):not(.skill-ability-card--unlock):hover .skill-ability-badge .project-badge-icon,.skill-ability-card:not(.is-locked):not(.skill-ability-card--unlock):focus-within .skill-ability-badge .project-badge-icon{animation:badgeShrinkPulse .62s ease-in-out infinite}.skill-ability-card--unlock{border:2px dashed rgba(192,192,192,.7);box-shadow:none;background:linear-gradient(180deg,#22222273,#3a3a3a66);display:grid;align-self:stretch;padding:var(--space-0)}.skill-unlock-trigger{border:0;width:100%;height:100%;background:transparent;color:inherit;cursor:pointer;padding:var(--space-3)}.skill-unlock-content{display:grid;gap:var(--space-2);justify-items:center;align-content:center;text-align:center;height:100%;transition:transform .13s ease}.skill-ability-card--unlock:hover,.skill-ability-card--unlock:focus-within{border-color:#fec873d9;background:linear-gradient(180deg,#2d2d2d8c,#48484880)}.skill-ability-card--unlock:hover .skill-unlock-content,.skill-ability-card--unlock:focus-within .skill-unlock-content{transform:translateY(-1px)}.skill-ability-card--unlock:hover .skill-unlock-icon,.skill-ability-card--unlock:focus-within .skill-unlock-icon{animation:glyphPulse .56s steps(2,end) infinite}.skill-unlock-trigger:active .skill-unlock-content{transform:translateY(1px)}.skill-unlock-icon{font-size:1.8rem;color:#d0d0d0;line-height:1}.skill-unlock-label{font-family:var(--type-face-card-title);font-size:var(--type-size-card-title);line-height:var(--type-line-tight);text-transform:uppercase;color:#d0d0d0}.app-dialog{border:0;padding:var(--inset-panel);background:transparent;max-width:none;width:auto;overflow:visible}.app-dialog[open]{display:grid;place-items:center}.app-dialog::backdrop{background:#0a0810b8;animation:fadeIn .16s ease-out}.app-dialog-panel{background:linear-gradient(180deg,#1a1122fa,#394f57f5);color:var(--text-light);border-color:var(--border-dark);box-shadow:inset 0 0 0 2px #fec87347,0 8px 18px #130e1d7a;padding:var(--inset-dialog);max-height:calc(100vh - (var(--layout-page-padding) * 2));overflow:auto;animation:modalPopIn .22s cubic-bezier(.2,.9,.2,1)}.skill-modal{width:min(var(--size-dialog-skill-max),var(--dialog-responsive-width))}.skill-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.dialog-close-button{border:1px solid rgba(254,200,115,.6);background:#fd997838;color:var(--accent-amber);width:var(--size-dialog-close);height:var(--size-dialog-close);min-width:var(--size-dialog-close);min-height:var(--size-dialog-close);display:inline-flex;align-items:center;justify-content:center;padding:var(--space-0);line-height:0;font-size:22.5px;font-family:var(--font-display);cursor:pointer;vertical-align:middle}.dialog-close-button__icon{display:block;line-height:1}.dialog-close-button:hover,.dialog-close-button:focus-visible{border-color:var(--accent-amber);background:#fd997857}.skill-modal-body{border:2px solid rgba(254,200,115,.3);background:#140e1e8c;padding:var(--space-4)}.skill-modal-icon{display:inline-flex;margin-bottom:var(--space-2);color:var(--accent-amber);font-size:1.3rem}.skill-modal-body .ui-title{margin-bottom:var(--space-2)}.skill-modal-body p{margin:var(--space-0) var(--space-0) var(--space-2);color:var(--parchment-100)}.skill-modal-list{margin:var(--space-0) var(--space-0) var(--space-2);padding:var(--space-0);list-style:none;display:grid;gap:var(--space-2)}.skill-modal-option{width:100%;border:1px solid rgba(254,200,115,.35);background:#fd997814;color:var(--accent-amber);padding:var(--space-2) var(--space-2);text-transform:uppercase;font-size:var(--type-size-caption-default);letter-spacing:.03em;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);cursor:pointer;text-align:left}.skill-modal-option:hover,.skill-modal-option:focus-visible{border-color:#fec873bf;background:#fd997829}.skill-modal-check{font-size:1rem;line-height:1;color:transparent;transform:scale(.9);transition:transform .12s ease,color .12s ease}.skill-modal-option.is-selected{border-color:#fec873f2;background:#fec87333}.skill-modal-option.is-selected .skill-modal-check{color:var(--accent-amber);transform:scale(1)}.skill-modal-note{margin-bottom:var(--space-0);text-transform:uppercase;letter-spacing:.03em;font-size:var(--type-size-caption-default)}.skill-modal-note span{color:var(--accent-amber)}.skill-modal-footer{margin-top:var(--space-3);display:flex;justify-content:flex-end;gap:var(--space-2)}.skill-ability-card.is-locked{background:linear-gradient(180deg,#424242f0,#565656eb);border-color:#2a2a2a;box-shadow:inset 0 0 0 2px #aaa3,0 8px #1e1e1e8c}.skill-ability-header{display:flex;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.skill-ability-spacer{flex:1 1 0;min-height:var(--size-ability-spacer-min-h)}.skill-ability-badge{width:var(--size-ability-badge);height:var(--size-ability-badge);display:grid;place-items:center;border:2px solid var(--accent-red);background:linear-gradient(180deg,var(--steel-900),var(--color-ink-3));box-shadow:inset 0 0 0 2px #fec87359}.skill-ability-card.is-locked .skill-ability-badge{border-color:#8f8f8f;background:linear-gradient(180deg,#2d2d2d,#4a4a4a);box-shadow:inset 0 0 0 2px #b4b4b440}.skill-ability-badge .project-badge-icon{transform:scale(1.45)}.skill-ability-card.is-locked .project-badge-icon{filter:grayscale(1) brightness(.8) contrast(.9)}.skill-ability-rank{margin-left:auto;text-align:right}.skill-ability-rank .stat-label{margin-bottom:var(--space-1)}.skill-ability-title{margin:var(--space-0) var(--space-0) var(--space-2);color:var(--accent-amber);font-family:var(--type-face-card-title);font-size:var(--type-size-card-title);line-height:var(--type-line-tight);text-transform:uppercase}.skill-ability-card.is-locked .skill-ability-title{color:#d2d2d2}.skill-ability-description{margin:var(--space-0);font-size:var(--type-size-body-compact);line-height:var(--type-line-relaxed);color:var(--parchment-100)}.skill-ability-card.is-locked .skill-ability-description,.skill-ability-card.is-locked .stat-label,.skill-ability-card.is-locked .stat-value,.skill-ability-card.is-locked .skill-ability-footer{color:#b8b8b8}.skill-ability-footer{margin-top:var(--space-3);display:flex;justify-content:space-between;align-items:center;font-size:var(--type-size-caption-default);color:var(--parchment-100)}.skill-ability-active{color:var(--accent-red);font-weight:var(--type-weight-semibold);letter-spacing:.03em}.skill-ability-locked{color:#9e9e9e;font-weight:var(--type-weight-semibold);letter-spacing:.03em}.projects-section{display:grid;gap:var(--space-3);animation:reveal .36s ease-out}.quests-section{display:grid;gap:var(--space-stack-section);padding:0 var(--space-4) var(--space-4);animation:reveal .36s ease-out;min-height:var(--layout-shell-height);grid-template-rows:auto 1fr;overflow:hidden}.quests-grid-wrap{min-height:0;overflow:auto;padding-right:var(--layout-grid-scrollbar-pad)}.quests-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);align-content:start;align-items:stretch}.quest-card .skill-ability-title{margin-bottom:var(--space-2)}.quest-company{margin:var(--space-0) var(--space-0) var(--space-1);color:var(--parchment-100);font-size:var(--type-size-caption-default);text-transform:uppercase}.quest-highlight{color:var(--accent-amber);font-family:var(--type-face-label);font-size:var(--type-size-caption-default);line-height:var(--type-line-normal)}.quest-objective-prefix{color:var(--accent-amber);text-transform:uppercase}.quest-card-footer{margin-top:var(--space-4)}.quest-difficulty-block{display:grid;gap:var(--space-1)}.quest-difficulty-block .stat-label,.quest-difficulty-block .stat-value{display:block}.quest-state-button{min-width:var(--size-quest-button-min-w);text-align:center;padding:var(--space-2) var(--space-2);font-size:var(--type-size-caption-default)}.quest-modal{width:min(var(--size-dialog-quest-max),var(--dialog-responsive-width));max-height:100%;overflow-y:auto;overscroll-behavior:contain}.quest-modal-dialog{inset:var(--space-0);width:calc(100vw - (var(--space-4) * 2));height:calc(100dvh - (var(--space-6) * 2));margin:var(--space-6) auto;padding:var(--space-0)}.quest-modal-header{display:grid;gap:var(--space-2)}.quest-modal-header-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.quest-modal-header .ui-label{color:var(--parchment-100)}.quest-modal-title{margin:var(--space-0)}.quest-modal-separator{display:block;width:100%;height:var(--size-divider);margin:var(--space-6) var(--space-0);background:linear-gradient(90deg,rgba(254,200,115,.9) 0%,rgba(254,200,115,.2) 65%,transparent 100%)}.quest-modal-section-heading{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.quest-modal-section-heading .material-symbols-outlined{color:var(--accent-amber);font-size:1rem}.quest-modal-description{margin:var(--space-0) var(--space-0) var(--space-6);color:var(--parchment-100);line-height:var(--type-line-relaxed)}.quest-role-list,.quest-achievement-list{display:grid;gap:var(--space-3);margin:var(--space-0) var(--space-0) var(--space-6)}.quest-role,.quest-achievement{padding:var(--space-3);border:1px solid rgba(254,200,115,.28);background:#140e1e59}.quest-role h4,.quest-achievement h4,.quest-achievement p{margin:var(--space-0)}.quest-role h4,.quest-achievement h4{color:var(--accent-amber);font-family:var(--type-face-card-title);font-size:var(--type-size-body-compact);line-height:var(--type-line-normal)}.quest-role .stat-label,.quest-achievement .stat-label{margin:var(--space-2) var(--space-0)}.quest-role>p:last-child,.quest-achievement>p:last-child{margin-top:var(--space-2);color:var(--parchment-100);line-height:var(--type-line-relaxed)}.quest-achievement-metric{margin-top:var(--space-2)!important;color:var(--accent-amber)!important;font-family:var(--type-face-label)}.quest-modal .tag-wrap{margin-bottom:var(--space-7)}.quest-complete-button{width:100%;text-align:center}.contact-modal{width:min(var(--size-dialog-contact-max),var(--dialog-responsive-width))}.contact-modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-4)}.contact-modal-header .ui-title{margin:var(--space-0)}.contact-option-list{display:grid;gap:var(--space-2)}.contact-option{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-3);text-decoration:none;border:1px solid rgba(254,200,115,.35);background:#fd997814;color:var(--text-light);padding:var(--space-2);transition:border-color .12s ease,background .12s ease,transform .12s ease}.contact-option:hover,.contact-option:focus-visible{border-color:#fec873d1;background:#fd997829;transform:translate(1px)}.contact-option-copy{display:grid;gap:var(--space-1);min-width:0}.contact-option-title{font-family:var(--type-face-card-title);font-size:var(--type-size-card-title);line-height:var(--type-line-tight);color:var(--accent-amber);text-transform:uppercase}.contact-option-detail{font-size:var(--type-size-body-compact);line-height:var(--type-line-normal);color:var(--parchment-100);overflow-wrap:anywhere}.contact-option-caret{font-size:1.25rem;line-height:1;color:var(--accent-amber)}.projects-layout{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:var(--space-3)}.project-roster{padding:var(--space-4);background:#394f57d1;font-family:var(--type-face-body)}.project-roster ul{margin:var(--space-3) var(--space-0) var(--space-0);padding:var(--space-0);list-style:none;display:grid;gap:var(--space-2)}.project-row{width:100%;text-align:left;border:1px solid transparent;background:#b9cbc914;color:var(--text-light);padding:var(--space-2) var(--space-2);display:flex;align-items:center;gap:var(--space-2);cursor:pointer;transition:border-color .12s ease,transform .12s ease,background .12s ease;font-family:var(--type-face-body);font-size:var(--type-size-body-compact);line-height:var(--type-line-normal)}.project-row:hover,.project-row:focus-visible{border-color:var(--accent-amber);background:#fec87326;transform:translate(1px)}.project-row.is-selected{border-color:var(--accent-red);background:#fd997833}.project-index{font-family:var(--type-face-label);font-size:var(--type-size-caption-default);color:var(--accent-amber);opacity:.9}.project-terminal{position:relative;padding:var(--space-4) var(--space-4);padding-bottom:var(--space-9);color:var(--text-light);background:linear-gradient(180deg,#525162eb,#394f57e0);animation:terminalReveal .22s ease-out;font-family:var(--type-face-body)}.project-terminal .ui-subtitle{font-family:var(--type-face-card-title)}.project-terminal p{margin-top:var(--space-0);font-size:var(--type-size-body-compact);line-height:var(--type-line-relaxed)}.project-terminal-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.project-badge{position:absolute;right:var(--space-4);bottom:var(--space-3);display:grid;place-items:center;width:var(--size-project-badge);height:var(--size-project-badge);border:2px solid var(--accent-red);box-shadow:inset 0 0 0 2px #fec87373;background:linear-gradient(180deg,var(--steel-900),var(--color-ink-3))}.project-badge-icon{width:var(--size-project-badge-icon);height:var(--size-project-badge-icon);background-image:url(/pixel-art-ui-elements/Icons.png);background-repeat:no-repeat;background-size:96px 304px;image-rendering:pixelated;transform:scale(2.025)}.project-badge-icon--shield{background-position:-16px -128px}.project-badge-icon--sword{background-position:0 -128px}.project-badge-icon--ring{background-position:-80px -128px}.project-badge-icon--pendant{background-position:0 -144px}.project-badge-icon--armor{background-position:-80px -96px}.project-badge-icon--scroll-purple{background-position:-48px -144px}.project-badge-icon--scroll-blue{background-position:-64px -144px}.project-badge-icon--scroll-red{background-position:-80px -144px}.project-status{margin-left:auto;font-size:var(--type-size-badge-default);line-height:var(--type-line-tight);font-weight:var(--type-weight-label);text-transform:uppercase;color:var(--color-ink-3);background:var(--accent-amber);border:1px solid var(--accent-red);padding:var(--space-1) var(--space-2)}.project-empty{color:var(--parchment-100);opacity:.92}.tag-wrap{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tag-chip{font-size:var(--type-size-caption-default);line-height:var(--type-line-tight);border:1px solid var(--accent-amber);color:var(--accent-amber);background:#fec8731f;padding:var(--inset-chip-y) var(--inset-chip-x)}.project-links{margin-top:var(--space-3);display:flex;gap:var(--space-3)}.project-links a,.contact-list a{color:var(--accent-amber);text-underline-offset:3px}.project-links a:hover,.contact-list a:hover{color:var(--accent-red)}.contact-list{margin:var(--space-0);padding-left:var(--space-5);display:grid;gap:var(--space-2)}@keyframes reveal{0%{transform:translateY(5px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes glyphPulse{0%{transform:translateY(0)}50%{transform:translateY(-1px)}to{transform:translateY(0)}}@keyframes glyphShrinkPulse{0%{transform:scale(1)}50%{transform:scale(.88)}to{transform:scale(1)}}@keyframes badgeShrinkPulse{0%{transform:scale(1.45)}50%{transform:scale(1.25)}to{transform:scale(1.45)}}@keyframes sweep{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes skillLightSweep{0%{transform:translate(-120%)}to{transform:translate(120%)}}@keyframes riseFromBottom{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes detailSlideDown{0%{transform:translateY(-48px);opacity:.82}to{transform:translateY(0);opacity:1}}@keyframes detailSlideUp{0%{transform:translateY(0);opacity:1}to{transform:translateY(-72px);opacity:.74}}@keyframes terminalReveal{0%{transform:translate(10px);opacity:.92}to{transform:translate(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalPopIn{0%{transform:translateY(8px) scale(.985);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@media(max-width:850px){.layout-grid{grid-template-columns:1fr;padding-top:var(--layout-header-gap);min-height:auto}.page-header-menu-button.pixel-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:var(--space-2) var(--space-2);font-size:var(--type-size-caption-default)}.side-nav--desktop{display:none}.side-nav-dialog{padding:0;width:100vw;height:100vh;height:100dvh;min-height:100svh;max-width:none}.side-nav-dialog.app-dialog{padding:0!important}.side-nav-dialog[open]{place-items:stretch}.side-nav--dialog{display:flex;width:100vw;min-height:100vh;min-height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:calc(var(--space-4) - 3px);padding-bottom:calc(var(--space-6) + env(safe-area-inset-bottom));box-shadow:none}.side-nav--dialog .sidebar-stats{margin-bottom:var(--space-6)}.side-nav--dialog .sidebar-avatar{width:75%;margin-left:auto;margin-right:auto;display:block}.nav-close-inline.pixel-button{display:inline-block}.page-header{margin:0;padding:var(--space-4);background:linear-gradient(180deg,#191022eb,#191022c7 70%,#19102200)}.character-sheet,.skills-section,.quests-section{padding:0 var(--space-3) var(--space-3)}.projects-layout{grid-template-columns:1fr}.quests-section{min-height:auto;grid-template-rows:auto auto;overflow:visible}.quests-grid-wrap{overflow:visible;padding-right:var(--space-0)}.quests-grid{grid-template-columns:1fr}.project-roster{margin-bottom:var(--space-1)}.character-grid{grid-template-columns:1fr}.character-top-row{grid-template-columns:minmax(0,1fr) minmax(140px,180px);grid-template-areas:"portrait equipment" "stats stats"}.character-top-side{min-width:0}.stats-grid,.character-actions{grid-template-columns:1fr}.skills-section{min-height:auto;grid-template-rows:auto auto auto;overflow:visible}.skills-categories{grid-template-columns:1fr}.skills-abilities-grid-wrap{overflow:visible;padding-right:var(--space-0)}.skills-abilities-grid{grid-template-columns:1fr}.app-dialog:not(.side-nav-dialog){padding:var(--space-1)}.app-dialog-panel:not(.side-nav--dialog){padding:var(--space-4);max-height:calc(100vh - (var(--space-2) * 4))}}@media(max-width:1200px)and (min-width:851px){.layout-grid{grid-template-columns:1fr;padding-top:var(--layout-header-gap)}.page-header-menu-button.pixel-button{display:inline-block}.side-nav--desktop{display:flex;position:fixed;left:0;top:0;height:100vh;width:320px;z-index:40;transform:translate(calc(-100% - var(--space-4)));transition:transform .22s ease;overflow:auto}.side-nav--desktop.is-open{transform:translate(0)}.side-nav-dialog{display:none}.nav-close-inline.pixel-button{display:inline-block}.page-header{margin:0;padding:var(--space-4);background:linear-gradient(180deg,#191022eb,#191022c7 70%,#19102200)}.character-top-row{grid-template-columns:minmax(0,1fr) minmax(170px,220px);grid-template-areas:"portrait equipment" "stats stats"}.character-stats{min-width:0}.skills-categories{grid-template-columns:repeat(3,minmax(0,1fr))}.skills-abilities-grid,.quests-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1555px)and (min-width:1201px){.character-top-row{grid-template-columns:var(--character-portrait-col) minmax(0,1fr);grid-template-areas:"portrait stats" "portrait equipment"}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
