/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
:root{--color-bg:#e8e0d4;--color-surface:#f4efe6;--color-surface-alt:#ece5d8;--color-ink:#1a1612;--color-ink-muted:#6b6055;--color-accent:#1a5fbf;--color-accent-hover:#144da3;--color-accent-light:#e8f0fc;--color-border:#1a1612;--color-border-light:rgba(26,22,18,0.14);--shadow-sm:2px 2px 0 var(--color-border);--shadow-md:3px 3px 0 var(--color-border);--shadow-lg:5px 5px 0 var(--color-border);--font-serif:'Newsreader',Georgia,serif;--font-mono:'IBM Plex Mono',monospace;--font-sans:'IBM Plex Sans',system-ui,sans-serif;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:0.875rem;--space-lg:1.5rem;--space-xl:2.25rem;--space-2xl:3.5rem;}*,*::before,*::after{box-sizing:border-box;}html,body{margin:0;padding:0;height:100%;overflow:hidden;}body{background:var(--color-bg);font-family:var(--font-sans);color:var(--color-ink);line-height:1.6;}#toolbar-bar,.toolbar-tray,.toolbar-tab{display:none !important;}body.toolbar-fixed{padding-top:0 !important;}.dialog-off-canvas-main-canvas,.layout-container{padding:0;margin:0;max-width:none;}.portfolio-window__body .grid-full{display:block;}.portfolio-window__body .wide-content{width:100%;margin-inline-start:0;margin-inline-end:0;}.portfolio-window__body .layout-container,.portfolio-window__body .layout,.portfolio-window__body .layout__region,.portfolio-window__body .block,.portfolio-window__body article.node{width:100%;max-width:100%;min-width:0;}.block-page-title-block{display:none;}a{color:var(--color-accent);text-decoration:none;}a:hover{color:var(--color-accent-hover);text-decoration:underline;}a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;}.layout-desktop{display:flex;height:100vh;overflow:hidden;background:var(--color-bg);}.layout-main{flex:1;overflow:hidden;display:flex;flex-direction:column;padding:var(--space-md);padding-right:0;min-width:0;position:relative;}.portfolio-window{display:flex;flex-direction:column;flex:1;overflow:hidden;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:8px 8px 20px 8px;box-shadow:var(--shadow-lg);position:relative;z-index:1;}.portfolio-window__titlebar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-surface-alt);border-bottom:1.5px solid var(--color-border);border-radius:8px 8px 0 0;flex-shrink:0;user-select:none;}.portfolio-window__dots{display:flex;gap:6px;flex-shrink:0;}.portfolio-window__dot{width:12px;height:12px;border-radius:50%;border:1.5px solid var(--color-border);cursor:pointer;position:relative;}.portfolio-window__dot--close{background:#ff5f57;}.portfolio-window__dot--min{background:#febc2e;}.portfolio-window__dot--max{background:#28c840;}.portfolio-window__dot::after{content:'';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:7px;font-weight:700;color:rgba(0,0,0,0.5);opacity:0;}.portfolio-window__dots:hover .portfolio-window__dot--close::after{content:'✕';opacity:1;}.portfolio-window__dots:hover .portfolio-window__dot--min::after{content:'−';opacity:1;}.portfolio-window__dots:hover .portfolio-window__dot--max::after{content:'⤢';opacity:1;}@media (prefers-reduced-motion:no-preference){.portfolio-window__dot::after{transition:opacity 0.1s;}}.portfolio-window__title{flex:1;text-align:center;font-family:var(--font-mono);font-size:0.78rem;font-weight:500;color:var(--color-ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.portfolio-window__titlebar-spacer{width:48px;flex-shrink:0;}.portfolio-window__body{flex:1;overflow-x:hidden;overflow-y:auto;padding:var(--space-xl);}.portfolio-window__statusbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-md);background:var(--color-surface-alt);border-top:1.5px solid var(--color-border);border-radius:0 0 8px 8px;flex-shrink:0;font-family:var(--font-mono);font-size:0.68rem;color:var(--color-ink-muted);}.portfolio-desktop-bg{position:absolute;inset:0;display:none;align-items:center;justify-content:center;z-index:2;cursor:pointer;}.portfolio-desktop-bg__inner{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);user-select:none;}.portfolio-desktop-bg__logo{width:96px;height:96px;object-fit:contain;filter:drop-shadow(2px 4px 12px rgba(26,22,18,0.25));}.portfolio-desktop-bg__name{font-family:var(--font-sans);font-size:1.75rem;font-weight:700;color:var(--color-ink);margin:0;letter-spacing:-0.02em;}.portfolio-desktop-bg__hint{font-family:var(--font-mono);font-size:0.7rem;color:var(--color-ink-muted);margin:0;letter-spacing:0.06em;text-transform:uppercase;}.portfolio-dock{width:96px;flex-shrink:0;display:flex;flex-direction:column;align-items:stretch;padding:var(--space-md) var(--space-sm);gap:var(--space-xs);}.portfolio-dock__item{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-xs);border:1.5px solid transparent;border-radius:6px 6px 14px 6px;text-decoration:none;color:inherit;cursor:pointer;transition:box-shadow 0.15s ease,translate 0.15s ease,border-color 0.15s ease,background 0.15s ease;}.portfolio-dock__item:hover{background:var(--color-surface-alt);border-color:var(--color-border);box-shadow:2px 2px 0 var(--color-border);translate:-1px -1px;text-decoration:none;}.portfolio-dock__item.is-active{background:var(--color-surface-alt);border-color:var(--color-accent);box-shadow:2px 2px 0 var(--color-accent);}.portfolio-dock__icon{font-size:28px;line-height:1;filter:drop-shadow(2px 2px 0 var(--color-border));display:block;transition:filter 0.15s ease;}.portfolio-dock__item:hover .portfolio-dock__icon{filter:drop-shadow(3px 3px 0 var(--color-border));}.portfolio-dock__item.is-active .portfolio-dock__icon{filter:drop-shadow(2px 2px 0 var(--color-accent));}.portfolio-dock__label{font-family:var(--font-mono);font-size:0.62rem;color:var(--color-ink-muted);text-align:center;line-height:1.2;overflow:hidden;text-overflow:ellipsis;width:100%;}.portfolio-dock__item.is-active .portfolio-dock__label{color:var(--color-accent);font-weight:600;}.portfolio-dock__spacer{flex:1;}.portfolio-dock__divider{height:1.5px;background:var(--color-border-light);margin:var(--space-xs) 0;}@media (max-width:900px){.portfolio-dock{position:fixed;bottom:0;left:0;right:0;width:100%;height:56px;flex-direction:row;justify-content:space-around;align-items:center;padding:var(--space-xs) var(--space-sm);background:var(--color-surface);border-top:1.5px solid var(--color-border);border-left:none;z-index:100;gap:0;}.portfolio-dock__icon{font-size:22px;}.portfolio-dock__label{font-size:0.55rem;}.layout-desktop{height:calc(100vh - 56px);}.portfolio-window__body{padding-bottom:calc(var(--space-xl) + 56px);}}.portfolio-page-header{margin-bottom:var(--space-xl);}.portfolio-page-header__eyebrow{font-family:var(--font-mono);font-size:0.72rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--color-ink-muted);margin:0 0 var(--space-sm);}.portfolio-page-header__eyebrow::before{content:'// ';color:var(--color-accent);}.portfolio-page-header__title{font-family:var(--font-serif);font-size:clamp(1.75rem,3vw,2.5rem);font-weight:600;line-height:1.1;color:var(--color-ink);margin:0 0 var(--space-md);max-width:28ch;}.portfolio-page-header__lead{font-family:var(--font-sans);font-size:1.05rem;color:var(--color-ink-muted);line-height:1.7;max-width:520px;margin:0 0 var(--space-lg);}.portfolio-page-header__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);}@keyframes btn-wiggle{0%{transform:translate(0,0);box-shadow:4px 4px 0 var(--color-border);}100%{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--color-border);}}.portfolio-button{display:inline-flex;align-items:center;justify-content:center;padding:0.5rem 1.1rem;border:1.5px solid var(--color-border);border-radius:4px 4px 10px 4px;font-family:var(--font-sans);font-size:0.875rem;font-weight:600;text-decoration:none;cursor:pointer;box-shadow:4px 4px 0 var(--color-border);}.portfolio-button--primary{background:var(--color-accent);color:var(--color-surface);}.portfolio-button--primary:link,.portfolio-button--primary:visited{color:var(--color-surface);}.portfolio-button--primary:hover{background:var(--color-accent-hover);color:var(--color-surface);text-decoration:none;}.portfolio-button--secondary{background:var(--color-surface);color:var(--color-ink);}.portfolio-button--secondary:link,.portfolio-button--secondary:visited{color:var(--color-ink);}.portfolio-button--secondary:hover{background:var(--color-surface);color:var(--color-accent);text-decoration:none;}@media (prefers-reduced-motion:no-preference){.portfolio-button:hover{animation:btn-wiggle 0.25s ease forwards;}}.portfolio-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;}.portfolio-callout{display:block;margin:var(--space-lg) 0;padding:var(--space-md) var(--space-lg);background:var(--color-accent-light);border:1.5px solid var(--color-border);border-left:4px solid var(--color-accent);border-radius:4px;font-family:var(--font-mono);font-size:0.76rem;line-height:1.7;color:var(--color-ink);}.portfolio-callout__label{color:var(--color-accent);font-weight:700;}.portfolio-callout__reviewer-link{color:var(--color-accent);text-decoration:none;}.portfolio-callout__reviewer-link:hover{text-decoration:underline;color:var(--color-accent-hover);}.portfolio-section-header{display:flex;align-items:baseline;gap:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1.5px solid var(--color-border);margin-bottom:var(--space-lg);}.portfolio-section-header__title{font-family:var(--font-mono);font-size:0.76rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-ink);margin:0;}.portfolio-section-header__link{margin-left:auto;font-family:var(--font-mono);font-size:0.72rem;color:var(--color-accent);text-decoration:none;}.portfolio-section-header__link:hover{text-decoration:underline;color:var(--color-accent-hover);}.portfolio-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--space-lg);margin-bottom:var(--space-xl);}@media (max-width:480px){.portfolio-card-grid{grid-template-columns:1fr;}}.portfolio-card{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-md);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:4px;box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;}.portfolio-card:hover{text-decoration:none;color:inherit;}@media (prefers-reduced-motion:no-preference){.portfolio-card{transition:transform 0.1s,box-shadow 0.1s;}.portfolio-card:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow-lg);}}.portfolio-card__tag{font-family:var(--font-mono);font-size:0.68rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-accent);}.portfolio-card__title{font-family:var(--font-serif);font-size:1rem;font-weight:600;line-height:1.3;color:var(--color-ink);margin:0;}.portfolio-card__meta{font-family:var(--font-mono);font-size:0.7rem;color:var(--color-ink-muted);margin-top:auto;padding-top:var(--space-xs);}.portfolio-rating{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-md) 0;}.portfolio-rating__bar{flex:1;height:8px;background:var(--color-surface-alt);border:1.5px solid var(--color-border);border-radius:99px;overflow:hidden;}.portfolio-rating__fill{height:100%;background:var(--color-accent);border-radius:99px;}.portfolio-rating__score{font-family:var(--font-mono);font-size:0.875rem;font-weight:700;color:var(--color-accent);flex-shrink:0;}.card,.card:has(.card__cta-icon):hover{background:var(--color-surface-alt);border:1.5px solid var(--color-border);box-shadow:4px 4px 0 var(--color-border);border-radius:6px;overflow:hidden;cursor:pointer;}@media (prefers-reduced-motion:no-preference){.card{transition:transform 0.12s ease,box-shadow 0.12s ease;}.card:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--color-border);}}.card__content,.card__inner,.card__lower,.card__header{background:transparent;}@container (min-width:600px){.card__inner{flex-direction:column;}.card__inner > *{flex:unset;}}@container (min-width:900px){.card__inner{flex-direction:row;}.card__inner > *{flex:1;}}.card__image{align-self:stretch;}.card__image img{width:100%;object-fit:cover;aspect-ratio:16 / 9;height:auto;}@container (min-width:900px){.card__image,.card__image .media--view-mode-_6-9-medium,.card__image .field--name-field-media-image,.card__image .field__item,.card__image picture{height:100%;display:flex;flex-direction:column;}.card__image img{aspect-ratio:unset;height:100%;flex:1;}}.card__title,.card__title a,.card__title a:visited,.node--view-mode-card .card__title a,.node--view-mode-card .card__title a:visited{color:var(--color-ink) !important;font-family:var(--font-sans);text-decoration:none;}.card:hover .card__title a{color:var(--color-accent) !important;text-decoration:none;}.card__subtitle{font-family:var(--font-mono);font-size:0.72rem;color:var(--color-ink-muted);letter-spacing:0.04em;}.card__description{color:var(--color-ink-muted);font-size:0.9rem;}.card__cta-icon.button--primary,.card__cta-icon.button--primary:visited{background:var(--color-accent);border-color:var(--color-border);color:var(--color-surface);box-shadow:none;}.card:hover .card__cta-icon.button--primary{background:var(--color-accent-hover);color:var(--color-surface);}.node__content h1,.node__content h2,.node__content h3,.node__content h4,.node__content h5,.node__content h6{color:var(--color-ink);font-family:var(--font-sans);}.text-content a:not(.card__title a):not(.field--tags a):not(.field--tags__item a),.node__content a:not(.card__title a):not(.field--tags a):not(.field--tags__item a),.field--name-field-content a:not(.card__title a):not(.field--tags a):not(.field--tags__item a){display:inline-block;color:var(--color-accent);text-decoration:none;border-radius:2px 2px 8px 2px;box-shadow:2px 2px 0 var(--color-border);padding:0 2px;transition:color 0.15s ease,box-shadow 0.15s ease,translate 0.15s ease;}.text-content a:not(.card__title a):not(.field--tags a):not(.field--tags__item a):hover,.node__content a:not(.card__title a):not(.field--tags a):not(.field--tags__item a):hover,.field--name-field-content a:not(.card__title a):not(.field--tags a):not(.field--tags__item a):hover{color:var(--color-accent-hover);box-shadow:3px 3px 0 var(--color-border);translate:-1px -1px;text-decoration:none;}.card__title a,.card__title a:hover{display:inline;box-shadow:none;border-radius:0;padding:0;translate:none;}.node__meta,.node__date,.node__submitted{font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.05em;color:var(--color-ink-muted);margin-bottom:var(--space-lg);}.field--tags .field__label{font-family:var(--font-mono);font-size:0.72rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--color-ink-muted);}.field--tags a,.field--tags__item a,.node__content .field--tags a,.node__content .field--tags__item a{display:inline-block;font-family:var(--font-mono);font-size:0.72rem;font-weight:600;color:var(--color-surface);background:var(--color-accent);border:1.5px solid var(--color-border);border-radius:3px 3px 8px 3px;padding:0.2em 0.6em;text-decoration:none;box-shadow:2px 2px 0 var(--color-border);}.field--tags a::after,.field--tags__item a::after,.field--tags__item::after{display:none;content:none;}.field--tags a:hover,.field--tags__item a:hover{background:var(--color-accent-hover);color:var(--color-surface);text-decoration:none;}@media (prefers-reduced-motion:no-preference){.field--tags a,.field--tags__item a{transition:color 0.12s;}.field--tags a:hover,.field--tags__item a:hover{animation:btn-wiggle 0.18s ease forwards;}}.fieldset--group,fieldset.fieldset--group{border:1.5px solid var(--color-border-light);border-radius:4px;padding:var(--space-sm) var(--space-md);background:var(--color-surface-alt);}.fieldset__legend,.fieldset__label{font-family:var(--font-mono);font-size:0.72rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-ink-muted);}.button.button--link.button--external,.button.button--link{background:var(--color-accent);color:var(--color-surface) !important;border:1.5px solid var(--color-border) !important;border-radius:4px;padding:0.45rem 1rem !important;font-family:var(--font-mono);font-size:0.78rem;font-weight:600;letter-spacing:0.04em;box-shadow:4px 4px 0 var(--color-border);text-decoration:none;cursor:pointer;}.button.button--link.button--external:link,.button.button--link.button--external:visited,.button.button--link:link,.button.button--link:visited{color:var(--color-surface) !important;}.button.button--link.button--external:hover,.button.button--link:hover{background:var(--color-accent-hover);border-color:var(--color-border) !important;color:var(--color-surface) !important;text-decoration:none;}@media (prefers-reduced-motion:no-preference){.button.button--link.button--external:hover,.button.button--link:hover{animation:btn-wiggle 0.18s ease forwards;}}.button.form-submit,.button.js-form-submit{background:var(--color-accent);color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:4px;font-family:var(--font-mono);font-size:0.78rem;letter-spacing:0.05em;padding:var(--space-sm) var(--space-lg);box-shadow:4px 4px 0 var(--color-border);cursor:pointer;}.button.form-submit:hover,.button.js-form-submit:hover{background:var(--color-accent-hover);border-color:var(--color-border);color:var(--color-surface);}@media (prefers-reduced-motion:no-preference){.button.form-submit:hover,.button.js-form-submit:hover{animation:btn-wiggle 0.25s ease forwards;}}.form-checkbox:checked{accent-color:var(--color-accent);}.feed-icons{display:none;}.portfolio-card.is-featured{border-color:var(--color-accent);}.portfolio-window.is-minimized{flex:0 0 auto;z-index:3;}.portfolio-window.is-minimized .portfolio-window__body,.portfolio-window.is-minimized .portfolio-window__statusbar{display:none;}.portfolio-window.is-minimized .portfolio-window__titlebar{border-radius:6px 6px 14px 6px;}.layout-main.is-window-minimized .portfolio-desktop-bg{display:flex;}.portfolio-window__dot:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;}.layout-desktop.is-maximized .portfolio-dock{display:none;}.layout-desktop.is-maximized .layout-main{padding:0;}.layout-desktop.is-maximized .portfolio-window{border-radius:0;border-top:none;border-right:none;border-bottom:none;border-left:none;}.node--view-mode-full .field--tags{background-color:var(--color-surface-alt);border-top:1.5px solid var(--color-border-light);border-bottom:1.5px solid var(--color-border-light);}.text-content blockquote::after{background:var(--color-border-light);}body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:0.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:128px 128px;}
.views-exposed-form .fieldset--group .fieldset__legend--visible{background-color:transparent;text-transform:uppercase;font-size:var(--font-size-s);font-weight:600;letter-spacing:4px;float:none;padding:0;margin:0;border-radius:0;border-bottom:1px solid var(--color--gray-60);}.views-exposed-form .fieldset--group .fieldset__legend--visible .fieldset__label{color:inherit;padding-inline:0;}.views-exposed-form .fieldset--group .fieldset__legend--visible ~ .fieldset__wrapper{border:0;border-radius:0;padding-inline:0;}.views-exposed-form .fieldset--group:is(:first-of-type,:last-of-type) .fieldset__legend--visible .fieldset__label{display:flex;gap:var(--sp0-5);&::before{display:inline-block;aspect-ratio:1;content:"";background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-image:url(/themes/contrib/drupal_cms_olivero/images/filter.svg);mask-image:url(/themes/contrib/drupal_cms_olivero/images/filter.svg);inline-size:14px;}}.bef-exposed-form.form--inline .bef-checkboxes{display:flex;gap:var(--sp2);& > *{margin:0;}}
h2.block__title{letter-spacing:-0.01em;font-size:1.5rem;line-height:var(--sp2);color:var(--color--black);padding-left:36px;border-left:6px solid var(--color--primary-50);@media (min-width:43.75rem){font-size:2.25rem;line-height:var(--sp3);margin-block-end:var(--sp2);}}
