*,*:before,*:after{box-sizing:border-box}*{margin:0}body{line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeSpeed;display:flex;flex-direction:column;align-items:center;min-width:100%}img,picture,video,canvas,svg{display:block;max-width:100%}img,picture,video{height:auto}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}#root,#__next{isolation:isolate}ul[role=list],ol[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}button{background:none;border:none;cursor:pointer}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media (prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:focus-visible{outline:2px solid #4338ca;outline-offset:2px}:focus:not(:focus-visible){outline:none}:root{font-size:16px;--page-max-width: 1200px;--global-border-radius: 8px;--grid-size: 40px;--bg-color: #eeebf9;--line: #d1c4e9;--accent-color: #896ce5}html,body{height:100%}html{background-color:var(--bg-color);font-family:JetBrains Mono,monospace;font-optical-sizing:auto;font-style:normal;overflow-x:auto}.grid-bg{position:fixed;inset:0;pointer-events:none;z-index:0;background:var(--bg-color);overflow:hidden}.grid-bg:before{content:"";position:absolute;inset:-25%;background-image:url(/images/grid-tile.svg);background-size:var(--grid-size) var(--grid-size);background-repeat:repeat;animation:grid-move 8s linear infinite;contain:paint}@media (prefers-reduced-motion: reduce){.grid-bg:before{animation:none}}.grid-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 55%,#dfd7ff71 100%);pointer-events:none}@keyframes grid-move{to{background-position:var(--grid-size) var(--grid-size)}}.app-root,main,#root{position:relative;z-index:1}mark{--mark-highlight: rgba(255, 162, 223, .677);position:relative;background:none;color:inherit;z-index:1}mark:before{content:"";position:absolute;inset:.2em -.3em;background:var(--mark-highlight, #ffe066);transform:skew(-8deg,-2deg);z-index:-1;border-radius:4px;pointer-events:none}em{opacity:.8;color:#00f}.space-grotesk{font-family:Space Grotesk,sans-serif;font-optical-sizing:auto;font-style:normal}h1,h2,h3,h4,h5,h6,.widget-heading,.blog-posts>div .title,.project-content .title,.blog-line .title{font-family:Space Grotesk,sans-serif;font-optical-sizing:auto;font-style:normal}.jetbrains-mono{font-family:JetBrains Mono,monospace;font-optical-sizing:auto;font-style:normal}.inter{font-family:Inter,sans-serif;font-optical-sizing:auto;font-style:normal}#root{width:100%;min-height:100vh;display:flex;flex-direction:column;align-items:center}.page-shell{width:min(var(--page-max-width),100%);flex-shrink:0}.page-layout{width:100%;box-sizing:border-box;display:flex;flex-direction:column;padding-top:40px;padding-bottom:40px}.page-shell:has(.homepage){width:fit-content;min-width:min(var(--page-max-width),100%)}.page-shell:has(.homepage) .page-layout{width:max-content;min-width:min(var(--page-max-width),100%)}.emoji-icon{font-size:28px;line-height:1em;height:1em}.content-block{background-color:#fff;border:2px solid black;border-radius:var(--global-border-radius);padding:20px;transition:transform .15s ease,box-shadow .15s ease}.widget-heading{display:block;font-family:Space Grotesk,sans-serif;font-weight:700;font-size:1em;line-height:1.2;border-bottom:2px solid black;padding-bottom:6px;margin-bottom:10px}.content-block:not(.intro):not(.post-content):not(.blog-posts-widget):not(.currently-reading-widget):not(.currently-playing-widget):hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--accent-color)}@media (prefers-reduced-motion: reduce){.content-block:not(.intro):not(.post-content):not(.blog-posts-widget):not(.currently-reading-widget):not(.currently-playing-widget):hover{transform:none}}.project-hero-thumbnail+.content-block{border-top:none;border-radius:0 0 var(--global-border-radius) var(--global-border-radius)}.site-header{--header-bar-size: 54px;--mark-highlight: rgba(255, 162, 223, .677);display:flex;align-items:center;gap:10px;margin-bottom:15px}.site-header .logo-link{display:block;width:var(--header-bar-size);height:var(--header-bar-size);box-sizing:border-box;flex-shrink:0;border:2px solid black;border-radius:var(--global-border-radius);overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.site-header .logo-link:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--accent-color)}@media (prefers-reduced-motion: reduce){.site-header .logo-link:hover{transform:none}}.site-header .logo{display:block;width:100%;height:100%;object-fit:cover}nav{display:flex;flex-direction:row;align-items:center;gap:24px;height:var(--header-bar-size);box-sizing:border-box;font-size:1.2em;background-color:#fff;border:2px solid black;border-radius:var(--global-border-radius);padding:0 20px}nav>div{position:relative;isolation:isolate;cursor:pointer;line-height:1.2;padding:0 2px}nav>div.active{font-weight:700}nav>div.active:before{content:">";position:relative;z-index:1}nav>div.active:after{content:"";position:absolute;inset:.1em -.15em .1em -.3em;background:var(--mark-highlight);transform:skew(-8deg,-2deg);z-index:-1;border-radius:4px;pointer-events:none}.homepage{--gap: 12px;display:flex;width:100%;align-items:flex-start;gap:var(--gap);container-type:inline-size}.homepage>.col1,.homepage>.col2{display:flex;flex-direction:column;gap:var(--gap)}.homepage>.col1{flex:1 1 auto}.homepage>.col2{width:300px;flex-shrink:0}.little-widget-carousel{display:flex;flex-direction:row;flex-shrink:0;width:100%;gap:var(--gap)}.little-widget-carousel>*{flex-shrink:0}.little-widget-carousel>.cat-widget{flex:1 1 auto;min-width:0}.little-widget-carousel .content-block{padding-top:10px;padding-bottom:10px}.little-widget-carousel .feeling-widget,.little-widget-carousel .clock-widget,.little-widget-carousel .moon-widget,.little-widget-carousel .tide-widget{padding-left:28px;padding-right:28px}.intro{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--gap);max-width:100%}@container (max-width: 900px){.intro{display:flex;flex-direction:column}.intro>img{margin:auto}}.intro h1{margin-bottom:6px}.intro>img{max-width:225px;border-radius:var(--global-border-radius)}.favorites{display:grid;grid-template-columns:90px 1fr;gap:5px 0}.favorites .widget-heading{grid-column:1 / span 2}.favorites .category{font-weight:700;margin-right:1em}.feeling-widget{display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;flex-shrink:0;min-width:fit-content}.tide-widget{display:flex;flex-direction:column;gap:2px;flex-shrink:0;min-width:fit-content}.tide-top{display:flex;flex-direction:row;align-items:center;gap:6px}.tide-label{white-space:nowrap}.tide-next{font-size:.75em;opacity:.7;line-height:1}.tide-error{font-size:.85em;opacity:.6}.tide-chart{flex:1;min-width:0;max-width:140px;margin-left:-10px;margin-right:-10px}.tide-chart svg{display:block}.weather-widget{display:flex;justify-content:center;align-items:center;gap:6px}.clock-widget{display:flex;justify-content:center;align-items:center;gap:8px;flex-shrink:0;min-width:fit-content;white-space:nowrap}.clock-widget .time{font-weight:700}.moon-widget{display:flex;justify-content:center;align-items:center;flex-shrink:0;min-width:fit-content}.cat-widget{display:flex;flex-direction:row;align-items:center;gap:6px}.cat-stage{flex:1;display:flex;justify-content:center;align-items:center;min-width:0}.cat-gif{width:88px;height:45px;min-width:88px;min-height:45px;flex-shrink:0;image-rendering:-moz-crisp-edges;image-rendering:-webkit-crisp-edges;image-rendering:pixelated;image-rendering:crisp-edges}.cat-controls{display:flex;justify-content:center;align-items:center;flex-shrink:0;margin-right:-10px}.feed-button{background:none;border:none;padding:0;margin:0;transition:background .2s;display:inline-block;cursor:pointer;color:#000;font-size:30px;line-height:10px}.feed-button:disabled{cursor:auto;opacity:.5}.lastFmWidget{--track-art-size: 70px;--lastfm-row-gap: 10px;--lastfm-status-height: 20px;display:grid;gap:var(--lastfm-row-gap);align-items:center;grid-template-columns:var(--track-art-size) minmax(0,1fr);position:relative;min-height:calc(var(--lastfm-status-height) + var(--lastfm-row-gap) + var(--track-art-size))}.lastFmWidget .status{grid-column:1 / span 2;grid-row:1;display:flex;align-items:center;gap:6px;min-height:var(--lastfm-status-height)}.lastFmWidget .status-text{font-size:1.1em}.lastFmWidget .trackArt{grid-column:1;grid-row:2}.lastFmWidget .trackArt a{display:block;color:inherit}.lastFmWidget .trackArt-frame{position:relative;width:var(--track-art-size);height:var(--track-art-size)}.lastFmWidget .trackArt-frame img{display:block;width:var(--track-art-size);height:var(--track-art-size);border-radius:var(--global-border-radius);object-fit:cover}.lastFmWidget .trackArt-frame img:not(.no--art){position:absolute;inset:0}.lastFmWidget .info{grid-column:2;grid-row:2;overflow:hidden;align-self:flex-start;padding-top:.5em;padding-right:2em}.lastFmWidget .info .title{font-size:1.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;display:block;color:inherit;text-decoration:none}.lastFmWidget .info .title:hover{text-decoration:underline}.lastFmWidget .info .artist{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;opacity:.7}.lastFmWidget .lastFmLink{position:absolute;right:.6em;bottom:.6em;font-size:1.5em}.lastFmWidget .lastFmLink a{color:#00000040}.lastFmWidget .lastFmLink a:hover{color:#000000bf}.lastFmWidget .icon{font-size:20px}.lastFm-error{opacity:.6;font-size:.85em}.lastFmWidget .soundbars{display:inline-flex;align-items:flex-end;gap:2px;height:16px}.lastFmWidget .soundbars .bar{width:3px;background-color:currentColor;border-radius:1px;transform-origin:bottom;animation:lastfm-soundwave 1.2s ease-in-out infinite}.lastFmWidget .soundbars .bar:nth-child(1){height:12px;animation-delay:0s}.lastFmWidget .soundbars .bar:nth-child(2){height:16px;animation-delay:.2s}.lastFmWidget .soundbars .bar:nth-child(3){height:10px;animation-delay:.4s}@keyframes lastfm-soundwave{0%,to{transform:scaleY(.4)}25%{transform:scaleY(1)}50%{transform:scaleY(.6)}75%{transform:scaleY(.8)}}.lastFmWidget .skeleton-text,.lastFmWidget .skeleton-image,.lastFmWidget .skeleton-icon{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:lastfm-loading 1.5s infinite;border-radius:4px}.lastFmWidget .skeleton-status{height:var(--lastfm-status-height);width:120px}.lastFmWidget .skeleton-image{width:100%;height:100%;border-radius:var(--global-border-radius)}.lastFmWidget .skeleton-title{height:1.2em;width:100%;max-width:140px}.lastFmWidget .skeleton-artist{height:1em;width:100%;max-width:100px}.lastFmWidget .skeleton-icon{width:24px;height:24px;border-radius:50%}@keyframes lastfm-loading{0%{background-position:-200% 0}to{background-position:200% 0}}.visitor-stats{display:flex;flex-direction:column;gap:5px}.stat-item{display:flex;justify-content:space-between;align-items:center;gap:12px}.stat-label{font-weight:500;color:#666}.ticker{display:inline-flex;gap:1px;font-family:DSEG7 Classic,monospace;font-size:1em;font-weight:700;line-height:1}.ticker-digit{min-width:.58em;text-align:center;color:var(--accent-color)}.visitor-counter.is-loading .ticker{opacity:.35}.blog-posts-widget{display:flex;flex-direction:column;align-items:stretch}.blog-posts-widget .widget-heading{font-size:1.15em}.blog-line{font-size:1em;display:flex;align-items:center;gap:10px}.blog-line .title{text-decoration:none;color:var(--accent-color);font-weight:700;font-size:1.1em}.blog-line .title:hover{text-decoration:underline}.currently-reading-widget{--reading-cover-width: 96px;display:grid;grid-template-columns:var(--reading-cover-width) minmax(0,1fr);gap:12px;align-items:start}.currently-reading-widget .widget-heading{grid-column:1 / -1;margin-bottom:0;font-size:1.15em}.reading-cover a{display:block;color:inherit}.reading-cover img,.reading-cover-placeholder{display:block;width:var(--reading-cover-width);border-radius:var(--global-border-radius);border:1px solid black}.reading-cover img{height:auto}.reading-cover-placeholder{display:flex;align-items:center;justify-content:center;aspect-ratio:2 / 3;background:#f0f0f0;font-size:1.5em}.reading-info{display:flex;flex-direction:column;gap:4px;min-width:0}.reading-title{font-family:Space Grotesk,sans-serif;font-size:1.1em;font-weight:700;color:var(--accent-color);text-decoration:none}.reading-title:hover{text-decoration:underline}.reading-author{font-size:.9em;opacity:.72}.reading-description{margin:8px 0 0;font-size:.85em;opacity:.55;line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.reading-rating{display:flex;align-items:center;gap:8px;margin-top:4px}.reading-stars{display:inline-flex;align-items:center;gap:2px;color:var(--accent-color)}.reading-stars svg{width:1em;height:1em;flex-shrink:0}.reading-rating-label{font-size:.85em;opacity:.7}.reading-error{grid-column:1 / -1;opacity:.7}.currently-reading-widget.is-loading .reading-skeleton{height:.9em;border-radius:4px;background:linear-gradient(90deg,#eee 25%,#f5f5f5,#eee 75%);background-size:200% 100%;animation:reading-shimmer 1.2s ease-in-out infinite}.currently-reading-widget.is-loading .reading-skeleton-title{width:70%;height:1.1em}.currently-reading-widget.is-loading .reading-skeleton-line{width:100%}.currently-reading-widget.is-loading .reading-skeleton-line:last-child{width:85%}@keyframes reading-shimmer{to{background-position:-200% 0}}.currently-playing-widget{--playing-cover-width: 96px;--playing-cover-height: calc(var(--playing-cover-width) * 3 / 2);display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:12px;align-items:start}.currently-playing-widget .widget-heading{grid-column:1 / -1;margin-bottom:0;font-size:1.15em}.playing-cover{grid-column:2;grid-row:2}.playing-cover a{display:block;color:inherit}.playing-cover img,.playing-cover-placeholder{display:block;height:var(--playing-cover-height);width:auto;border-radius:var(--global-border-radius);border:1px solid black}.playing-cover-placeholder{display:flex;align-items:center;justify-content:center;aspect-ratio:16 / 9;background:#f0f0f0;font-size:1.5em}.playing-info{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:4px;min-width:0}.playing-title{font-family:Space Grotesk,sans-serif;font-size:1.1em;font-weight:700;color:var(--accent-color);text-decoration:none}.playing-title:hover{text-decoration:underline}.playing-developer{font-size:.9em;opacity:.72}.playing-description{margin:8px 0 0;font-size:.85em;opacity:.55;line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.playing-rating{display:flex;align-items:center;gap:8px;margin-top:4px}.playing-stars{display:inline-flex;align-items:center;gap:2px;color:var(--accent-color)}.playing-stars svg{width:1em;height:1em;flex-shrink:0}.playing-rating-label{font-size:.85em;opacity:.7}.playing-error{grid-column:1 / -1;opacity:.7}.currently-playing-widget.is-loading .playing-skeleton{height:.9em;border-radius:4px;background:linear-gradient(90deg,#eee 25%,#f5f5f5,#eee 75%);background-size:200% 100%;animation:playing-shimmer 1.2s ease-in-out infinite}.currently-playing-widget.is-loading .playing-skeleton-title{width:70%;height:1.1em}.currently-playing-widget.is-loading .playing-skeleton-line{width:100%}.currently-playing-widget.is-loading .playing-skeleton-line:last-child{width:85%}@keyframes playing-shimmer{to{background-position:-200% 0}}.blogpage,.projectspage{--gap: 15px;display:grid;grid-template-columns:auto auto;gap:var(--gap);width:100%;margin-top:10px}.blogpage .title,.projectspage .title{grid-column:1 / span 2}.blog-posts{grid-column:1 / span 2;display:flex;flex-direction:column;background-color:#fff;border:2px solid black;border-radius:var(--global-border-radius);padding:20px}.blog-posts a{all:unset}.blog-posts>div{display:flex;flex-direction:column}.blog-posts>div .title-bar{display:flex;justify-content:space-between;align-items:flex-start}.blog-posts>div .title{cursor:pointer;font-size:1.5em;font-weight:700;padding-bottom:2px}.blog-posts>div .title:hover{text-decoration:underline}.blog-posts>div .date{opacity:.6}.blog-posts>div .post-data{display:grid;grid-template-columns:auto 200px;gap:10px}.blogpage .tags{display:flex;flex-direction:row-reverse;flex-wrap:wrap;margin:0;padding:0;list-style:none}.blogpage .tags li{cursor:pointer;height:24px;line-height:24px;position:relative;font-size:11px;margin:2px 5px 2px 12px;padding:0 10px 0 12px;background:var(--accent-color);color:#fff;text-decoration:none;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px}.tags li:before{content:"";position:absolute;top:0;left:-12px;width:0;height:0;border-color:transparent var(--accent-color) transparent transparent;border-style:solid;border-width:12px 12px 12px 0}.projects-list{grid-column:1 / span 2;display:flex;flex-direction:column;background-color:#fff;border:2px solid black;border-radius:var(--global-border-radius);padding:20px}.project-card{display:flex;flex-direction:row;gap:20px;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #eee}.project-card:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.project-thumbnail{flex-shrink:0;width:300px;overflow:hidden;border-radius:var(--global-border-radius);background-color:#f5f5f5;display:flex;align-items:center;justify-content:center}.project-thumbnail img{width:100%;height:100%;object-fit:cover}.project-content{flex:1;display:flex;flex-direction:column}.project-content .title-bar{display:flex;justify-content:space-between;align-items:flex-start}.project-content .title-bar>a{all:unset}.project-content .title{cursor:pointer;font-size:1.5em;font-weight:700;padding-bottom:2px}.project-content .title:hover{text-decoration:underline}.project-content .date{opacity:.6}.project-content .description{color:#666;line-height:1.4}.projectspage .technologies{display:flex;flex-direction:row-reverse;flex-wrap:wrap;margin:10px 0;padding:0;list-style:none}.projectspage .technologies li{cursor:pointer;height:24px;line-height:24px;position:relative;font-size:11px;margin:2px 5px 2px 12px;padding:0 10px 0 12px;background:var(--accent-color);color:#fff;text-decoration:none;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px}.projectspage .technologies li:before{content:"";position:absolute;top:0;left:-12px;width:0;height:0;border-color:transparent var(--accent-color) transparent transparent;border-style:solid;border-width:12px 12px 12px 0}.project-links{margin-top:10px;display:flex;gap:10px}.project-link{all:unset;display:flex;flex-direction:row;gap:5px;align-items:flex-end;cursor:pointer;transition:background-color .2s;padding:5px}.project-link>*{line-height:18px}.project-link svg{font-size:1em}.project-link:hover{background-color:var(--accent-color);color:#fff}.project-hero-thumbnail{width:calc(100% + 40px);max-height:400px;overflow:hidden;margin:-20px -20px 20px}.project-title-bar{display:flex;justify-content:space-between;align-items:flex-end}.project-title-bar h1{margin:0 0 -6px}.project-title-bar p{margin:0;font-size:1.1em;opacity:.7;font-weight:500}.project-links-header{display:flex;gap:15px;margin-bottom:25px;padding-bottom:20px;border-bottom:1px solid #eee}.project-link-header{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background-color:#f8f9fa;color:#333;text-decoration:none;border-radius:8px;font-weight:500;font-size:.95em;border:2px solid transparent;transition:all .2s ease}.project-link-header:hover{background-color:#e9ecef;border-color:#dee2e6;transform:translateY(-1px)}.project-link-header.live{background-color:#e8f5e8;color:#2d5a2d}.project-link-header.live:hover{background-color:#d4edda;border-color:#c3e6cb}.project-link-header.github{background-color:#f8f9fa;color:#333}.project-link-header.github:hover{background-color:#e9ecef;border-color:#dee2e6}.hero-thumbnail-image{width:100%;height:auto;object-fit:cover;display:block;border-radius:0 0 var(--global-border-radius) var(--global-border-radius)}.project-body{margin:0 1em}.blogpost{--accent-bg-color: rgb(239, 239, 239);margin-top:10px;display:flex;flex-direction:column;gap:10px}.header-anchor{display:none}.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5{margin-bottom:.4em;margin-top:.75em}.post-content h1:first-child{margin-top:0}.post-content h2{margin-top:1.2em}.post-content hr{margin:1em 0;opacity:.5}.post-content blockquote{background-color:var(--accent-bg-color);border-left:5px solid var(--accent-color);padding:10px 10px 10px 15px;font-style:italic;border-radius:0 var(--global-border-radius) var(--global-border-radius) 0;margin:.6em 0}.post-content ul,.post-content ol{margin:.4em 0 .6em}.post-content ul{padding-left:10px}.post-content ol{padding-left:25px}.post-content p{margin:.8em 0;line-height:1.6}.post-content p:first-child{margin-top:0}.post-content p:last-child{margin-bottom:0}.post-content img:not(.hero-thumbnail-image){max-width:100%;height:auto;border-radius:var(--global-border-radius);margin:2em auto;display:block}.post-content img[alt*=full-width],.post-content img[alt*=fullwidth]{width:100%}.post-content img[alt*=min-width],.post-content img[alt*=minwidth]{min-width:75%}.post-content img[alt*=center],.post-content img[alt*=centered]{display:block;margin:2em auto;max-width:95%}.post-content img[alt*=no-border],.post-content img[alt*=noborder]{border-radius:0}.post-content img[alt*=limit-height],.post-content img[alt*=limitheight]{max-height:60vh}.post-content img[alt*=limit-width],.post-content img[alt*=limitwidth]{max-width:50%}.post-content em{opacity:1;color:inherit}.ascii-art{font-family:JetBrains Mono,Courier New,Courier,monospace;font-size:12px;line-height:1;white-space:pre;overflow-x:auto;overflow-y:hidden;padding:15px;background-color:#f8f8f8;border:1px solid #ddd;border-radius:var(--global-border-radius);letter-spacing:0;word-spacing:0;text-align:left;font-weight:400;font-style:normal;text-decoration:none;text-transform:none;text-indent:0;text-shadow:none;color:#333;tab-size:1;-moz-tab-size:1;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}.ascii-art.dark{background-color:#1a1a1a;color:#0f0;border-color:#333}.ascii-art.minimal{background:none;border:none;padding:0}.admin-login{display:flex;justify-content:center;align-items:center;min-height:80vh;padding:2rem}.login-container{max-width:400px;width:100%}.login-container h2{margin:0 0 1.5rem;text-align:center}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500}.form-group input{width:100%;padding:.75rem;border:2px solid black;border-radius:var(--global-border-radius);background:#fff;font-size:1rem;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#666}.form-group input:disabled{opacity:.6;cursor:not-allowed}.login-container button{width:100%;padding:.75rem;background:#000;color:#fff;border:none;border-radius:var(--global-border-radius);font-size:1rem;cursor:pointer;transition:background-color .2s}.login-container button:hover:not(:disabled){background:#333}.login-container button:disabled{opacity:.6;cursor:not-allowed}.login-container .error{color:red;margin:1rem 0;text-align:center;font-size:.9rem;padding:.5rem;background:#ffe6e6;border-radius:var(--global-border-radius);border:1px solid #ffcccc}.admin-status{position:fixed;top:1rem;right:1rem;background:#000;color:#fff;padding:.5rem 1rem;border-radius:var(--global-border-radius);display:flex;align-items:center;gap:1rem;z-index:1000;font-size:.9rem}.admin-indicator{font-weight:500}.logout-btn{background:#fff3;border:none;color:#fff;padding:.25rem .5rem;border-radius:3px;cursor:pointer;font-size:.8rem;transition:background-color .2s}.logout-btn:hover{background:#ffffff4d}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#383a42;background:#fafafa}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#a626a4}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#50a14f}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#986801}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#4078f2}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#c18401}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}.hljs{background:var(--bg-color);color:#2e2459}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-section,.hljs-link{color:var(--accent-color);font-weight:600}.hljs-string,.hljs-attr,.hljs-template-tag{color:#9b6ee8}.hljs-number{color:#7a5ce5}.hljs-comment{color:#b9aee2;font-style:italic}.hljs-title,.hljs-name{color:#5944b5}pre code.hljs{display:block;padding:.6rem;border:2px solid black;border-radius:var(--global-border-radius);margin:.6em 0;background-color:#f3eeff;overflow-x:auto}@font-face{font-family:DSEG7 Classic;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dseg7-classic-latin-400-normal-B9amPoxd.woff2) format("woff2"),url(/assets/dseg7-classic-latin-400-normal-Ds47pk8-.woff) format("woff")}
