@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,500&family=DM+Sans:ital,wght@0,400;0,500;0,700;1,400&family=JetBrains+Mono:wght@400;500&display=swap";@font-face{font-family:IcoFont;font-weight:400;font-style:"Regular";src:url(/build/assets/icofont-CQtrYpqS.woff2)format("woff2"),url(/build/assets/icofont-DFR29zvX.woff)format("woff")}[class^=icofont-],[class*=\ icofont-]{speak:none;font-variant:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;direction:ltr;font-style:normal;font-weight:400;line-height:1;font-family:IcoFont!important}.icofont-ui-user:before{content:""}.icofont-ui-delete:before{content:""}.icofont-search-1:before{content:""}.icofont-search-user:before{content:""}.icofont-sort:before{content:""}.icofont-shield:before{content:""}.icofont-duotone.icofont-shield:before{content:"𓮯"}.icofont-duotone.icofont-shield:after{content:"𓮮"}.icofont-key:before{content:""}.icofont-arrow-up:before{content:""}.icofont-arrow-right:before{content:""}.icofont-arrow-left:before{content:""}.icofont-arrow-down:before{content:""}.icofont-minus:before{content:""}.icofont-minus-circle:before{content:""}.icofont-minus-square:before{content:""}.icofont-plus:before{content:""}.icofont-plus-square:before{content:""}.icofont-plus-circle:before{content:""}.icofont-settings:before{content:""}.icofont-ui-settings:before{content:""}.icofont-email:before{content:""}.icofont-ui-email:before{content:""}.icofont-lock:before{content:""}.icofont-unlock:before{content:""}.icofont-unlocked:before{content:""}.icofont-check:before{content:""}.icofont-check-circled:before{content:""}.icofont-checked:before{content:""}.icofont-caret-down:before{content:""}.icofont-caret-left:before{content:""}.icofont-caret-right:before{content:""}.icofont-caret-up:before{content:""}.icofont-refresh:before{content:""}.icofont-close:before{content:""}.icofont-close-squared:before{content:""}.icofont-close-circled:before{content:""}.icofont-laptop-alt:before{content:""}.icofont-login:before{content:""}.icofont-logout:before{content:""}.icofont-duotone.icofont-calendar:before{content:"𓫛"}.icofont-duotone.icofont-calendar:after{content:"𓫚"}.icofont-ui-calendar:before{content:""}.icofont-calendar:before{content:""}.icofont-eye:before{content:""}.icofont-ui-edit:before{content:""}.icofont-edit:before{content:""}.icofont-duotone.icofont-eye-close:before{content:"𓬙"}.icofont-duotone.icofont-eye-close:after{content:"𓬘"}.icofont-warning-alt:before{content:""}.icofont-warning:before{content:""}.icofont-info:before{content:""}.icofont-info-square:before{content:""}.icofont-info-circle:before{content:""}.icofont-delete:before{content:""}.icofont-mobile-phone:before{content:""}.icofont-exchange:before{content:""}.icofont-sun:before{content:""}.icofont-moon:before{content:""}.icofont-duotone.icofont-dashboard:before{content:"𓬁"}.icofont-duotone.icofont-dashboard:after{content:"𓬀"}.icofont-dashboard-web:before{content:""}.icofont-dashboard:before{content:""}.icofont-filter:before{content:""}.icofont-close-line:before{content:""}.icofont-close-line-squared:before{content:""}.icofont-close-line-squared-alt:before{content:""}.icofont-close-line-circled:before{content:""}.icofont-close-squared-alt:before{content:""}.icofont-ui-close:before{content:""}.icofont-duotone.icofont-folder-close:before{content:"𓬱"}.icofont-duotone.icofont-folder-close:after{content:"𓬰"}.icofont-justify-right:before{content:""}.icofont-justify-left:before{content:""}.icofont-justify-center:before{content:""}.icofont-justify-all:before{content:""}.icofont-italic:before{content:""}.icofont-italic-alt:before{content:""}.icofont-indent:before{content:""}.icofont-edit-alt:before{content:""}.icofont-eraser-alt:before{content:""}.icofont-heading:before{content:""}.icofont-align-right:before{content:""}.icofont-align-left:before{content:""}.icofont-align-center:before{content:""}.icofont-bold:before{content:""}.icofont-brush:before{content:""}.icofont-clip-board:before{content:""}.icofont-code-alt:before{content:""}.icofont-color-bucket:before{content:""}.icofont-save:before{content:""}.icofont-rotation:before{content:""}.icofont-redo:before{content:""}.icofont-printer:before{content:""}.icofont-paragraph:before{content:""}.icofont-paper-clip:before{content:""}.icofont-trash:before{content:""}.icofont-undo:before{content:""}.icofont-underline:before{content:""}.icofont-all-caps:before{content:""}.icofont-color-picker:before{content:""}.icofont-copy-invert:before{content:""}.icofont-copy:before{content:""}.icofont-cut:before{content:""}.icofont-delete-alt:before{content:""}.icofont-font:before{content:""}.icofont-link-broken:before{content:""}.icofont-outdent:before{content:""}.icofont-pin:before{content:""}.icofont-small-cap:before{content:""}.icofont-strike-through:before{content:""}.icofont-sub-listing:before{content:""}.icofont-subscript:before{content:""}.icofont-superscript:before{content:""}.icofont-table:before{content:""}.icofont-text-height:before{content:""}.icofont-text-width:before{content:""}.icofont-youtube-play:before{content:""}.icofont-volume-up:before{content:""}.icofont-volume-off:before{content:""}.icofont-volume-mute:before{content:""}.icofont-volume-down:before{content:""}.icofont-volume-bar:before{content:""}.icofont-video-clapper:before{content:""}.icofont-video-alt:before{content:""}.icofont-stop:before{content:""}.icofont-rewind:before{content:""}.icofont-pause:before{content:""}.icofont-music:before{content:""}.icofont-cassette-player:before{content:""}.icofont-cassette:before{content:""}.icofont-forward:before{content:""}.icofont-guiter:before{content:""}.icofont-movie:before{content:""}.icofont-multimedia:before{content:""}.icofont-music-alt:before{content:""}.icofont-music-disk:before{content:""}.icofont-music-note:before{content:""}.icofont-music-notes:before{content:""}.icofont-mute-volume:before{content:""}.icofont-play-alt-1:before{content:""}.icofont-play-alt-2:before{content:""}.icofont-play-alt-3:before{content:""}.icofont-play-pause:before{content:""}.icofont-play:before{content:""}.icofont-record:before{content:""}.icofont-retro-music-disk:before{content:""}.icofont-song-notes:before{content:""}.icofont-sound-wave-alt:before{content:""}.icofont-sound-wave:before{content:""}.icofont-video-cam:before{content:""}.icofont-video:before{content:""}.icofont-address-book:before{content:""}.icofont-adjust:before{content:""}.icofont-alarm:before{content:""}.icofont-anchor:before{content:""}.icofont-attachment:before{content:""}.icofont-bag:before{content:""}.icofont-cloud-download:before{content:""}.icofont-cloud-refresh:before{content:""}.icofont-cloud-upload:before{content:""}.icofont-cloud:before{content:""}.icofont-computer:before{content:""}.icofont-credit-card:before{content:""}.icofont-contacts:before{content:""}.icofont-database-add:before{content:""}.icofont-database-locked:before{content:""}.icofont-database-remove:before{content:""}.icofont-database:before{content:""}.icofont-diamond:before{content:""}.icofont-drag1:before{content:""}.icofont-drag:before{content:""}.icofont-diskette:before{content:""}.icofont-dice:before{content:""}.icofont-envelope:before{content:""}.icofont-envelope-open:before{content:""}.icofont-exit:before{content:""}.icofont-exclamation:before{content:""}.icofont-exclamation-tringle:before{content:""}.icofont-exclamation-square:before{content:""}.icofont-exclamation-circle:before{content:""}.icofont-eye-dropper:before{content:""}.icofont-eye-blocked:before{content:""}.icofont-eye-alt:before{content:""}.icofont-fire-alt:before{content:""}.icofont-fire-burn:before{content:""}.icofont-fire:before{content:""}.icofont-flag:before{content:""}.icofont-flag-alt-1:before{content:""}.icofont-flag-alt-2:before{content:""}.icofont-flash:before{content:""}.icofont-flask:before{content:""}.icofont-focus:before{content:""}.icofont-folder-open:before{content:""}.icofont-folder:before{content:""}.icofont-hand:before{content:""}.icofont-gift:before{content:""}.icofont-heart-alt:before{content:""}.icofont-heart:before{content:""}.icofont-home:before{content:""}.icofont-image:before{content:""}.icofont-label:before{content:""}.icofont-library:before{content:""}.icofont-leaf:before{content:""}.icofont-license:before{content:""}.icofont-like:before{content:""}.icofont-list:before{content:""}.icofont-link:before{content:""}.icofont-link-alt:before{content:""}.icofont-magnet:before{content:""}.icofont-mega-phone:before{content:""}.icofont-megaphone:before{content:""}.icofont-megaphone-alt:before{content:""}.icofont-memory-card:before{content:""}.icofont-navigation-menu:before{content:""}.icofont-notebook:before{content:""}.icofont-newspaper:before{content:""}.icofont-plugin:before{content:""}.icofont-phone:before{content:""}.icofont-power:before{content:""}.icofont-print:before{content:""}.icofont-qr-code:before{content:""}.icofont-toggle-off:before{content:""}.icofont-toggle-on:before{content:""}.icofont-water-drop:before{content:""}.icofont-wifi-alt:before{content:""}.icofont-wifi:before{content:""}.icofont-world:before{content:""}.icofont-web:before{content:""}.icofont-ui-home:before{content:""}.icofont-ui-image:before{content:""}.icofont-ui-add:before{content:""}.icofont-ui-alarm:before{content:""}.icofont-ui-battery:before{content:""}.icofont-ui-block:before{content:""}.icofont-ui-bluetooth:before{content:""}.icofont-ui-brightness:before{content:""}.icofont-ui-browser:before{content:""}.icofont-ui-call:before{content:""}.icofont-ui-camera:before{content:""}.icofont-ui-cart:before{content:""}.icofont-ui-cell-phone:before{content:""}.icofont-ui-chat:before{content:""}.icofont-ui-check:before{content:""}.icofont-ui-clip-board:before{content:""}.icofont-ui-clip:before{content:""}.icofont-ui-clock:before{content:""}.icofont-ui-contact-list:before{content:""}.icofont-ui-copy:before{content:""}.icofont-ui-cut:before{content:""}.icofont-ui-dial-phone:before{content:""}.icofont-ui-file:before{content:""}.icofont-ui-fire-wall:before{content:""}.icofont-ui-flash-light:before{content:""}.icofont-ui-flight:before{content:""}.icofont-ui-folder:before{content:""}.icofont-ui-game:before{content:""}.icofont-ui-handicapped:before{content:""}.icofont-ui-laoding:before{content:""}.icofont-ui-lock:before{content:""}.icofont-ui-love-add:before{content:""}.icofont-ui-love-broken:before{content:""}.icofont-ui-love-remove:before{content:""}.icofont-ui-love:before{content:""}.icofont-ui-map:before{content:""}.icofont-ui-message:before{content:""}.icofont-ui-messaging:before{content:""}.icofont-ui-movie:before{content:""}.icofont-ui-music-player:before{content:""}.icofont-ui-music:before{content:""}.icofont-ui-mute:before{content:""}.icofont-ui-network:before{content:""}.icofont-ui-next:before{content:""}.icofont-ui-note:before{content:""}.icofont-ui-office:before{content:""}.icofont-ui-password:before{content:""}.icofont-ui-pause:before{content:""}.icofont-ui-play-stop:before{content:""}.icofont-ui-play:before{content:""}.icofont-ui-pointer:before{content:""}.icofont-ui-power:before{content:""}.icofont-ui-press:before{content:""}.icofont-ui-previous:before{content:""}.icofont-ui-rate-add:before{content:""}.icofont-ui-rate-blank:before{content:""}.icofont-ui-rate-remove:before{content:""}.icofont-ui-rating:before{content:""}.icofont-ui-record:before{content:""}.icofont-ui-remove:before{content:""}.icofont-ui-reply:before{content:""}.icofont-ui-rotation:before{content:""}.icofont-ui-rss:before{content:""}.icofont-ui-search:before{content:""}.icofont-ui-social-link:before{content:""}.icofont-ui-tag:before{content:""}.icofont-ui-text-chat:before{content:""}.icofont-ui-text-loading:before{content:""}.icofont-ui-theme:before{content:""}.icofont-ui-timer:before{content:""}.icofont-ui-touch-phone:before{content:""}.icofont-ui-travel:before{content:""}.icofont-ui-unlock:before{content:""}.icofont-ui-user-group:before{content:""}.icofont-ui-v-card:before{content:""}.icofont-ui-video-chat:before{content:""}.icofont-ui-video-message:before{content:""}.icofont-ui-video-play:before{content:""}.icofont-ui-video:before{content:""}.icofont-ui-volume:before{content:""}.icofont-ui-weather:before{content:""}.icofont-ui-wifi:before{content:""}.icofont-ui-zoom-in:before{content:""}.icofont-ui-zoom-out:before{content:""}.icofont-addons:before{content:""}.icofont-archive:before{content:""}.icofont-at:before{content:""}.icofont-audio:before{content:""}.icofont-automation:before{content:""}.icofont-badge:before{content:""}.icofont-bag-alt:before{content:""}.icofont-ban:before{content:""}.icofont-bar-code:before{content:""}.icofont-bars:before{content:""}.icofont-basket:before{content:""}.icofont-battery-empty:before{content:""}.icofont-battery-full:before{content:""}.icofont-battery-half:before{content:""}.icofont-battery-low:before{content:""}.icofont-beaker:before{content:""}.icofont-beard:before{content:""}.icofont-bed:before{content:""}.icofont-bell:before{content:""}.icofont-beverage:before{content:""}.icofont-bill:before{content:""}.icofont-bin:before{content:""}.icofont-binary:before{content:""}.icofont-binoculars:before{content:""}.icofont-bluetooth:before{content:""}.icofont-bomb:before{content:""}.icofont-book-mark:before{content:""}.icofont-box:before{content:""}.icofont-briefcase:before{content:""}.icofont-broken:before{content:""}.icofont-bucket:before{content:""}.icofont-bucket1:before{content:""}.icofont-bucket2:before{content:""}.icofont-bug:before{content:""}.icofont-building:before{content:""}.icofont-bulb-alt:before{content:""}.icofont-bullet:before{content:""}.icofont-bullhorn:before{content:""}.icofont-bullseye:before{content:""}.icofont-camera-alt:before{content:""}.icofont-camera:before{content:""}.icofont-card:before{content:""}.icofont-cart-alt:before{content:""}.icofont-cart:before{content:""}.icofont-cc:before{content:""}.icofont-charging:before{content:""}.icofont-chat:before{content:""}.icofont-check-alt:before{content:""}.icofont-children-care:before{content:""}.icofont-clip:before{content:""}.icofont-clock-time:before{content:""}.icofont-code-not-allowed:before{content:""}.icofont-code:before{content:""}.icofont-comment:before{content:""}.icofont-compass-alt:before{content:""}.icofont-compass:before{content:""}.icofont-connection:before{content:""}.icofont-console:before{content:""}.icofont-contrast:before{content:""}.icofont-copyright:before{content:""}.icofont-crop:before{content:""}.icofont-crown:before{content:""}.icofont-cube:before{content:""}.icofont-cubes:before{content:""}.icofont-data:before{content:""}.icofont-dice-multiple:before{content:""}.icofont-disc:before{content:""}.icofont-document-folder:before{content:""}.icofont-download-alt:before{content:""}.icofont-download:before{content:""}.icofont-downloaded:before{content:""}.icofont-drag2:before{content:""}.icofont-drag3:before{content:""}.icofont-earth:before{content:""}.icofont-ebook:before{content:""}.icofont-eject:before{content:""}.icofont-eraser:before{content:""}.icofont-error:before{content:""}.icofont-excavator:before{content:""}.icofont-expand:before{content:""}.icofont-external-link:before{content:""}.icofont-external:before{content:""}.icofont-favourite:before{content:""}.icofont-fax:before{content:""}.icofont-file-fill:before{content:""}.icofont-film:before{content:""}.icofont-flame-torch:before{content:""}.icofont-flash-light:before{content:""}.icofont-foot-print:before{content:""}.icofont-garbage:before{content:""}.icofont-gear-alt:before{content:""}.icofont-gear:before{content:""}.icofont-gears:before{content:""}.icofont-glass:before{content:""}.icofont-globe:before{content:""}.icofont-graffiti:before{content:""}.icofont-grocery:before{content:""}.icofont-hanger:before{content:""}.icofont-hard-disk:before{content:""}.icofont-history:before{content:""}.icofont-horn:before{content:""}.icofont-hour-glass:before{content:""}.icofont-id:before{content:""}.icofont-inbox:before{content:""}.icofont-infinite:before{content:""}.icofont-institution:before{content:""}.icofont-interface:before{content:""}.icofont-invisible:before{content:""}.icofont-jacket:before{content:""}.icofont-jar:before{content:""}.icofont-jewlery:before{content:""}.icofont-karate:before{content:""}.icofont-key-hole:before{content:""}.icofont-lamp:before{content:""}.icofont-layers:before{content:""}.icofont-layout:before{content:""}.icofont-leaflet:before{content:""}.icofont-learn:before{content:""}.icofont-lego:before{content:""}.icofont-lens:before{content:""}.icofont-letter:before{content:""}.icofont-letterbox:before{content:""}.icofont-life-bouy:before{content:""}.icofont-life-buoy:before{content:""}.icofont-life-jacket:before{content:""}.icofont-life-ring:before{content:""}.icofont-light-bulb:before{content:""}.icofont-lighter:before{content:""}.icofont-lightning-ray:before{content:""}.icofont-line-height:before{content:""}.icofont-listening:before{content:""}.icofont-listine-dots:before{content:""}.icofont-listing-box:before{content:""}.icofont-listing-number:before{content:""}.icofont-live-support:before{content:""}.icofont-location-arrow:before{content:""}.icofont-location-pin:before{content:""}.icofont-lollipop:before{content:""}.icofont-long-drive:before{content:""}.icofont-look:before{content:""}.icofont-loop:before{content:""}.icofont-luggage:before{content:""}.icofont-lunch:before{content:""}.icofont-lungs:before{content:""}.icofont-magic-alt:before{content:""}.icofont-magic:before{content:""}.icofont-mail-box:before{content:""}.icofont-mail:before{content:""}.icofont-male:before{content:""}.icofont-map-pins:before{content:""}.icofont-map:before{content:""}.icofont-maximize:before{content:""}.icofont-measure:before{content:""}.icofont-medicine:before{content:""}.icofont-memorial:before{content:""}.icofont-mic-mute:before{content:""}.icofont-mic:before{content:""}.icofont-military:before{content:""}.icofont-mill:before{content:""}.icofont-molecule:before{content:""}.icofont-money:before{content:""}.icofont-mop:before{content:""}.icofont-muffin:before{content:""}.icofont-mustache:before{content:""}.icofont-navigation:before{content:""}.icofont-network-tower:before{content:""}.icofont-network:before{content:""}.icofont-news:before{content:""}.icofont-no-smoking:before{content:""}.icofont-not-allowed:before{content:""}.icofont-notepad:before{content:""}.icofont-notification:before{content:""}.icofont-numbered:before{content:""}.icofont-opposite:before{content:""}.icofont-optic:before{content:""}.icofont-options:before{content:""}.icofont-package:before{content:""}.icofont-page:before{content:""}.icofont-paint:before{content:""}.icofont-paper-plane:before{content:""}.icofont-paperclip:before{content:""}.icofont-papers:before{content:""}.icofont-pay:before{content:""}.icofont-penguin-linux:before{content:""}.icofont-pestle:before{content:""}.icofont-phone-circle:before{content:""}.icofont-picture:before{content:""}.icofont-pine:before{content:""}.icofont-pixels:before{content:""}.icofont-polygonal:before{content:""}.icofont-price:before{content:""}.icofont-puzzle:before{content:""}.icofont-queen:before{content:""}.icofont-question-circle:before{content:""}.icofont-question-square:before{content:""}.icofont-question:before{content:""}.icofont-quote-left:before{content:""}.icofont-quote-right:before{content:""}.icofont-random:before{content:""}.icofont-recycle:before{content:""}.icofont-repair:before{content:""}.icofont-reply-all:before{content:""}.icofont-reply:before{content:""}.icofont-resize:before{content:""}.icofont-responsive:before{content:""}.icofont-retweet:before{content:""}.icofont-road:before{content:""}.icofont-robot:before{content:""}.icofont-royal:before{content:""}.icofont-rss-feed:before{content:""}.icofont-safety:before{content:""}.icofont-sale-discount:before{content:""}.icofont-sass:before{content:""}.icofont-satellite:before{content:""}.icofont-send-mail:before{content:""}.icofont-server:before{content:""}.icofont-settings-alt:before{content:""}.icofont-share-alt:before{content:""}.icofont-share-boxed:before{content:""}.icofont-share:before{content:""}.icofont-shopping-cart:before{content:""}.icofont-sign-in:before{content:""}.icofont-sign-out:before{content:""}.icofont-signal:before{content:""}.icofont-site-map:before{content:""}.icofont-smart-phone:before{content:""}.icofont-soccer:before{content:""}.icofont-sort-alt:before{content:""}.icofont-space:before{content:""}.icofont-spanner:before{content:""}.icofont-speech-comments:before{content:""}.icofont-speed-meter:before{content:""}.icofont-spinner-alt-1:before{content:""}.icofont-spinner-alt-2:before{content:""}.icofont-spinner-alt-3:before{content:""}.icofont-spinner-alt-4:before{content:""}.icofont-spinner-alt-5:before{content:""}.icofont-spinner-alt-6:before{content:""}.icofont-spinner:before{content:""}.icofont-spreadsheet:before{content:""}.icofont-square:before{content:""}.icofont-ssl-security:before{content:""}.icofont-star-alt-1:before{content:""}.icofont-star-alt-2:before{content:""}.icofont-star:before{content:""}.icofont-street-view:before{content:""}.icofont-support-faq:before{content:""}.icofont-tack-pin:before{content:""}.icofont-tag:before{content:""}.icofont-tags:before{content:""}.icofont-tasks-alt:before{content:""}.icofont-tasks:before{content:""}.icofont-telephone:before{content:""}.icofont-telescope:before{content:""}.icofont-terminal:before{content:""}.icofont-thumbs-down:before{content:""}.icofont-thumbs-up:before{content:""}.icofont-tick-boxed:before{content:""}.icofont-tick-mark:before{content:""}.icofont-ticket:before{content:""}.icofont-tie:before{content:""}.icofont-tools-alt-2:before{content:""}.icofont-tools:before{content:""}.icofont-touch:before{content:""}.icofont-traffic-light:before{content:""}.icofont-transparent:before{content:""}.icofont-tree:before{content:""}.icofont-unique-idea:before{content:""}.icofont-upload-alt:before{content:""}.icofont-upload:before{content:""}.icofont-usb-drive:before{content:""}.icofont-usb:before{content:""}.icofont-vector-path:before{content:""}.icofont-verification-check:before{content:""}.icofont-visual-studio:before{content:""}.icofont-vscode:before{content:""}.icofont-vuejs:before{content:""}.icofont-wall-clock:before{content:""}.icofont-wall:before{content:""}.icofont-wallet:before{content:""}.icofont-wheelchair:before{content:""}.icofont-zigzag:before{content:""}.icofont-zipped:before{content:""}.icofont-whatsapp:before{content:""}.icofont-youtube:before{content:""}.icofont-telegram:before{content:""}.icofont-slack:before{content:""}.icofont-linkedin:before{content:""}.icofont-google-map:before{content:""}.icofont-instagram:before{content:""}.icofont-github:before{content:""}.icofont-facebook:before{content:""}.icofont-discord:before{content:""}.icofont-sun-alt:before{content:""}.icofont-duotone.icofont-add-users:before{content:"𓪷"}.icofont-duotone.icofont-add-users:after{content:"𓪶"}.icofont-duotone.icofont-users:before{content:"𓯚"}.icofont-duotone.icofont-users:after{content:"𓯙"}.icofont-users:before{content:""}.icofont-user:before{content:""}.icofont-duotone.icofont-manage-user:before{content:"𓭞"}.icofont-duotone.icofont-manage-user:after{content:"𓭝"}.icofont-duotone.icofont-user-notes:before{content:"𓯘"}.icofont-duotone.icofont-user-notes:after{content:"𓯗"}.icofont-duotone.icofont-book:before{content:"𓫍"}.icofont-duotone.icofont-book:after{content:"𓫌"}.icofont-duotone.icofont-bookmark:before{content:"𓫏"}.icofont-duotone.icofont-bookmark:after{content:"𓫎"}.icofont-macbook:before{content:""}.icofont-book-alt:before{content:""}.icofont-book:before{content:""}.icofont-duotone.icofont-purge:before{content:"𓮕"}.icofont-duotone.icofont-purge:after{content:"𓮔"}.icofont-file-pdf:before{content:""}.icofont-file-document:before{content:""}.icofont-doctor:before{content:""}.icofont-search-document:before{content:""}.icofont-search:before{content:""}.icofont-chart-arrows-axis:before{content:""}.icofont-chart-bar-graph:before{content:""}.icofont-chart-flow-1:before{content:""}.icofont-chart-flow-2:before{content:""}.icofont-chart-flow:before{content:""}.icofont-chart-growth:before{content:""}.icofont-chart-histogram-alt:before{content:""}.icofont-chart-histogram:before{content:""}.icofont-chart-line-alt:before{content:""}.icofont-chart-line:before{content:""}.icofont-chart-pie-alt:before{content:""}.icofont-chart-pie:before{content:""}.icofont-chart-radar-graph:before{content:""}.icofont-bank-alt:before{content:""}.icofont-bank:before{content:""}.icofont-barcode:before{content:""}.icofont-bill-alt:before{content:""}.icofont-billboard:before{content:""}.icofont-briefcase-1:before{content:""}.icofont-briefcase-2:before{content:""}.icofont-businessman:before{content:""}.icofont-businesswoman:before{content:""}.icofont-chair:before{content:""}.icofont-coins:before{content:""}.icofont-company:before{content:""}.icofont-contact-add:before{content:""}.icofont-files-stack:before{content:""}.icofont-handshake-deal:before{content:""}.icofont-id-card:before{content:""}.icofont-meeting-add:before{content:""}.icofont-money-bag:before{content:""}.icofont-pie-chart:before{content:""}.icofont-presentation-alt:before{content:""}.icofont-presentation:before{content:""}.icofont-stamp:before{content:""}.icofont-stock-mobile:before{content:""}.icofont-group-students:before{content:""}.icofont-student-alt:before{content:""}.icofont-student:before{content:""}.icofont-teacher:before{content:""}[class^=icofont-].icofont-duotone,[class*=\ icofont-].icofont-duotone{position:relative}[class^=icofont-].icofont-duotone:before,[class*=\ icofont-].icofont-duotone:before{position:absolute;top:0;left:0}[class^=icofont-].icofont-duotone:after,[class*=\ icofont-].icofont-duotone:after{opacity:.4}.icofont-xs{font-size:.5em}.icofont-sm{font-size:.75em}.icofont-md{font-size:1.25em}.icofont-lg{font-size:1.5em}.icofont-1x{font-size:1em}.icofont-2x{font-size:2em}.icofont-3x{font-size:3em}.icofont-4x{font-size:4em}.icofont-5x{font-size:5em}.icofont-6x{font-size:6em}.icofont-7x{font-size:7em}.icofont-8x{font-size:8em}.icofont-9x{font-size:9em}.icofont-10x{font-size:10em}.icofont-fw{text-align:center;width:1.25em}.icofont-ul{margin-left:0;padding-left:0;list-style-type:none}.icofont-ul>li{line-height:2em;position:relative}.icofont-ul>li .icofont{vertical-align:middle;display:inline-block}.icofont-border{border:.08em solid #f1f1f1;border-radius:.1em;padding:.2em .25em .15em}.icofont-pull-left{float:left}.icofont-pull-right{float:right}.icofont.icofont-pull-left{margin-right:.3em}.icofont.icofont-pull-right{margin-left:.3em}.icofont-spin{animation:2s linear infinite icofont-spin;display:inline-block}.icofont-pulse{animation:1s steps(8,end) infinite icofont-spin;display:inline-block}@keyframes icofont-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.icofont-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.icofont-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.icofont-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.icofont-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.icofont-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scaleY(-1)}.icofont-flip-horizontal.icofont-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scale(-1)}:root .icofont-rotate-90,:root .icofont-rotate-180,:root .icofont-rotate-270,:root .icofont-flip-horizontal,:root .icofont-flip-vertical{filter:none;display:inline-block}.icofont-inverse{color:#fff}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;min-height:100vh;line-height:1.6;overflow-x:clip}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}textarea{resize:vertical}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}table{border-collapse:collapse;border-spacing:0}button{cursor:pointer;background:0 0;border:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--color-primary-50:#f3eef8;--color-primary-100:#e0d4f0;--color-primary-200:#c5a8e2;--color-primary-300:#a87cd3;--color-primary-400:#8b56c0;--color-primary-500:#6b3fa0;--color-primary-600:#573385;--color-primary-700:#44276a;--color-primary-800:#311c4f;--color-primary-900:#1e1134;--color-accent-50:#fef8eb;--color-accent-100:#fcedc4;--color-accent-200:#f9dc8c;--color-accent-300:#f5c94f;--color-accent-400:#e8b84b;--color-accent-500:#d4a23a;--color-accent-600:#b8872e;--color-accent-700:#8c6722;--color-neutral-0:#fff;--color-neutral-50:#f7f6f9;--color-neutral-100:#eeedf1;--color-neutral-200:#dddbe3;--color-neutral-300:#c4c1ce;--color-neutral-400:#9e9aab;--color-neutral-500:#7a7588;--color-neutral-600:#5c5768;--color-neutral-700:#413d4d;--color-neutral-800:#2a2733;--color-neutral-900:#1a1722;--color-success:#2ecc71;--color-error:#e74c3c;--color-warning:#f39c12;--color-info:#3498db;--color-bg:var(--color-neutral-50);--color-bg-card:var(--color-neutral-0);--color-bg-elevated:var(--color-neutral-0);--color-bg-overlay:#1a172299;--color-text:var(--color-neutral-900);--color-text-muted:var(--color-neutral-500);--color-text-inverse:var(--color-neutral-0);--color-border:var(--color-neutral-200);--color-border-hover:var(--color-neutral-300);--font-heading:"Plus Jakarta Sans", system-ui, sans-serif;--font-body:"DM Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.563rem;--text-3xl:1.953rem;--text-4xl:2.441rem;--text-5xl:3.052rem;--text-6xl:3.815rem;--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.6;--leading-loose:1.8;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--tracking-tight:-.02em;--tracking-normal:0;--tracking-wide:.02em;--tracking-wider:.05em;--tracking-widest:.1em;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--max-width:1280px;--max-width-sm:640px;--max-width-md:768px;--max-width-lg:1024px;--max-width-xl:1280px;--max-width-2xl:1440px;--container-padding:var(--space-6);--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:9999px;--shadow-xs:0 1px 2px #1a17220d;--shadow-sm:0 1px 3px #1a172214, 0 1px 2px #1a17220a;--shadow-md:0 4px 6px #1a17220f, 0 2px 4px #1a17220a;--shadow-lg:0 10px 20px #1a172214, 0 4px 8px #1a17220a;--shadow-xl:0 20px 40px #1a17221a, 0 8px 16px #1a17220f;--shadow-card-hover:0 16px 32px #6b3fa01f, 0 6px 12px #6b3fa00f;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.15s;--duration-base:.25s;--duration-slow:.4s;--duration-slower:.6s;--transition-fast:var(--duration-fast) var(--ease-out);--transition-base:var(--duration-base) var(--ease-out);--transition-slow:var(--duration-slow) var(--ease-out);--transition-spring:var(--duration-base) var(--ease-spring);--z-dropdown:100;--z-sticky:200;--z-overlay:300;--z-modal:400;--z-toast:500}body{font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-regular);line-height:var(--leading-normal);color:var(--color-text);letter-spacing:var(--tracking-normal)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text)}h1{font-size:var(--text-4xl);font-weight:var(--weight-extrabold)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl);font-weight:var(--weight-semibold)}h5{font-size:var(--text-lg);font-weight:var(--weight-semibold)}h6{font-size:var(--text-base);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide)}@media (width>=64em){h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}}p{max-width:68ch;margin-bottom:var(--space-4)}p:last-child{margin-bottom:0}.text-lg{font-size:var(--text-lg);line-height:var(--leading-normal)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.text-muted{color:var(--color-text-muted)}a:not([class]){color:var(--color-primary-500);text-underline-offset:.15em;transition:color var(--transition-fast), text-decoration-color var(--transition-fast);text-decoration-thickness:1px}a:not([class]):hover{color:var(--color-primary-700);text-decoration:underline;-webkit-text-decoration-color:var(--color-primary-300);text-decoration-color:var(--color-primary-300)}a:not([class]):focus-visible{outline:2px solid var(--color-primary-400);outline-offset:2px;border-radius:var(--radius-sm)}.meta{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);line-height:var(--leading-normal);letter-spacing:var(--tracking-wide)}.label{font-family:var(--font-heading);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-text-muted)}code,pre,.mono{font-family:var(--font-mono);font-size:var(--text-sm)}code{background:var(--color-primary-50);color:var(--color-primary-700);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}pre{background:var(--color-neutral-800);color:var(--color-neutral-100);padding:var(--space-6);border-radius:var(--radius-lg);overflow-x:auto}pre code{color:inherit;background:0 0;padding:0}::selection{background:var(--color-primary-200);color:var(--color-primary-900)}strong,b{font-weight:var(--weight-semibold)}em,i{font-style:italic}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:-100%;left:var(--space-4);z-index:var(--z-toast);padding:var(--space-3) var(--space-6);background:var(--color-primary-500);color:var(--color-text-inverse);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--weight-semibold);border-radius:0 0 var(--radius-md) var(--radius-md);transition:top var(--transition-fast);position:absolute}.skip-link:focus{outline:2px solid var(--color-accent-400);outline-offset:2px;top:0}:focus-visible{outline:2px solid var(--color-primary-400);outline-offset:2px}.section[data-size=sm]{padding-block:var(--space-8)}.section[data-size=lg]{padding-block:var(--space-24)}.flex{display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-col{flex-direction:column;display:flex}.flex-wrap{flex-wrap:wrap}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.scroll-lock{overflow:hidden}.invisible{visibility:hidden}.hidden{display:none!important}@media (width<=63.99em){.desktop-only{display:none!important}}@media (width>=64em){.mobile-only{display:none!important}}.reveal{opacity:0;transition:opacity var(--duration-slow) var(--ease-out), transform var(--duration-slow) var(--ease-out);transform:translateY(20px)}.reveal.is-visible{opacity:1;transform:translateY(0)}.stagger>*,.stagger>:first-child{transition-delay:0s}.stagger>:nth-child(2){transition-delay:60ms}.stagger>:nth-child(3){transition-delay:.12s}.stagger>:nth-child(4){transition-delay:.18s}.stagger>:nth-child(5){transition-delay:.24s}.stagger>:nth-child(6){transition-delay:.3s}.stagger>:nth-child(7){transition-delay:.36s}.stagger>:nth-child(8){transition-delay:.42s}.stagger>:nth-child(9){transition-delay:.48s}.stagger>:nth-child(10){transition-delay:.54s}.projects-grid.stagger>.grid-item{opacity:0;transition:opacity var(--duration-slow) var(--ease-out), transform var(--duration-slow) var(--ease-out);transform:translateY(16px)}.projects-grid.stagger>.grid-item.is-visible{opacity:1;transform:translateY(0)}@media print{*,:before,:after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:0 0!important}body{font-size:12pt;line-height:1.5}.site-header,.skip-link,.filter-toolbar,.menu-toggle,.mobile-nav,.lang-switcher,.card-quick-view,.modal,.btn,.carousel-btn,.carousel-dots,.project-detail-nav,.footer-links{display:none!important}main{display:block}a[href]:after{content:" (" attr(href) ")";font-size:.85em;color:#444!important}a[href^=\#]:after,a[href^=javascript\:]:after{content:""}img{page-break-inside:avoid;max-width:100%!important}.card,.about-mission-card,.about-programs-card{page-break-inside:avoid;break-inside:avoid;border:1pt solid #ccc;margin-bottom:16pt;padding:8pt}.hero,.about-hero,.project-detail-hero{page-break-after:avoid;padding:16pt 0}.project-detail-meta,.project-detail-tech-list,.project-detail-tags{display:block}.about-stats-grid{flex-wrap:wrap;gap:16pt;display:flex}.about-stats-item{min-width:100pt}.footer-top{display:none}.footer-bottom{border-top:1pt solid #ccc;padding-top:8pt;font-size:9pt}}.page{background-color:var(--color-bg);grid-template-rows:auto 1fr auto;grid-template-areas:"header""main""footer";min-height:100vh;display:grid}.site-header{z-index:var(--z-sticky);background-color:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);transition:box-shadow var(--transition-base);grid-area:header;position:sticky;top:0}.site-header.is-scrolled{box-shadow:var(--shadow-md);border-bottom-color:#0000}main{grid-area:main}.site-footer{background-color:var(--color-neutral-900);color:var(--color-neutral-300);grid-area:footer}.container{width:100%;max-width:var(--max-width);padding-inline:var(--container-padding);margin-inline:auto}.container[data-size=sm]{max-width:var(--max-width-sm)}.container[data-size=md]{max-width:var(--max-width-md)}.container[data-size=lg]{max-width:var(--max-width-lg)}.container[data-size="2xl"]{max-width:var(--max-width-2xl)}@media (width>=48em){.container{padding-inline:var(--space-8)}}@media (width>=80em){.container{padding-inline:var(--space-12)}}.projects-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));justify-content:center;display:grid}@media (width>=40em){.projects-grid{gap:var(--space-8)}}.grid-item{transition:opacity var(--transition-slow), transform var(--transition-slow)}.grid-item.is-hidden{pointer-events:none}.grid-item.is-visible{opacity:1;transform:scale(1)}.hero{background:radial-gradient(ellipse 80% 60% at 70% 40%, var(--color-primary-600) 0%, transparent 70%), linear-gradient(160deg, var(--color-primary-900) 0%, var(--color-primary-800) 55%, var(--color-primary-700) 100%);align-items:center;min-height:100svh;display:flex;position:relative;overflow:hidden}.hero:before{content:"";opacity:.035;pointer-events:none;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)' opacity='1'/%3E%3C/svg%3E");position:absolute;inset:0}.hero:after{content:"";aspect-ratio:1;background:radial-gradient(circle, var(--color-primary-500) 0%, transparent 70%);opacity:.25;pointer-events:none;border-radius:50%;width:min(600px,50vw);position:absolute;top:-15%;right:-10%}.hero-container{z-index:1;gap:var(--space-12);padding-block:var(--space-24);flex-direction:column;display:flex;position:relative}.hero-content{max-width:52ch}.hero-eyebrow{align-items:center;gap:var(--space-2);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-accent-300);margin-bottom:var(--space-5);display:inline-flex}.hero-eyebrow:before{content:"";background:var(--color-accent-400);flex-shrink:0;width:2rem;height:2px;display:inline-block}.hero h1{font-family:var(--font-heading);font-size:clamp(var(--text-4xl), 6vw, 5rem);font-weight:var(--weight-extrabold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-neutral-0);margin-bottom:var(--space-6)}.hero-content p{font-size:var(--text-lg);color:var(--color-primary-200);line-height:var(--leading-normal);max-width:48ch;margin-bottom:var(--space-10)}.hero-cta{display:inline-flex}.hero-scroll{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-primary-300);transition:color var(--transition-fast);text-decoration:none;display:flex}.hero-scroll:hover{color:var(--color-neutral-0)}.hero-scroll-icon{border:1px solid var(--color-primary-500);border-radius:var(--radius-full);width:2rem;height:2rem;font-size:var(--text-xs);justify-content:center;align-items:center;display:flex}.hero-visual{pointer-events:none;-webkit-user-select:none;user-select:none;flex:none;display:none}.hero-visual img{opacity:.85;filter:drop-shadow(0 24px 48px #6b3fa066);width:100%;height:auto;display:block}@media (width>=64em){.hero-container{padding-block:var(--space-24);flex-direction:row;align-items:center}.hero-content{flex:auto}.hero-visual{width:38%;max-width:400px;display:block}}.skip-link{top:var(--space-3);left:var(--space-3);z-index:9999;padding:var(--space-2) var(--space-4);background:var(--color-primary-500);color:#fff;font-size:var(--text-sm);border-radius:var(--radius-md);white-space:nowrap;transform:translateY(calc(-100% - var(--space-3)));transition:transform var(--transition-fast);font-weight:600;text-decoration:none;display:inline-block;position:absolute}.skip-link:focus{outline-offset:2px;outline:2px solid #fff;transform:translateY(0)}.badge{padding:var(--space-1) var(--space-3);font-family:var(--font-heading);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);border-radius:var(--radius-full);white-space:nowrap;align-items:center;line-height:1;display:inline-flex}.badge[data-cycle=daw]{background-color:var(--color-primary-100);color:var(--color-primary-700)}.badge[data-cycle=dam]{color:#1a7a4a;background-color:#e0f5ee}.badge[data-cycle=asir]{background-color:var(--color-accent-100);color:var(--color-accent-700)}.badge[data-cycle=smx]{color:#1a5fa8;background-color:#def}.badge[data-type=year]{background-color:var(--color-neutral-100);color:var(--color-neutral-600)}.badge[data-type=category]{background-color:var(--color-primary-100);color:var(--color-primary-700)}.badge[data-type=course]{background-color:var(--color-primary-200);color:var(--color-primary-800)}.badge[data-type=tag]{background-color:var(--color-primary-50);color:var(--color-primary-600)}a.badge[data-type=category]:hover,a.badge[data-type=course]:hover,a.badge[data-type=tag]:hover{background-color:var(--color-primary-200);color:var(--color-primary-800)}.badge[data-type=tech]{background-color:var(--color-neutral-100);color:var(--color-neutral-700);font-family:var(--font-mono);letter-spacing:0;font-size:.7rem}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);border-radius:var(--radius-full);cursor:pointer;white-space:nowrap;transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);-webkit-user-select:none;user-select:none;border:2px solid #0000;line-height:1;text-decoration:none;display:inline-flex}.btn:focus-visible{outline:2px solid var(--color-primary-400);outline-offset:3px}.btn:active{transform:scale(.97)}.btn[data-variant=primary]{background-color:var(--color-primary-500);color:var(--color-text-inverse);border-color:var(--color-primary-500)}.btn[data-variant=primary]:hover{background-color:var(--color-primary-600);border-color:var(--color-primary-600)}.btn[data-variant=secondary]{background-color:var(--color-primary-100);color:var(--color-primary-700);border-color:var(--color-primary-100)}.btn[data-variant=secondary]:hover{background-color:var(--color-primary-200);border-color:var(--color-primary-200)}.btn[data-variant=ghost]{color:var(--color-primary-600);border-color:var(--color-primary-300);background-color:#0000}.btn[data-variant=ghost]:hover{background-color:var(--color-primary-50);border-color:var(--color-primary-400)}.btn[data-size=sm]{padding:var(--space-2) var(--space-4);font-size:var(--text-xs)}.btn[data-size=lg]{padding:var(--space-4) var(--space-8);font-size:var(--text-base)}.btn[data-type=icon]{padding:var(--space-3);border-radius:var(--radius-full);width:44px;height:44px}.btn[data-type=icon][data-size=sm]{width:36px;height:36px;padding:var(--space-2)}.card{height:100%;color:inherit;text-decoration:none;display:flex}.card.is-hidden{display:none}.card-surface{background:var(--color-bg-card,#fff);border-radius:var(--radius-lg,12px);box-shadow:var(--shadow-sm,0 2px 4px #0000001a);transition:transform var(--transition-base,.3s), box-shadow var(--transition-base,.3s);flex-direction:column;width:100%;display:flex;overflow:hidden}.card-surface:hover{box-shadow:var(--shadow-card-hover,0 10px 20px #00000026);transform:translateY(-4px)}.card-media{aspect-ratio:3/2;background:var(--color-neutral-200,#eee);flex-shrink:0;position:relative;overflow:hidden}.card-image{object-fit:cover;width:100%;height:100%;transition:transform .6s}.card-surface:hover .card-image{transform:scale(1.05)}.card-body{padding:var(--space-6,1.5rem);flex-direction:column;flex-grow:1;display:flex}.card-badges{gap:var(--space-2,.5rem);margin-bottom:var(--space-3,.75rem);flex-wrap:wrap;display:flex}.card-title{font-size:var(--text-xl,1.25rem);margin-bottom:var(--space-2,.5rem);color:var(--color-text,#111);overflow-wrap:anywhere;font-weight:600}.card-description{font-size:var(--text-sm,.875rem);color:var(--color-text-muted,#666);margin-bottom:var(--space-5,1.25rem);overflow-wrap:anywhere;flex-grow:1;line-height:1.5}.card footer{padding-top:var(--space-4,1rem);border-top:1px solid var(--color-border,#eee);justify-content:space-between;align-items:center;margin-top:auto;display:flex}.card-student{font-size:var(--text-sm,.875rem);font-weight:500}.card-professor{font-size:var(--text-xs,.75rem);color:var(--color-text-muted,#666)}.header{position:relative}.header-inner{padding-block:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-8);display:flex}.header-logo{transition:opacity var(--transition-fast);flex-shrink:0;align-items:center;display:flex}.header-logo:hover{opacity:.85}.header-logo:focus-visible{outline:2px solid var(--color-primary-400);outline-offset:4px;border-radius:var(--radius-sm)}.header-nav{align-items:center;gap:var(--space-8);display:none}@media (width>=64em){.header-nav{display:flex}}.nav-link{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wide);color:var(--color-text-muted);transition:color var(--transition-fast);padding-bottom:var(--space-1);position:relative}.nav-link:after{content:"";background:var(--color-primary-500);border-radius:var(--radius-full);width:0;height:2px;transition:width var(--transition-base);position:absolute;bottom:0;left:0}.nav-link:hover{color:var(--color-text)}.nav-link:hover:after{width:100%}.nav-link[aria-current=page]{color:var(--color-primary-500);font-weight:var(--weight-semibold)}.nav-link[aria-current=page]:after{width:100%}.nav-link:focus-visible{outline:2px solid var(--color-primary-400);outline-offset:4px;border-radius:var(--radius-sm)}.header-actions{align-items:center;gap:var(--space-4);flex-shrink:0;display:flex}.menu-toggle{border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text);transition:background-color var(--transition-fast), color var(--transition-fast);justify-content:center;align-items:center;display:flex}.menu-toggle:hover{background-color:var(--color-neutral-100)}.menu-toggle:focus-visible{outline:2px solid var(--color-primary-400);outline-offset:2px}@media (width>=64em){.menu-toggle{display:none}}.menu-icon{flex-direction:column;justify-content:center;gap:5px;width:22px;height:22px;display:flex}.menu-icon span{border-radius:var(--radius-full);width:22px;height:2px;transition:transform var(--transition-base), opacity var(--transition-fast), width var(--transition-base);transform-origin:50%;background:currentColor;display:block}.menu-toggle[aria-expanded=true] .menu-icon span:first-child{transform:translateY(7px)rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-icon span:nth-child(2){opacity:0;width:0}.menu-toggle[aria-expanded=true] .menu-icon span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.footer-inner{padding-block:var(--space-12)}.footer-top{justify-content:space-between;gap:var(--space-8);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.footer-brand{max-width:320px}.footer-brand-name{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-neutral-0);margin-bottom:var(--space-3)}.footer-brand-desc{font-size:var(--text-sm);color:var(--color-neutral-400);line-height:var(--leading-normal)}.footer-links{gap:var(--space-12);flex-wrap:wrap;display:flex}.footer-link-group-title{font-family:var(--font-heading);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-neutral-400);margin-bottom:var(--space-3)}.footer-link-group-items{gap:var(--space-2);flex-direction:column;display:flex}.footer-link{font-size:var(--text-sm);color:var(--color-neutral-300);transition:color var(--transition-fast)}.footer-link:hover{color:var(--color-primary-300)}.footer-link:focus-visible{outline:2px solid var(--color-primary-400);outline-offset:2px;border-radius:var(--radius-sm)}.footer-cycle-item{font-size:var(--text-sm);color:var(--color-neutral-400)}.site-footer hr{border:none;border-top:1px solid var(--color-neutral-700);margin-bottom:var(--space-6)}.footer-bottom{justify-content:space-between;gap:var(--space-4);font-size:var(--text-xs);color:var(--color-neutral-500);flex-wrap:wrap;display:flex}.mobile-nav{z-index:200;visibility:hidden;opacity:0;transition:opacity var(--transition-base), visibility var(--transition-base);background:oklch(0% 0 0/.5);position:fixed;inset:0}.mobile-nav.is-open{visibility:visible;opacity:1}.mobile-nav-inner{gap:var(--space-1);width:min(320px,85vw);padding:var(--space-6) var(--space-4);background:var(--color-bg-elevated);box-shadow:var(--shadow-lg);transition:transform var(--transition-base);overscroll-behavior:contain;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}.mobile-nav.is-open .mobile-nav-inner{transform:translate(0)}.mobile-close{margin-bottom:var(--space-4);justify-content:flex-end;display:flex}.mobile-close-btn{background:var(--color-neutral-100);border:1px solid var(--color-border);border-radius:var(--radius-md);width:2.25rem;height:2.25rem;font-size:var(--text-lg);color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);place-items:center;line-height:1;display:grid}.mobile-close-btn:hover{background:var(--color-neutral-200);color:var(--color-text)}.mobile-nav-link{padding:var(--space-3) var(--space-4);font-size:var(--text-lg);color:var(--color-text);border-radius:var(--radius-md);transition:background var(--transition-fast), color var(--transition-fast);font-weight:500;text-decoration:none;display:block}.mobile-nav-link:hover{background:var(--color-neutral-100)}.mobile-nav-link[aria-current=page]{background:oklch(from var(--color-primary-500) l c h / .08);color:var(--color-primary-500);font-weight:600}.mobile-nav .lang-switcher{padding:var(--space-3) var(--space-4);margin-top:auto}.lang-switcher{align-items:center;gap:var(--space-2);font-family:var(--font-heading);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-widest);text-transform:uppercase;display:inline-flex}.lang-switcher-option{color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast);padding:var(--space-1) 0;border-bottom:1px solid #0000;line-height:1}.lang-switcher-option:hover{color:var(--color-text)}.lang-switcher-option[aria-pressed=true]{color:var(--color-primary-500);border-bottom-color:var(--color-primary-400)}.lang-switcher-option:focus-visible{outline:2px solid var(--color-primary-400);outline-offset:2px;border-radius:var(--radius-sm)}.lang-switcher-sep{color:var(--color-neutral-300);-webkit-user-select:none;user-select:none;line-height:1}.carousel{background-color:var(--color-neutral-900);aspect-ratio:3/2;position:relative;overflow:hidden}.carousel-track{height:100%;transition:transform var(--duration-slow) var(--ease-out);will-change:transform;display:flex}.carousel-slide{flex:0 0 100%;position:relative;overflow:hidden}.carousel-slide img{object-fit:cover;width:100%;height:100%;display:block}.carousel-btn{z-index:2;border-radius:var(--radius-full);width:2.5rem;height:2.5rem;color:var(--color-neutral-800);cursor:pointer;box-shadow:var(--shadow-md);transition:background-color var(--transition-fast), transform var(--transition-fast);background-color:#ffffffd9;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.carousel-btn:hover{background-color:var(--color-neutral-0);transform:translateY(-50%)scale(1.08)}.carousel-btn:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.carousel-btn[data-direction=prev]{left:var(--space-3)}.carousel-btn[data-direction=next]{right:var(--space-3)}.carousel-btn img{pointer-events:none;width:1.25rem;height:1.25rem}.carousel-dots{bottom:var(--space-3);z-index:2;gap:var(--space-2);align-items:center;display:flex;position:absolute;left:50%;transform:translate(-50%)}.carousel-dot{border-radius:var(--radius-full);cursor:pointer;width:.5rem;height:.5rem;transition:background-color var(--transition-fast), transform var(--transition-fast);background-color:#ffffff80;border:none;padding:0}.carousel-dot:hover{background-color:#fffc}.carousel-dot.is-active{background-color:var(--color-neutral-0);transform:scale(1.25)}.carousel-dot:focus-visible{outline:2px solid var(--color-neutral-0);outline-offset:2px}.modal{z-index:var(--z-modal);padding:var(--space-4);visibility:hidden;opacity:0;transition:opacity var(--duration-base) var(--ease-out), visibility var(--duration-base) var(--ease-out);place-items:center;display:grid;position:fixed;inset:0}.modal.is-open{visibility:visible;opacity:1}.modal-backdrop{background-color:var(--color-bg-overlay);cursor:pointer;position:absolute;inset:0}.modal-dialog{z-index:1;overscroll-behavior:contain;background-color:var(--color-bg-elevated);border-radius:var(--radius-xl);width:95vw;max-width:900px;max-height:90vh;box-shadow:var(--shadow-xl);transition:transform var(--duration-base) var(--ease-out);grid-template-rows:auto 1fr;grid-template-columns:1fr;display:grid;position:relative;overflow-y:auto;transform:translateY(1.5rem)scale(.98)}.modal.is-open .modal-dialog{transform:translateY(0)scale(1)}@media (width>=48em){.modal-dialog{grid-template-rows:1fr;grid-template-columns:55% 45%;max-height:85vh;overflow:hidden}}.modal-close{top:var(--space-3);right:var(--space-3);z-index:2;border-radius:var(--radius-full);cursor:pointer;width:2.25rem;height:2.25rem;color:var(--color-neutral-700);box-shadow:var(--shadow-sm);transition:background-color var(--transition-fast), transform var(--transition-fast);background-color:#ffffffe6;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.modal-close:hover{background-color:var(--color-neutral-0);transform:scale(1.1)}.modal-close:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.modal-close img{pointer-events:none;width:1.125rem;height:1.125rem}.modal-carousel{border-radius:var(--radius-xl) var(--radius-xl) 0 0;aspect-ratio:3/2;flex-shrink:0}@media (width>=48em){.modal-carousel{border-radius:var(--radius-xl) 0 0 var(--radius-xl);aspect-ratio:unset;height:100%}}.modal-content{padding:var(--space-6) var(--space-6) var(--space-8);gap:var(--space-4);flex-direction:column;display:flex;overflow-y:auto}@media (width>=48em){.modal-content{padding:var(--space-8) var(--space-6)}}.modal-badges{gap:var(--space-2);flex-wrap:wrap;display:flex}.modal-content h2{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);color:var(--color-text);margin:0}@media (width>=48em){.modal-content h2{font-size:var(--text-2xl)}}.modal-content p{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-text-muted);margin:0}.modal-meta{gap:var(--space-3);padding:var(--space-4);background-color:var(--color-neutral-50);border-radius:var(--radius-md);border:1px solid var(--color-border);grid-template-columns:repeat(3,1fr);margin:0;display:grid}.modal-meta-item{gap:var(--space-1);flex-direction:column;display:flex}.modal-meta-label{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-muted)}.modal-meta-value{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.modal-tech-label,.modal-tags-label{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-2);display:block}.modal-tech-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.tech-chip{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-primary-700);background-color:var(--color-primary-50);border:1px solid var(--color-primary-100);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);white-space:nowrap}.modal-tag-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.modal-tag{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-neutral-600);background-color:var(--color-neutral-100);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);white-space:nowrap}.modal-cta{align-self:flex-start;margin-top:auto}.card-quick-view{cursor:pointer;border-radius:inherit;width:100%;height:100%;font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);color:var(--color-text-inverse);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity var(--transition-base);background-color:#6b3fa0bf;border:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.card:hover .card-quick-view,.card:focus-within .card-quick-view{opacity:1}.card-quick-view:focus-visible{opacity:1;outline:3px solid var(--color-accent-400);outline-offset:-3px}.back-to-top{bottom:var(--space-8);right:var(--space-8);border-radius:var(--radius-full);background:var(--color-primary-600);width:3rem;height:3rem;color:var(--color-neutral-0);cursor:pointer;font-size:1.25rem;font-weight:var(--weight-bold);z-index:var(--z-sticky);box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity var(--transition-base), translate var(--transition-base), background var(--transition-fast), box-shadow var(--transition-fast);border:none;justify-content:center;align-items:center;line-height:1;display:flex;position:fixed;translate:0 1rem}.back-to-top.is-visible{opacity:1;pointer-events:auto;translate:0}.back-to-top:hover{background:var(--color-primary-700);box-shadow:var(--shadow-xl)}.back-to-top:active{background:var(--color-primary-800);translate:0 1px}.back-to-top:focus-visible{outline:2px solid var(--color-primary-400);outline-offset:3px}@media (width<=40em){.back-to-top{bottom:var(--space-5);right:var(--space-4);width:2.75rem;height:2.75rem}}.pagination{justify-content:center;align-items:center;gap:var(--space-2);padding-block:var(--space-12) var(--space-16);flex-wrap:wrap;display:flex}.pagination-list{display:flex}.pagination-link{min-width:2.5rem;height:2.5rem;padding-inline:var(--space-3);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);background:var(--color-neutral-0);border:1.5px solid var(--color-border);cursor:pointer;transition:color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}a.pagination-link:hover{border-color:var(--color-primary-400);color:var(--color-primary-700);background:var(--color-primary-50)}a.pagination-link:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.pagination-item.active .pagination-link{background:var(--color-primary-600);border-color:var(--color-primary-600);color:var(--color-neutral-0);font-weight:var(--weight-semibold);cursor:default;pointer-events:none}.pagination-item[aria-disabled=true] .pagination-link{opacity:.38;cursor:default;pointer-events:none}.pagination-item[aria-hidden=true] .pagination-link{color:var(--color-text-muted);cursor:default;pointer-events:none;-webkit-user-select:none;user-select:none;background:0 0;border-color:#0000}.filter-toolbar{background:var(--color-neutral-0);border-bottom:1px solid var(--color-border);z-index:var(--z-sticky);position:sticky;top:0}.filter-toolbar-inner{align-items:center;gap:var(--space-3);padding-block:var(--space-4);flex-wrap:wrap;display:flex}.filter-select-wrap{align-items:center;display:inline-flex;position:relative}.filter-select-wrap:after{content:"";right:var(--space-3);border-right:1.5px solid var(--color-neutral-500);border-bottom:1.5px solid var(--color-neutral-500);pointer-events:none;width:.5rem;height:.5rem;margin-top:-2px;position:absolute;top:50%;translate:0 -50%;rotate:45deg}.filter-toolbar select{appearance:none;background:var(--color-neutral-0);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-8) var(--space-2) var(--space-3);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);cursor:pointer;min-width:9rem;transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.filter-toolbar select:hover{border-color:var(--color-primary-400)}.filter-toolbar select:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px;border-color:var(--color-primary-400)}.filter-toolbar select.is-active{border-color:var(--color-primary-500);background:var(--color-primary-50);color:var(--color-primary-800)}.filter-count{font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap;aria-live:polite;margin-left:auto}.filter-count strong{color:var(--color-text);font-weight:var(--weight-semibold)}.filter-reset{align-items:center;gap:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-primary-600);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;display:none}.filter-reset.is-visible{display:inline-flex}.filter-reset:hover{background:var(--color-primary-50)}.filter-reset:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}@media (width>=64em){.filter-toolbar-inner{flex-wrap:nowrap}}.projects-sidebar{flex-direction:column;gap:0;display:flex}.sidebar-section{padding:var(--space-5) 0;border-bottom:1px solid var(--color-border)}.sidebar-section:first-child{padding-top:0}.sidebar-section:last-child{border-bottom:none;padding-bottom:0}.sidebar-section-title{font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-muted);margin:0 0 var(--space-3) 0}.sidebar-search-form{margin:0}.sidebar-search-wrap{align-items:center;display:flex;position:relative}.sidebar-search-input{width:100%;padding:var(--space-2) var(--space-10) var(--space-2) var(--space-3);font-size:var(--text-sm);font-family:var(--font-body);color:var(--color-text);background:var(--color-neutral-100);border:1px solid var(--color-border);border-radius:var(--radius-full);transition:border-color var(--transition-fast), background var(--transition-fast);outline:none}.sidebar-search-input::placeholder{color:var(--color-neutral-400)}.sidebar-search-input:focus{background:var(--color-bg-card);border-color:var(--color-primary-400);box-shadow:0 0 0 3px var(--color-primary-100)}.sidebar-search-btn{right:var(--space-2);width:28px;height:28px;color:var(--color-neutral-400);cursor:pointer;border-radius:var(--radius-full);transition:color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.sidebar-search-btn:hover{color:var(--color-primary-600)}.sidebar-all-link{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted);transition:color var(--transition-fast), background var(--transition-fast);text-decoration:none;display:block}.sidebar-all-link:hover{color:var(--color-primary-600);background:var(--color-primary-50)}.sidebar-all-link.is-active{color:var(--color-primary-700);background:var(--color-primary-100)}.sidebar-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.sidebar-link{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);border-radius:var(--radius-md);transition:color var(--transition-fast), background var(--transition-fast);text-decoration:none;display:flex}.sidebar-link:hover{color:var(--color-primary-600);background:var(--color-primary-50)}.sidebar-link.is-active{color:var(--color-primary-700);background:var(--color-primary-100);font-weight:var(--weight-semibold)}.sidebar-link-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sidebar-count{min-width:20px;height:20px;padding:0 var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-neutral-500);background:var(--color-neutral-100);border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex}.sidebar-link.is-active .sidebar-count{color:var(--color-primary-600);background:var(--color-primary-100)}.sidebar-recent-list{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.sidebar-recent-item{margin:0}.sidebar-recent-link{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:background var(--transition-fast);flex-direction:column;gap:2px;text-decoration:none;display:flex}.sidebar-recent-link:hover{background:var(--color-primary-50)}.sidebar-recent-link:hover .sidebar-recent-title{color:var(--color-primary-600)}.sidebar-recent-title{font-size:var(--text-sm);color:var(--color-text);font-weight:var(--weight-medium);-webkit-line-clamp:2;line-height:var(--leading-snug);transition:color var(--transition-fast);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.sidebar-recent-date{font-size:var(--text-xs);color:var(--color-text-muted)}.sidebar-tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.sidebar-tag{font-size:var(--text-xs);transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);text-decoration:none}.sidebar-tag-count{opacity:.65;margin-left:2px;font-size:.7em}.sidebar-tag.is-active{background:var(--color-primary-600);color:var(--color-neutral-0);border-color:var(--color-primary-600)}.section{padding-block:var(--space-20)}.section-header{align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-12);flex-wrap:wrap;display:flex}.section-header h2{font-family:var(--font-heading);font-size:clamp(var(--text-2xl), 4vw, var(--text-4xl));font-weight:var(--weight-extrabold);letter-spacing:var(--tracking-tight);color:var(--color-neutral-900);flex:auto}.section-eyebrow{width:100%;font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-primary-500);margin-bottom:var(--space-2);display:block}.featured-projects{background:var(--color-neutral-0);padding:var(--space-10) 0}.featured-grid{gap:var(--space-6);margin-bottom:var(--space-10);grid-template-columns:1fr;display:grid}@media (width>=40em){.featured-grid{grid-template-columns:1fr 1fr}}@media (width>=64em){.featured-grid{grid-template-columns:2fr 1fr 1fr;align-items:stretch}.featured-grid--inverted{grid-template-columns:1fr 1fr 2fr}.featured-grid:not(.featured-grid--inverted) article:first-child .card-media,.featured-grid--inverted article:nth-child(3) .card-media{aspect-ratio:21/9}.featured-grid--inverted article:first-child .card-media{aspect-ratio:3/2}}.stats-strip{background:linear-gradient(135deg, var(--color-primary-900) 0%, var(--color-primary-800) 100%);padding-block:var(--space-16)}.stats-inner{gap:var(--space-10) var(--space-8);text-align:center;grid-template-columns:repeat(2,1fr);display:grid}.stat-item{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.stat-number{font-family:var(--font-heading);font-size:clamp(var(--text-4xl), 6vw, var(--text-5xl));font-weight:var(--weight-extrabold);letter-spacing:var(--tracking-tight);color:var(--color-neutral-0);line-height:1}.stat-number:after{content:attr(data-suffix);color:var(--color-accent-400);margin-left:2px;font-size:.6em}.stat-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-primary-300);letter-spacing:var(--tracking-wide);text-transform:uppercase}@media (width>=40em){.stats-inner{grid-template-columns:repeat(4,1fr)}}.about-teaser{background:var(--color-neutral-50);overflow:hidden}.about-teaser-inner{gap:var(--space-12);grid-template-columns:1fr;align-items:center;display:grid}.about-teaser-content{align-items:flex-start;gap:var(--space-5);flex-direction:column;display:flex}.about-teaser-content h2{font-family:var(--font-heading);font-size:clamp(var(--text-2xl), 4vw, var(--text-4xl));font-weight:var(--weight-extrabold);letter-spacing:var(--tracking-tight);color:var(--color-neutral-900);line-height:var(--leading-tight)}.about-teaser-content p{font-size:var(--text-lg);color:var(--color-neutral-600);line-height:var(--leading-normal);max-width:52ch}.about-teaser-figure{border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);aspect-ratio:4/3;margin:0;overflow:hidden}.about-teaser-figure img{object-fit:cover;width:100%;height:100%;transition:transform var(--duration-slower) var(--ease-out);display:block}.about-teaser-figure:hover img{transform:scale(1.03)}@media (width>=64em){.about-teaser-inner{gap:var(--space-20);grid-template-columns:1fr 1fr}}.projects-header{background:linear-gradient(160deg, var(--color-primary-900) 0%, var(--color-primary-800) 100%);padding-block:var(--space-16) var(--space-12);position:relative;overflow:hidden}.projects-header:after{content:"";aspect-ratio:1;background:radial-gradient(circle, var(--color-primary-500) 0%, transparent 70%);opacity:.2;pointer-events:none;border-radius:50%;width:400px;position:absolute;top:-30%;right:-5%}.projects-header-inner{z-index:1;position:relative}.projects-header h1{font-family:var(--font-heading);font-size:clamp(var(--text-3xl), 5vw, var(--text-5xl));font-weight:var(--weight-extrabold);letter-spacing:var(--tracking-tight);color:var(--color-neutral-0);line-height:var(--leading-tight);margin-bottom:var(--space-4)}.projects-header p{font-size:var(--text-lg);color:var(--color-primary-200);max-width:56ch;line-height:var(--leading-normal)}.projects-page{padding-block:var(--space-12)}.projects-toolbar{align-items:center;gap:var(--space-3) var(--space-4);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.projects-context-title{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text);flex:100%;margin:0}@media (width>=640px){.projects-context-title{flex:auto}}.projects-toolbar-meta{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.projects-count{font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap}.projects-empty{align-items:center;gap:var(--space-4);padding-block:var(--space-20);text-align:center;color:var(--color-text-muted);flex-direction:column;grid-column:1/-1;display:flex}.projects-empty p{font-size:var(--text-lg);max-width:36ch}.pagination-wrapper{margin-top:var(--space-10)}.about-hero,.about-mission,.about-stats,.about-programs{padding-block:var(--space-16)}.about-hero{background:linear-gradient(135deg, var(--color-primary-800) 0%, var(--color-primary-600) 60%, var(--color-primary-500) 100%);color:var(--color-text-inverse);padding-block:var(--space-20) var(--space-16);position:relative;overflow:hidden}.about-hero:before{content:"";pointer-events:none;background-image:radial-gradient(80% 60% at 100% 0,#e8b84b1f 0%,#0000 60%);position:absolute;inset:0}.about-hero-breadcrumb{margin-block-end:var(--space-8)}.about-hero-breadcrumb ol{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.about-hero-breadcrumb a{color:#ffffffb3;font-size:var(--text-sm);transition:color var(--transition-fast);text-decoration:none}.about-hero-breadcrumb a:hover{color:var(--color-text-inverse)}.about-hero-breadcrumb .breadcrumb-sep{color:#fff6;font-size:var(--text-sm)}.about-hero-breadcrumb .breadcrumb-current{color:#ffffffe6;font-size:var(--text-sm)}.about-hero-content{max-width:680px;position:relative}.about-hero h1{font-family:var(--font-heading);font-size:var(--text-5xl);font-weight:var(--weight-extrabold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text-inverse);margin-block-end:var(--space-4)}.about-hero-content p{font-family:var(--font-body);font-size:var(--text-xl);font-weight:var(--weight-regular);line-height:var(--leading-normal);color:#ffffffd9;max-width:560px}.about-mission-header,.about-programs-header{text-align:center;max-width:600px;margin-block-end:var(--space-12);margin-inline:auto}.about-mission-title,.about-programs-title{font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text);margin-block-end:var(--space-3)}.about-mission-intro,.about-programs-intro{font-family:var(--font-body);font-size:var(--text-lg);color:var(--color-text-muted);line-height:var(--leading-normal)}.about-split{gap:var(--space-8);grid-template-columns:1fr;align-items:center;display:grid}.about-split+.about-split{border-top:1px solid var(--color-border);margin-block-start:var(--space-12);padding-block-start:var(--space-12)}.about-split-media{border-radius:var(--radius-2xl);aspect-ratio:4/3;box-shadow:var(--shadow-md);overflow:hidden}.about-split-media img{object-fit:cover;width:100%;height:100%;transition:transform .6s;display:block}.about-split:hover .about-split-media img{transform:scale(1.04)}.about-split-content{gap:var(--space-4);flex-direction:column;display:flex}.about-split-icon{border-radius:var(--radius-lg);background-color:var(--color-primary-50);width:64px;height:64px;color:var(--color-primary-600);flex-shrink:0;justify-content:center;align-items:center;display:flex}.about-split-content h3{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text)}.about-split-content p{font-family:var(--font-body);font-size:var(--text-lg);line-height:var(--leading-normal);color:var(--color-text-muted)}@media (width>=64em){.about-split{gap:var(--space-16);grid-template-columns:1fr 1fr}.about-split[data-reverse] .about-split-media{order:2}.about-split[data-reverse] .about-split-content{order:1}}.about-stats{background-color:var(--color-primary-50);border-block:1px solid var(--color-primary-100)}.about-stats-header{text-align:center;max-width:560px;margin-block-end:var(--space-12);margin-inline:auto}.about-stats-title{font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text);margin-block-end:var(--space-3)}.about-stats-intro{font-family:var(--font-body);font-size:var(--text-lg);color:var(--color-text-muted);line-height:var(--leading-normal)}.about-stats-grid{gap:var(--space-6);grid-template-columns:1fr 1fr;display:grid}.about-stats-item{text-align:center;align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);background-color:var(--color-bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.about-stats-number{font-family:var(--font-heading);font-size:var(--text-5xl);font-weight:var(--weight-extrabold);color:var(--color-accent-400);letter-spacing:var(--tracking-tight);line-height:1}.about-stats-label{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);letter-spacing:var(--tracking-wide);text-transform:uppercase}@media (width>=64em){.about-stats-grid{grid-template-columns:repeat(4,1fr)}}.about-mission{background-color:var(--color-bg)}.about-programs{background-color:var(--color-bg-card);border-top:1px solid var(--color-border)}@media (width>=40em){.about-hero h1{font-size:var(--text-6xl)}}.lazy{opacity:0;transition:opacity var(--transition-slow)}.lazy.is-loaded{opacity:1}.breadcrumb{background-color:var(--color-bg);border-bottom:1px solid var(--color-border)}.breadcrumb ol{align-items:center;gap:var(--space-1) var(--space-2);padding:var(--space-3) 0;font-size:var(--text-sm);font-family:var(--font-body);flex-wrap:wrap;margin:0;list-style:none;display:flex}.breadcrumb ol li{align-items:center;gap:var(--space-2);display:flex}.breadcrumb a{color:var(--color-text-muted);transition:color var(--transition-fast);text-decoration:none}.breadcrumb a:hover{color:var(--color-primary-500)}.breadcrumb a:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px;border-radius:var(--radius-sm)}.breadcrumb-sep{color:var(--color-neutral-300);font-size:var(--text-xs);-webkit-user-select:none;user-select:none}.breadcrumb-current{color:var(--color-text);font-weight:var(--weight-medium)}.project-detail{display:block}.project-detail-hero{background-color:var(--color-neutral-900);width:100%;max-height:55vh;position:relative;overflow:hidden}@media (width>=40em){.project-detail-hero{max-height:60vh}}@media (width>=64em){.project-detail-hero{max-height:70vh}}.project-detail-hero figure{width:100%;height:100%;margin:0}.project-detail-hero img{object-fit:cover;width:100%;height:100%;min-height:220px;display:block}@media (width>=40em){.project-detail-hero img{min-height:300px}}@media (width>=64em){.project-detail-hero img{min-height:400px}}.project-detail-hero-overlay{padding-top:var(--space-16);padding-bottom:var(--space-8);background:linear-gradient(#0000 0%,#1a172280 50%,#1a1722e0 100%);position:absolute;bottom:0;left:0;right:0}.project-detail-hero-badges{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.project-detail-hero h1{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-neutral-0);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);margin:0}@media (width>=40em){.project-detail-hero h1{font-size:var(--text-3xl)}}@media (width>=64em){.project-detail-hero h1{font-size:var(--text-4xl)}}.project-detail-body{gap:var(--space-10);padding-block:var(--space-10);flex-direction:column;display:flex}@media (width>=64em){.project-detail-body{gap:var(--space-12);grid-template-columns:1fr 360px;align-items:start;display:grid}}.project-detail-main{gap:var(--space-10);flex-direction:column;min-width:0;display:flex}.project-detail-section{flex-direction:column;display:flex}.project-detail-section h2{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text);margin:0 0 var(--space-4);padding-bottom:var(--space-2);border-bottom:2px solid var(--color-primary-100)}.project-detail-description{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-loose);color:var(--color-text-muted);margin:0}.project-detail-gallery{margin:0}.project-detail-carousel{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.project-detail-gallery-caption{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);text-align:center}.project-detail-sidebar{gap:var(--space-6);flex-direction:column;display:flex}.project-detail-sidebar h2{margin-bottom:var(--space-4)}@media (width>=64em){.project-detail-sidebar{top:calc(var(--header-height,64px) + var(--space-6));align-self:start;position:sticky}}.project-detail-meta-card{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.project-detail-meta{gap:var(--space-4);grid-template-columns:1fr;margin:0;display:grid}.project-detail-meta-item{gap:var(--space-1);flex-direction:column;display:flex}.project-detail-meta dt{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--color-text-muted)}.project-detail-meta dd{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);line-height:var(--leading-snug);margin:0}.project-detail-tech-section{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.project-detail-tech-list{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.project-detail-tags{gap:var(--space-2);padding:var(--space-4) var(--space-6);background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-wrap:wrap;display:flex}.project-detail-nav{border-top:1px solid var(--color-border);background-color:var(--color-bg-card);padding-block:var(--space-8);margin-top:var(--space-10)}.project-detail-nav-inner{justify-content:space-between;align-items:stretch;gap:var(--space-4);display:flex}.project-detail-nav-link{gap:var(--space-1);max-width:48%;padding:var(--space-4) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-bg);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);flex-direction:column;flex:1;text-decoration:none;display:flex}.project-detail-nav-link:hover{border-color:var(--color-primary-300);box-shadow:var(--shadow-md);background-color:var(--color-bg-card)}.project-detail-nav-link:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.project-detail-nav-link[data-direction=prev]{align-items:flex-start}.project-detail-nav-link[data-direction=next]{text-align:right;align-items:flex-end}.project-detail-nav-link[aria-disabled=true]{opacity:.35;pointer-events:none;cursor:default}.project-detail-nav-arrow{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-primary-500);line-height:1}.project-detail-nav-label{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--color-text-muted)}.project-detail-nav-title{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);line-height:var(--leading-snug)}
