@layer reset{*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{text-size-adjust:none;-webkit-text-size-adjust:none}body{line-height:1.5}img,picture,video,canvas,svg{display:block;max-inline-size:100%}input,button,textarea,select{font:inherit;letter-spacing:inherit;word-spacing:inherit;color:currentColor}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ol,ul{list-style:none}:not([class]){h1&,h2&,h3&,h4&,h5&,h6&{margin-block:.75em;line-height:1.25;text-wrap:balance;letter-spacing:-.05ch}p&,ol&,ul&{margin-block:1em}ol&,ul&{padding-inline-start:1.5em;list-style:revert}li&{margin-block:.5em}}}:root{scrollbar-gutter:stable;color-scheme:light dark;--breakpoint-xs: 320px;--breakpoint-sm: 430px;--breakpoint-base: 550px;--breakpoint-md: 768px;--breakpoint-lg: 900px;--breakpoint-xl: 1024px;--breakpoint-2xl: 1600px;--container-xs: 100%;--container-sm: 95%;--container-base: 90%;--container-md: 85%;--container-lg: 80%;--container-xl: 75%;--container-2xl: 70%;--font-logo: "Unbounded", "Climate Crisis", sans-serif;--font-body: "Inter", sans-serif;--font-heading: "Playfair Display", serif;--font-alt-heading: "Fraunces", serif;--text-xxs: clamp(.5rem, .4rem + .227vw, .705rem);--text-xs: clamp(.75rem, .705rem + .227vw, .875rem);--text-sm: clamp(.875rem, .83rem + .227vw, 1rem);--text-base: clamp(1rem, .955rem + .227vw, 1.125rem);--text-lg: clamp(1.125rem, 1.08rem + .227vw, 1.25rem);--text-xl: clamp(1.25rem, 1.159rem + .455vw, 1.5rem);--text-2xl: clamp(1.5rem, 1.318rem + .909vw, 2rem);--text-3xl: clamp(2rem, 1.636rem + 1.818vw, 3rem);--text-4xl: clamp(3rem, 1.636rem + 1.818vw, 6rem);--text-5xl: clamp(4rem, 1.636rem + 1.818vw, 9rem);--leading-tight: 1.2;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--tracking-tight: -.015em;--tracking-normal: 0;--tracking-wide: .025em;--tracking-wider: .05em;--tracking-widest: .1em;--space-xxs: clamp(.5rem, 1vw, .75rem);--space-xs: clamp(.75rem, 2vw, 1rem);--space-sm: clamp(1rem, 3vw, 1.5rem);--space-md: clamp(1.5rem, 4vw, 2rem);--space-lg: clamp(2rem, 5vw, 3rem);--space-xl: clamp(3rem, 7vw, 4rem);--space-2xl: clamp(4rem, 10vw, 6rem);--card-height: calc(min( calc(100vw - 4rem) , 26rem )*1.2) ;--card-width: min( calc(100vw - 4rem) , 26rem );--card-gutter: calc(1.3rem * 3);--angle: -2deg}:root{--color-alfama-yellow-100: hsl(46, 88%, 96%);--color-alfama-yellow-200: hsl(46, 88%, 86%);--color-alfama-yellow-300: hsl(46, 88%, 76%);--color-alfama-yellow-500: hsl(46, 88%, 66%);--color-alfama-yellow-700: hsl(46, 88%, 56%);--color-alfama-yellow-800: hsl(46, 88%, 46%);--color-alfama-yellow-900: hsl(46, 88%, 36%);--color-tram-yellow-100: hsl(46, 94%, 89%);--color-tram-yellow-200: hsl(46, 94%, 79%);--color-tram-yellow-300: hsl(46, 94%, 69%);--color-tram-yellow-500: hsl(46, 94%, 59%);--color-tram-yellow-700: hsl(46, 94%, 49%);--color-tram-yellow-800: hsl(46, 94%, 39%);--color-tram-yellow-900: hsl(46, 94%, 29%);--color-roofs-red-100: hsl(0, 93%, 95%);--color-roofs-red-200: hsl(0, 93%, 85%);--color-roofs-red-300: hsl(0, 93%, 75%);--color-roofs-red-500: hsl(0, 93%, 45%);--color-roofs-red-700: hsl(0, 93%, 35%);--color-roofs-red-800: hsl(0, 93%, 25%);--color-roofs-red-900: hsl(0, 93%, 15%);--color-vila-franca-red-100: hsl(358, 62%, 89%);--color-vila-franca-red-200: hsl(358, 62%, 79%);--color-vila-franca-red-300: hsl(358, 62%, 69%);--color-vila-franca-red-500: hsl(358, 62%, 39%);--color-vila-franca-red-700: hsl(358, 62%, 29%);--color-vila-franca-red-800: hsl(358, 62%, 19%);--color-vila-franca-red-900: hsl(358, 62%, 9%);--color-sky-blue-100: hsl(207, 78%, 91%);--color-sky-blue-200: hsl(207, 78%, 81%);--color-sky-blue-300: hsl(207, 78%, 71%);--color-sky-blue-500: hsl(207, 78%, 51%);--color-sky-blue-700: hsl(207, 78%, 41%);--color-sky-blue-800: hsl(207, 78%, 31%);--color-sky-blue-900: hsl(207, 78%, 21%);--color-tagus-blue-100: hsl(211, 46%, 88%);--color-tagus-blue-200: hsl(211, 46%, 78%);--color-tagus-blue-300: hsl(211, 46%, 68%);--color-tagus-blue-500: hsl(211, 46%, 48%);--color-tagus-blue-700: hsl(211, 46%, 38%);--color-tagus-blue-800: hsl(211, 46%, 28%);--color-tagus-blue-900: hsl(211, 46%, 18%);--color-white-buildings-100: hsl(0, 0%, 100%);--color-white-buildings-200: hsl(0, 0%, 98%);--color-white-buildings-300: hsl(0, 0%, 97%);--color-white-buildings-500: hsl(0, 0%, 96%);--color-white-buildings-700: hsl(0, 0%, 86%);--color-white-buildings-800: hsl(0, 0%, 76%);--color-white-buildings-900: hsl(0, 0%, 66%);--color-cobalt-azulejo-blue-100: hsl(215, 60%, 89%);--color-cobalt-azulejo-blue-200: hsl(215, 60%, 79%);--color-cobalt-azulejo-blue-300: hsl(215, 60%, 69%);--color-cobalt-azulejo-blue-500: hsl(215, 60%, 39%);--color-cobalt-azulejo-blue-700: hsl(215, 60%, 29%);--color-cobalt-azulejo-blue-800: hsl(215, 60%, 19%);--color-cobalt-azulejo-blue-900: hsl(215, 60%, 9%);--color-azure-azulejo-blue-100: hsl(205, 52%, 95%);--color-azure-azulejo-blue-200: hsl(205, 52%, 85%);--color-azure-azulejo-blue-300: hsl(205, 52%, 75%);--color-azure-azulejo-blue-500: hsl(205, 52%, 55%);--color-azure-azulejo-blue-700: hsl(205, 52%, 45%);--color-azure-azulejo-blue-800: hsl(205, 52%, 35%);--color-azure-azulejo-blue-900: hsl(205, 52%, 25%);--color-alfama-pastel-pink-100: hsl(358, 64%, 98%);--color-alfama-pastel-pink-200: hsl(358, 64%, 88%);--color-alfama-pastel-pink-300: hsl(358, 64%, 78%);--color-alfama-pastel-pink-500: hsl(358, 64%, 68%);--color-alfama-pastel-pink-700: hsl(358, 64%, 58%);--color-alfama-pastel-pink-800: hsl(358, 64%, 48%);--color-alfama-pastel-pink-900: hsl(358, 64%, 38%);--color-alfama-pastel-green-100: hsl(146, 44%, 93%);--color-alfama-pastel-green-200: hsl(146, 44%, 83%);--color-alfama-pastel-green-300: hsl(146, 44%, 73%);--color-alfama-pastel-green-500: hsl(146, 44%, 53%);--color-alfama-pastel-green-700: hsl(146, 44%, 43%);--color-alfama-pastel-green-800: hsl(146, 44%, 33%);--color-alfama-pastel-green-900: hsl(146, 44%, 23%);--color-alfama-pastel-blue-100: hsl(211, 49%, 96%);--color-alfama-pastel-blue-200: hsl(211, 49%, 86%);--color-alfama-pastel-blue-300: hsl(211, 49%, 76%);--color-alfama-pastel-blue-500: hsl(211, 49%, 56%);--color-alfama-pastel-blue-700: hsl(211, 49%, 46%);--color-alfama-pastel-blue-800: hsl(211, 49%, 36%);--color-alfama-pastel-blue-900: hsl(211, 49%, 26%);--color-alfama-pastel-lilac-100: hsl(274, 30%, 95%);--color-alfama-pastel-lilac-200: hsl(274, 30%, 85%);--color-alfama-pastel-lilac-300: hsl(274, 30%, 75%);--color-alfama-pastel-lilac-500: hsl(274, 30%, 55%);--color-alfama-pastel-lilac-700: hsl(274, 30%, 45%);--color-alfama-pastel-lilac-800: hsl(274, 30%, 35%);--color-alfama-pastel-lilac-900: hsl(274, 30%, 25%);--accent-color-100: hsl(17, 72%, 98%);--accent-color-200: hsl(17, 72%, 88%);--accent-color-300: hsl(17, 72%, 78%);--accent-color-500: hsl(17, 72%, 48%);--accent-color-700: hsl(17, 72%, 38%);--accent-color-800: hsl(17, 72%, 28%);--accent-color-900: hsl(17, 72%, 18%);--color-dark-bg: hsl(0, 0%, 12%);--color-light-bg: var(--neutral-color-100);--color-text-on-light: var(--neutral-color-900);--color-text-on-dark: var(--neutral-color-100);--color-border-subtle: var(--neutral-color-500);--color-success: var(--color-alfama-pastel-green-500);--color-warning: var(--color-tram-yellow-500);--color-error: var(--color-roofs-red-500);--color-info: var(--color-sky-blue-500);--color-primary: var(--color-sky-blue-500);--color-primary-dark: var(--color-cobalt-azulejo-blue-500);--color-primary-light: var(--color-azure-azulejo-blue-500);--color-accent: var(--accent-color-500);--color-secondary: var(--color-tagus-blue);--spacing-unit: .5rem;--space-xs: var(--spacing-unit);--space-sm: calc(var(--spacing-unit) * 2);--space-md: calc(var(--spacing-unit) * 3);--space-lg: calc(var(--spacing-unit) * 4);--space-xl: calc(var(--spacing-unit) * 6);--color-surface: var(--color-light-bg);--color-surface-variant: var(--neutral-color-300);--color-surface-variant-dark: var(--neutral-color-500);--color-text-primary: var(--color-text-on-light);--color-text-secondary: var(--neutral-color-500);--color-text-inverse: var(--color-text-on-dark);--color-border: var(--neutral-color-500);--color-border-strong: var(--neutral-color-700);--radius-none: 0;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 6px;--radius-full: 9999px;--shadow-none: none;--shadow-subtle: 0 1px 2px rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1);--font-weight-medium: 500;--color-success-light: hsl(146, 44%, 93%);--color-success-dark: hsl(146, 44%, 23%);--color-error-light: hsl(0, 93%, 95%);--color-error-dark: hsl(0, 93%, 25%);--space-xxs: calc(var(--spacing-unit) * .5);--neutral-color-100: hsl(0, 0%, 98%);--neutral-color-300: hsl(0, 0%, 76%);--neutral-color-500: hsl(0, 0%, 50%);--neutral-color-700: hsl(0, 0%, 26%);--neutral-color-900: hsl(0, 0%, 12%);--bgchange1: var(--color-cobalt-azulejo-blue);--bgchange2: var(--color-tagus-blue);--bgchange3: var(--accent-color-dark);--bgchange4: var(--color-vila-franca-red);--bgchange5: var(--color-text-on-light);--bgchange6: var(--color-dark-bg)}main{overflow-x:hidden}section{min-height:80vh;display:flex;flex-direction:column;justify-content:space-around}.container{width:var(--container-desktop);max-width:90%;margin:0 auto;padding:1rem}@media (max-width: 429px){.container{width:var(--container-xs);padding:.25rem}}@media (min-width: 430px) and (max-width: 549px){.container{width:var(--container-sm);padding:.5rem}}@media (min-width: 550px) and (max-width: 767px){.container{width:var(--container-base);padding:.75rem}}@media (min-width: 768px) and (max-width: 899px){.container{width:var(--container-md);padding:1rem}}@media (min-width: 900px) and (max-width: 1023px){.container{width:var(--container-lg);padding:1rem}}@media (min-width: 1024px) and (max-width: 1599px){.container{width:var(--container-xl);padding:1rem}}@media (min-width: 1600px){.container{width:var(--container-2xl);padding:1rem}}body{background-color:var(--color-light-bg)}.brutalist-element{box-shadow:5px 5px var(--color-dark-bg);border:1px solid var(--color-border-strong);transition:all .15s ease}.brutalist-interactive{cursor:pointer}.brutalist-interactive:hover,.brutalist-interactive:focus{transform:translateY(-2px) translate(-2px);box-shadow:9px 9px var(--color-dark-bg);border-color:var(--color-accent);outline:none}.brutalist-card{box-shadow:5px 5px var(--color-dark-bg);border:1px solid var(--color-border-strong);background:var(--color-surface);border-radius:var(--radius-none);transition:all .15s ease}.brutalist-card.brutalist-interactive:hover,.brutalist-card.brutalist-interactive:focus{transform:translateY(-2px) translate(-2px);box-shadow:9px 9px var(--color-dark-bg);border-color:var(--color-accent)}.brutalist-button{box-shadow:5px 5px var(--color-dark-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-none);transition:all .15s ease;cursor:pointer;text-transform:uppercase;font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-wide)}.brutalist-button:hover:not(:disabled),.brutalist-button:focus:not(:disabled){transform:translateY(-2px) translate(-2px);box-shadow:9px 9px var(--color-dark-bg);border-color:var(--color-accent);outline:none}.brutalist-button:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:5px 5px var(--color-dark-bg)!important;border-color:var(--color-border-strong)!important}.brutalist-input{box-shadow:5px 5px var(--color-dark-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-none);background:var(--color-surface);transition:all .15s ease}.brutalist-input:focus{transform:translateY(-2px) translate(-2px);box-shadow:9px 9px var(--color-dark-bg);border-color:var(--color-accent);outline:none}.brutalist-input.error{border-color:var(--color-error)}.brutalist-input.error:focus{border-color:var(--color-error);box-shadow:9px 9px var(--color-error)}.field-error{border-color:var(--color-error);border-width:2px;background:var(--color-error-light);position:relative}.field-error:focus{transform:translateY(-2px) translate(-2px);box-shadow:9px 9px var(--color-error);outline:2px solid var(--color-error);outline-offset:2px}.field-label.has-error:before{content:"⚠️";margin-right:var(--space-xs);font-size:var(--text-sm);color:var(--color-error)}.field-label.has-critical-error:before{content:"❌";margin-right:var(--space-xs);font-size:var(--text-sm);color:var(--color-error)}.error-message{display:block;margin-top:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--color-error-light);border:2px solid var(--color-error);border-radius:var(--radius-none);color:var(--color-error-dark);font-size:var(--text-sm);font-weight:var(--font-weight-medium);box-shadow:3px 3px var(--color-error)}.error-message[role=alert]{animation:errorPulse .5s ease-out}@keyframes errorPulse{0%{transform:scale(.95);opacity:.8}50%{transform:scale(1.02);opacity:1}to{transform:scale(1);opacity:1}}.error-summary{background:var(--color-error-light);border:3px solid var(--color-error);border-radius:var(--radius-none);padding:var(--space-md);margin-bottom:var(--space-lg);box-shadow:5px 5px var(--color-error)}.error-summary h3{margin:0 0 var(--space-sm) 0;color:var(--color-error-dark);font-size:var(--text-lg);font-weight:var(--font-weight-bold)}.error-summary-list{list-style:none;padding:0;margin:0}.error-summary-item{margin-bottom:var(--space-xs)}.error-link{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:transparent;border:2px solid var(--color-error);border-radius:var(--radius-none);color:var(--color-error-dark);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .15s ease;width:100%;text-align:left}.error-link:hover,.error-link:focus{background:var(--color-error);color:var(--color-surface);transform:translateY(-2px) translate(-2px);box-shadow:5px 5px var(--color-error-dark)}.error-link:before{content:"→";font-weight:700;margin-right:var(--space-xs)}.section-tab.has-errors{border-color:var(--color-error);position:relative}.section-tab.has-errors:after{content:"!";position:absolute;top:-8px;right:-8px;width:20px;height:20px;background:var(--color-error);color:var(--color-surface);border:2px solid var(--color-surface);border-radius:50%;font-size:var(--text-xs);font-weight:var(--font-weight-bold);display:flex;align-items:center;justify-content:center;box-shadow:2px 2px var(--color-error-dark)}.section-tab.has-errors:hover:after{transform:translateY(-1px) translate(-1px);box-shadow:3px 3px var(--color-error-dark)}.progress-bar.has-errors .progress-fill{background:linear-gradient(90deg,var(--color-accent) 0%,var(--color-accent) 70%,var(--color-error) 70%,var(--color-error) 100%)}.progress-bar.has-errors{border:2px solid var(--color-error)}.form-section.has-errors{border-left:4px solid var(--color-error);padding-left:var(--space-md)}.form-section.has-errors .section-title{color:var(--color-error-dark)}.form-field:has(.field-error:focus){outline:3px solid var(--color-error);outline-offset:3px;border-radius:var(--radius-none)}.sr-error-info{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.error-shake{animation:errorShake .5s ease-in-out}@keyframes errorShake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@media (prefers-contrast: high){.error-message,.error-summary,.field-error{border-width:3px}}@media (prefers-reduced-motion: reduce){.error-message[role=alert],.error-shake{animation:none}.field-error:focus,.error-link:hover,.section-tab.has-errors:hover:after{transform:none}}.brutalist-element--small{box-shadow:3px 3px var(--color-dark-bg);border:1px solid var(--color-border-strong)}.brutalist-element--small.brutalist-interactive:hover,.brutalist-element--small.brutalist-interactive:focus{transform:translateY(-1px) translate(-1px);box-shadow:5px 5px var(--color-dark-bg)}.brutalist-element--large{box-shadow:8px 8px var(--color-dark-bg);border:2px solid var(--color-border-strong)}.brutalist-element--large.brutalist-interactive:hover,.brutalist-element--large.brutalist-interactive:focus{transform:translateY(-3px) translate(-3px);box-shadow:12px 12px var(--color-dark-bg)}.brutalist-element--accent{border-color:var(--color-accent)}.brutalist-element--subtle{box-shadow:2px 2px var(--color-dark-bg);border:1px solid var(--color-border)}.brutalist-element--subtle.brutalist-interactive:hover,.brutalist-element--subtle.brutalist-interactive:focus{transform:translateY(-1px) translate(-1px);box-shadow:4px 4px var(--color-dark-bg);border-color:var(--color-accent)}.brutalist-container{box-shadow:5px 5px var(--color-dark-bg);border:1px solid var(--color-border-strong);background:var(--color-surface);border-radius:var(--radius-none)}.brutalist-cta{box-shadow:5px 5px var(--color-dark-bg);border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-text-inverse);cursor:pointer;transition:all .15s ease}.brutalist-cta:hover,.brutalist-cta:focus{transform:translateY(-2px) translate(-2px);box-shadow:9px 9px var(--color-dark-bg);background:var(--color-text-on-dark);color:var(--color-accent);outline:none}.brutalist-tab{box-shadow:3px 3px var(--color-dark-bg);border:1px solid var(--color-border-strong);background:var(--color-surface);cursor:pointer;transition:all .15s ease}.brutalist-tab:hover,.brutalist-tab:focus{transform:translateY(-1px) translate(-1px);box-shadow:5px 5px var(--color-dark-bg);border-color:var(--color-accent);outline:none}.brutalist-tab.active{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-text-inverse)}.brutalist-tab.active:hover,.brutalist-tab.active:focus{background:var(--color-accent);color:var(--color-text-inverse)}.brutalist-tab.completed{border-color:var(--color-success);background:var(--color-surface-variant)}.brutalist-tab.has-errors{border-color:var(--color-error);background:var(--color-error-light)}
