@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono&display=swap";:root{--bg-primary: #111111;--bg-primary-darker: #0f0f0f;--bg-secondary: #222222;--bg-tertiary: #1a1a1a;--text: #ededed;--text-darker: #bbbbbb;--fs-xs: clamp(.6rem, .5rem + .3vw, .875rem);--fs-sm: clamp(.75rem, .65rem + .4vw, 1.125rem);--fs-md: clamp(1rem, .85rem + .6vw, 1.5rem);--fs-lg: clamp(1.25rem, 1.1rem + .75vw, 1.75rem);--fs-xl: clamp(1.5rem, 1.3rem + 1vw, 2rem);--space-xxs: clamp(.25rem, .2rem + .125vw, .375rem);--space-xs: clamp(.5rem, .4rem + .25vw, .75rem);--space-sm: clamp(.75rem, .6rem + .5vw, 1.125rem);--space-md: clamp(1rem, .8rem + .75vw, 1.5rem);--space-lg: clamp(1.25rem, 1rem + 1vw, 1.875rem);--space-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:JetBrains Mono,monospace;background-color:var(--bg-primary);color:var(--text);min-height:100vh}main{display:flex;flex-direction:row;height:100vh}@media (max-width: 1080px){main{flex-direction:column}}.portfolio{flex:1;display:flex;justify-content:center;align-items:center;flex-direction:column}.profile{width:clamp(15rem,12rem + 12.5vw,22.5rem);height:auto}.details{margin-bottom:var(--space-xs);display:grid;grid-template-columns:1fr auto 1fr;width:100%}.details h2{font-size:var(--fs-xl);margin-left:0;white-space:nowrap;grid-column:2;text-align:center}.comment{font-size:var(--fs-sm);color:var(--text-darker);white-space:pre;text-align:left;margin:0;grid-column:2 / 4;grid-row:2}.contacts{display:flex;gap:var(--space-xs)}.contacts a{cursor:pointer;text-decoration:none}.contacts a i{display:flex;align-items:center;justify-content:center;border-radius:50%;width:2em;height:2em;font-size:var(--fs-lg);border:3px solid var(--text-darker);color:var(--text);opacity:50%}.contacts a i:hover{opacity:75%}.contacts a i:active{opacity:100%}.tooltip{position:relative;display:inline-block}.tooltip-text{visibility:hidden;position:absolute;transform:translate(50%);right:50%;margin-top:var(--space-xs);color:var(--text);text-align:center;white-space:nowrap;z-index:1}.tooltip:hover .tooltip-text{visibility:visible}.container{flex:1;padding:var(--space-xl);display:flex;flex-direction:column}.compiler{display:flex;flex-direction:column;flex-grow:1;border:2px solid var(--bg-secondary);border-radius:8px;overflow:hidden}.compiler header{position:relative;text-align:center;padding:var(--space-xs);background-color:var(--bg-secondary);font-size:var(--fs-sm)}#compile-button{position:absolute;left:var(--space-sm);top:50%;transform:translateY(-50%);color:inherit;text-decoration:none;cursor:pointer}#compile-button i:hover{opacity:75%}#compile-button i:active{opacity:100%}.compiler-io{flex-grow:1;display:flex;flex-direction:column;overflow:hidden}.io{flex-grow:1;padding:var(--space-md);overflow:auto;resize:none;outline:none;border:none;box-sizing:border-box;font-family:JetBrains Mono,monospace;font-size:var(--fs-xs);color:var(--text);background-color:var(--bg-tertiary)}#compiler-input{flex-grow:1;flex:6 1 0}.output-section{display:flex;flex-direction:column;flex:4 1 0;transition:flex-basis .3s ease;overflow:auto}.output-section.collapsed{flex:0 0 auto}.output-section .output-header{display:flex;align-items:center;justify-content:space-between;background:var(--bg-primary-darker);padding:var(--space-xxs) var(--space-xs);border-bottom:1px solid #333}.output-section.collapsed .output-header{border-bottom:none}.output-title{color:var(--text);font-size:var(--fs-xs);margin:0}.toggle{background:none;border:none;color:var(--text);cursor:pointer;transition:all .2s ease}.toggle i:hover{opacity:75%}.toggle i:active{opacity:100%}#compiler-output{flex-grow:1;background-color:var(--bg-primary-darker);transition:opacity .3s ease}.output-section.collapsed #compiler-output{display:none;pointer-events:none}@media (max-width: 1080px){.portfolio{flex:4 1 0}.container{flex:6 1 0;min-height:50vh}#compiler-input{flex:6 1 0}}#error-tooltip{position:fixed;background:#a12b2b;color:#fff;padding:6px 12px;font-size:14px;border-radius:4px;white-space:nowrap;z-index:1000;pointer-events:none;transform:translate(-50%)}.error-tooltip:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%);border-width:0 8px 8px 8px;border-style:solid;border-color:transparent transparent #a12b2b transparent}[class^=token-identifier-]{color:#b8b8b8}.token-identifier-void{color:#7aa7cc}.token-identifier-int,.token-identifier-long{color:#e67fbf}.token-identifier-string{color:#72a7e0}.token-identifier-bool{color:#f9c777}.token-bool-literal{color:#ffd966;font-weight:700}.token-identifier-i32,.token-identifier-u32,.token-identifier-i64,.token-identifier-u64,.token-number-literal{color:#f7696a}.token-string-literal,.token-string-interpolated{color:#98d982}.token-not,.token-not-equals,.token-equals,.token-equal,.token-ternary,.token-increment,.token-plus-equal,.token-plus,.token-decrement,.token-minus-equal,.token-minus,.token-pow-equal,.token-pow,.token-mul-equal,.token-mul,.token-lparen,.token-rparen,.token-dot,.token-comma,.token-lbrace,.token-rbrace,.token-semicolon,.token-colon{color:#ffa83a}.token-struct,.token-function{color:#6faaff;font-weight:700}.token-return{color:#ffca69;font-weight:700}.token-if,.token-else,.token-for{color:#ff79a8;font-weight:700}.token-comment{color:#5f6577;font-style:italic}
