hr{border-style:solid;border-color:var(--shadowColor)}.ul{text-decoration:underline;text-underline-position:left;text-underline-offset:.25rem}:root{--white: #f0f0f0;--black: #1f1f1f;--gray: #ccc;--halfGray: #cccccc80;--qtrGray: #cccccc40;--printGray: #33333380;--transGray: #333333bf;--faintGray: #cccccc21;--darkGray: #aaa;--accent: steelblue;--red: #e00000;--blue: steelblue;--green: green;--gold: gold;--orange: #ff9900;--shadowColor: #00000041;--add: #ada;--addBG: #00aa0040;--del: #daa;--delBG: #aa000040;--codeBG: var(--black);--bg: var(--white);--text: black var(--black);--asideText: var(--white);--pagePad: 1rem}.nav-wrap{position:sticky;width:fit-content;top:1rem;display:flex;justify-content:flex-start;align-items:center;z-index:1}nav{position:relative;height:50px;width:50px}nav a,nav p,nav span{font-family:"Open Sans",sans-serif;text-shadow:1px 1px 0 rgba(0,0,0,.2509803922)}nav #nav-menu{position:relative;height:fit-content;max-height:0;width:fit-content;padding-block:0;border:none;display:flex;align-items:flex-end;overflow:hidden;top:2rem;left:2rem;transition:background-color .4s cubic-bezier(0.4, 0.25, 0.8, 1.2),max-height .2s cubic-bezier(0.4, 0.25, 0.8, 1.2),padding-block .2s cubic-bezier(0.4, 0.25, 0.8, 1.2);padding-inline:2rem 3rem;background:inherit;backdrop-filter:blur(0.33rem);background-color:rgba(70,190,242,.5);background-blend-mode:overlay;max-width:calc(100dvw - 5rem);max-width:fit-content;clip-path:polygon(0% 0%, calc(100% - var(--bevel)) 0%, 100% calc(0% + var(--bevel)), 100% 100%, calc(0% + var(--bevel)) 100%, 0% calc(100% - var(--bevel)));--bevel: 1rem}nav #nav-menu .menu-wrap{display:flex;flex-direction:column;padding:1rem;min-width:150px;margin-inline:auto;--spacing: 1.5rem;--radius: 10px;--treeColor: #657c8f}nav #nav-menu .menu-wrap a,nav #nav-menu .menu-wrap p,nav #nav-menu .menu-wrap span,nav #nav-menu .menu-wrap li,nav #nav-menu .menu-wrap li::marker{color:var(--white)}nav #nav-menu .menu-wrap .branch{line-height:calc(var(--spacing)*2);text-shadow:1px 1px 0 var(--black)}nav #nav-menu .menu-wrap a{text-underline-offset:6px}nav #nav-menu .menu-wrap a:hover{filter:brightness(1.5);font-weight:bold;letter-spacing:-0.66px;text-underline-offset:.33rem}nav #nav-menu .menu-wrap li{display:block;position:relative;padding-left:calc(2*var(--spacing) - var(--radius) - 1px);white-space:nowrap}nav #nav-menu .menu-wrap ul{margin-left:calc(var(--radius) - var(--spacing));padding-left:0}nav #nav-menu .menu-wrap ul li{border-left:2px solid #ddd;margin-left:0}nav #nav-menu .menu-wrap ul li:last-of-type{border-color:rgba(0,0,0,0)}nav #nav-menu .menu-wrap ul li:before{content:"";display:block;position:absolute;top:-2px;left:-2px;width:calc(var(--spacing) + 2px);height:calc(var(--spacing) + 1px);border:solid #ddd;border-width:0 0 2px 2px;box-sizing:content-box}@supports(-webkit-touch-callout: none){nav #nav-menu .menu-wrap ul li:before{left:-1px}}nav #nav-menu .menu-wrap ul ul li{padding-left:calc(var(--spacing)*1.25);left:var(--spacing)}nav #nav-btn{border-radius:.25rem;position:absolute;width:100%;height:100%;background:#777;box-shadow:1px 2px 10px 0px rgba(0,0,0,.3);cursor:pointer;z-index:10;border-width:1px;border-style:inset;border-color:rgba(255,221,255,.1254901961) rgba(0,85,255,.1254901961) rgba(51,0,51,.1254901961) rgba(255,0,0,.1254901961);filter:drop-shadow(0.33rem 0.66rem 0 var(--shadowColor))}nav #nav-btn .btn{display:flex;flex-direction:column;align-content:center;align-items:center;justify-content:space-evenly;height:100%;width:75%;margin-inline:auto;padding:.25rem;box-sizing:border-box}nav #nav-btn .btn>span{display:block;width:100%;height:.33rem;background:var(--white);border-radius:3px;position:relative;box-sizing:border-box;pointer-events:none;border-width:1px;border-style:inset;border-color:rgba(255,221,255,.1254901961) rgba(0,85,255,.1254901961) rgba(51,0,51,.1254901961) rgba(255,0,0,.1254901961);transition:all .4s cubic-bezier(0.4, 0.25, 0.8, 1.2);filter:drop-shadow(2px 2px 0 rgba(0, 0, 0, 0.2509803922))}nav #nav-btn.open~#nav-menu{z-index:1;max-height:100dvh;background-color:rgba(0,50,90,.9);background:linear-gradient(155deg, rgba(0, 50, 100, 0.9) 0%, rgba(20, 0, 100, 0.85) 50%, rgba(0, 25, 75, 0.9) 100%);border-width:1px;border-style:inset;border-color:rgba(255,221,255,.1254901961) rgba(0,85,255,.1254901961) rgba(51,0,51,.1254901961) rgba(255,0,0,.1254901961)}nav #nav-btn.open .btn>span:nth-child(1){animation:top .7s ease forwards}nav #nav-btn.open .btn>span:nth-child(2){animation:scaled .7s ease forwards}nav #nav-btn.open .btn>span:nth-child(3){animation:bottom .7s ease forwards}nav #nav-btn.closed .btn span:nth-child(1){animation:top-2 .7s ease forwards}nav #nav-btn.closed .btn span:nth-child(2){animation:scaled-2 .7s ease forwards}nav #nav-btn.closed .btn span:nth-child(3){animation:bottom-2 .7s ease forwards}@media screen and (min-width: 600px){header{margin-bottom:-4rem}}@media(min-resolution: 2dppx){nav #nav-menu .menu-wrap ul li:before{left:-1px}}@keyframes top{0%{top:0;transform:rotate(0)}50%{top:.75rem;transform:rotate(0)}100%{top:.75rem;transform:rotate(45deg)}}@keyframes top-2{0%{top:.75rem;transform:rotate(45deg)}50%{top:.75rem;transform:rotate(0deg)}100%{top:0;transform:rotate(0deg)}}@keyframes bottom{0%{bottom:0;transform:rotate(0)}50%{bottom:.75rem;transform:rotate(0)}100%{bottom:.75rem;transform:rotate(-45deg)}}@keyframes bottom-2{0%{bottom:.75rem;transform:rotate(135deg)}50%{bottom:.75rem;transform:rotate(0)}100%{bottom:0;transform:rotate(0)}}@keyframes scaled{50%{transform:scale(0)}100%{transform:scale(0)}}@keyframes scaled-2{0%{transform:scale(0)}50%{transform:scale(0)}100%{transform:scale(1)}}:root{--bg: var(--gray)}.red{color:var(--red)}.blue{color:var(--blue)}.green{color:var(--green)}.gold{color:var(--gold)}.orange{color:var(--orange)}.comment{color:var(--qtrGray)}a:has(>span.pre){text-underline-position:under;color:var(--blue)}a:has(>span.pre):hover{text-decoration-color:#03a;text-decoration-thickness:2px}a span.pre:hover{color:#03a}.card{background:khaki;background:linear-gradient(165deg, #F0E68C 40%, #FFF9BA 100%);border-radius:2px;padding:1.75rem 1.5rem 1.5rem;box-shadow:inset 0px -2.5rem 5rem hsla(0,0%,100%,.2549019608);max-width:600px;filter:drop-shadow(1px 0.66rem 0 var(--shadowColor));border-width:1px;border-style:inset;border-color:rgba(255,221,255,.1254901961) rgba(0,85,255,.1254901961) rgba(51,0,51,.1254901961) rgba(255,0,0,.1254901961);font-family:Roboto,sans-serif;font-family:Iansui,sans-serif}.card.slim{padding-block:1.25rem 1rem;margin-block:1rem}.left,.right{margin-inline:auto}.left-m{margin-inline:0 auto}.right-m{margin-inline:auto 0}.comparison{display:flex;flex-direction:column;max-width:800px;margin-inline:auto}.comparison>*{box-sizing:border-box;max-width:650px;width:fit-content}.comparison>*:not(.left,.left-m,.right,.right-m){grid-column:1/-1}.intro{grid-row:1;padding:1rem;margin-inline:auto;font-family:"Open Sans",sans-serif}.intro h3{margin:0;text-align:center;text-wrap:pretty;text-wrap:balance}.path{position:relative;margin-block:.5em 0;padding:.25rem .5rem 0;width:fit-content;left:1.5rem;right:auto;bottom:-1px;display:block;margin-inline:0 auto;background:var(--codeBG);color:#aaa;border-radius:.33rem .33rem 0 0;font-family:"Roboto Mono",monospace;font-size:.66rem;border-right:1px solid rgba(0,85,255,.2509803922);border-left:1px solid rgba(255,0,0,.2509803922);border-top:1px solid hsla(0,0%,100%,.062745098)}.left .path,.tab-r .path{margin-inline:auto 0;right:1.5rem;left:auto}pre{margin-block:0;white-space:pre-line;width:fit-content}.left pre{margin-inline:auto 0}.right pre{margin-inline:0 auto}pre:has(>code){filter:drop-shadow(0.33rem 0.66rem 0 var(--shadowColor));margin-block:0 1.25rem}pre:has(>code).path:before{content:attr(data-path);padding:.25rem 1.5rem;background:#777;color:#fff;margin-block:.5em 0;width:auto;display:inline-block;left:1rem;position:relative;border-radius:.75rem .75rem 0 0}code{background:var(--codeBG);display:block;color:var(--gray);position:relative;padding-block:1rem;padding-inline:1rem 1.5rem;min-width:200px;width:fit-content;max-width:100%;min-width:300px;box-sizing:border-box;clip-path:polygon(0 calc(0% + var(--halfBevel)), calc(0% + var(--halfBevel)) 0%, calc(100% - var(--bevel)) 0%, 100% calc(0% + var(--bevel)), 100% calc(100% - var(--halfBevel)), calc(100% - var(--halfBevel)) 100%, calc(0% + var(--bevel)) 100%, 0% calc(100% - var(--bevel)));border-right:1px solid rgba(0,85,255,.2509803922);border-left:1px solid rgba(255,0,0,.2509803922);border-bottom:1px solid hsla(0,0%,100%,.062745098);--bevel: 1rem;--halfBevel: .33rem}.add{color:var(--add);background-color:var(--addBG)}.del{color:var(--del);background-color:var(--delBG)}.comment{position:relative;background-color:rgba(0,0,0,0)}@media screen and (max-width: 600px){.mosaic-1,.mosaic-2{display:grid}.mosaic-1{grid-template-areas:"a b" "c c" "d d";grid-template-columns:2fr 3fr;column-gap:1rem;align-items:end;grid-template-rows:auto calc(22rem - 5dvw) auto;align-items:end}.mosaic-1 .card{grid-row:1;grid-column:1/-1}.mosaic-1 .file{grid-area:d}.mosaic-1 .file.left{grid-area:b;bottom:calc(-105px + 2dvw);z-index:1;position:relative;margin-inline:auto}.mosaic-1 .file.right{grid-area:c}}@media screen and (min-width: 600px){.comparison{display:grid;grid-auto-rows:auto;grid-auto-flow:column;column-gap:2dvw;grid-template-columns:repeat(2, 1fr);justify-content:space-evenly}.comparison.auto-2c{grid-template-columns:repeat(2, auto)}.comparison.ai-s{align-items:start}.comparison.ai-c{align-items:center}.comparison.ai-e{align-items:end}.comparison.r1-a{grid-template-rows:1fr auto}.file:not(.left,.left-m,.right,.right-m){grid-column:1/-1;max-width:none;margin-inline:auto}.left{grid-column:1;margin-inline:auto 0}.left-m{margin-inline:auto;grid-column:1}.right{grid-column:2;margin-inline:0 auto}.right-m{margin-inline:auto;grid-column:2}.card{margin-inline:auto}.overflow{grid-column:1/3}.overflow.left{margin-inline:0 auto}.overflow.right{margin-inline:auto 0}pre{overflow:hidden;white-space:pre-wrap}}@media screen and (min-width: 1400px){.left,.left.overflow{grid-column:1;margin-inline:auto 0}.right,.right.overflow{grid-column:2;margin-inline:0 auto}}body{background-color:#333;font-family:Roboto,sans-serif;margin:0}.page-wrapper{width:100%;max-width:800px;margin-inline:auto;background-color:var(--bg);padding:var(--pagePad);box-sizing:border-box;filter:drop-shadow(0.33rem 0.66rem 0 var(--shadowColor))}header{margin-top:-3.5rem;margin-inline:auto 0;display:flex;flex-direction:column;align-items:center;margin-inline:auto;padding-inline:2rem;background-color:hsla(0,0%,100%,0);background:linear-gradient(180deg, rgba(255, 255, 255, 0.5019607843) 0%, rgba(255, 255, 255, 0) 95%);border-radius:1rem 1rem 0 0;width:fit-content;padding:.75rem 2rem;border-width:1px;border-style:inset;border-color:rgba(255,221,255,.1254901961) rgba(0,85,255,.1254901961) rgba(51,0,51,.1254901961) rgba(255,0,0,.1254901961)}header h1,header h2,header h3,header p{margin-block:0}h2,h3{text-wrap:balance;text-align:center}h3{font-size:1.2;line-height:1.2}p{margin-top:.75rem;text-wrap:pretty}.stack{display:grid;grid-template-columns:4fr 7fr;background:var(--codeBG);border:1px solid var(--halfGray);border-radius:.5rem;color:var(--bg);max-width:100%}.stack p{margin:0;padding:1rem;border-bottom:1px solid var(--halfGray)}.stack p.strong{border-right:1px solid var(--halfGray)}.stack p:last-of-type,.stack p:nth-last-of-type(-n+2){border-bottom:none}.stack em{display:inline-block}.ss{width:480px;max-width:90%;display:block;margin-inline:auto;margin-bottom:1rem;filter:drop-shadow(0.33rem 0.66rem 0 var(--shadowColor));border-width:1px;border-style:inset;border-color:rgba(255,221,255,.1254901961) rgba(0,85,255,.1254901961) rgba(51,0,51,.1254901961) rgba(255,0,0,.1254901961)}.ss.left{margin-inline:0 auto;margin-bottom:0;opacity:.5}.ss.right{margin-inline:auto 0;margin-top:-50%}@media screen and (min-width: 600px){.page-wrapper{padding:1rem 1.5rem}header{margin-bottom:0}.ss.left{opacity:1}.ss.right{margin-top:-25%}}/*# sourceMappingURL=portfolio.css.map */
