{"version":3,"sourceRoot":"","sources":["../../_sass/_variables.scss","../../_sass/_mixins.scss","../../_sass/_reset.scss","../../_sass/_base.scss","../../_sass/_helpers.scss","../../_sass/_buttons.scss","../../_sass/_syntax.scss","../../_sass/_notices.scss","../../_sass/_masthead.scss","../../_sass/_navigation.scss","../../_sass/_footer.scss","../../_sass/_page.scss","../../_sass/_archives.scss","../../_sass/_footnotes.scss","../../_sass/_mermaid.scss"],"names":[],"mappings":"CAeA,KACE,gBACA,eAaF,MACE,mBACA,iBACA,mBACA,qBACA,yCACA,wCACA,2BACA,qBCvBF,QACE,yBACA,0CACA,oBCXF,mBACE,+EAIF,cAGA,yEAUE,cAIF,mBAGE,qBACA,gBACA,QAIF,sBACE,aAIF,KACE,eACA,8BACA,0BAQF,iBAEE,UAIF,QAEE,kBACA,cACA,cACA,wBAEF,IACE,WAEF,IACE,eAIF,WACE,SAIF,IAEE,eACA,cACA,YAEA,sBACA,SACA,+BAIF,iCAEE,eAIF,6BAIE,SACA,eACA,sBAEF,aAEE,kBACA,mBAEF,iDAEE,UACA,SAEF,oEAII,0BACA,eAEJ,mHAQI,eAEJ,mBACE,uBACA,6BAEF,+FAEE,wBAEF,SACE,cACA,mBCpIF,iBACC,0CACA,MHUqB,QGTrB,iBAED,YACC,0CACA,MHKqB,QGJrB,iBAQD,KACE,SACA,UACA,WACA,YH9BU,6BG+BV,MHVoB,KGWpB,iBHZoB,KGapB,0BAOF,KACC,YHzCW,6BG0CX,MHrBqB,KCWpB,eACA,eAQE,gBAUA,mBACA,qBERH,yBAJD,KAKE,gBAIF,EFjBE,eACA,mBAIE,yBAcA,mBACA,qBEDH,yBAFD,EAGE,gBAIF,GFxBE,eACA,eAQE,gBAOA,mBACA,qBEaJ,kBACC,YH/DW,6BGgEX,kCAED,GFlCE,eACA,kBAQE,yBAUA,mBACA,qBEgBH,yBAFD,GAE6B,gBAE7B,GFtCE,eACA,eAQE,gBAUA,mBACA,qBEoBH,yBAFD,GAE6B,gBAE7B,GF1CE,eACA,kBAQE,yBAUA,mBACA,qBEwBH,yBAFD,GAE6B,gBAE7B,GF9CE,eACA,iBAQE,cAUA,mBACA,qBE6BJ,GFjDE,eACA,kBAQE,gBAUA,mBACA,qBEgCJ,GFpDE,eACA,mBAQE,yBAUA,mBACA,qBEsCJ,MAEC,qBACA,6BAOD,EACC,qBACA,MH5EqB,KG6ErB,2BACA,UACC,WAED,QACC,WAED,QACC,oBACA,WAED,iBAEC,UAQF,GACI,cACA,aACA,UACA,WACA,SACA,0BACA,6BAOJ,OACE,SACA,iBACA,oBACA,kBACA,WACE,mBAGA,aACE,wBACA,iCACA,8BACA,4BACA,WACA,mBACE,2BACA,mCACA,UAMR,eACE,gBAKF,WACC,iBFzIC,eACA,kBAQE,yBAUA,mBACA,qBEuHH,gBACA,0BAOD,MACE,WACA,eACA,yBACA,iBACA,eACA,gBAGA,cACA,gBACA,iCAEA,yBAbF,MAcI,gBAIJ,MACE,+BACA,sCAGF,GACE,kBACA,gBACA,YH7MU,6BG8MV,6BACA,mBACA,gBAEA,yBARF,GASI,mBAIF,kBACE,kBAIJ,SACE,sCAEA,eACE,+BAGF,oBACE,sCAIJ,GACE,kBACA,sBAEA,yBAJF,GAKI,mBAIF,eACE,gBACA,gBAIF,gBACE,gBAIF,kBACE,kBACA,6BAIF,UACE,gBAIF,SACE,6BACA,kBAEA,gBACE,aAMN,iCACE,gBAGF,iCACE,gBAIF,WACE,eACA,+BACA,gBACA,kBAOF,WACC,yDACA,kBACA,gBFzQC,eACA,mBAQE,gBAUA,mBACA,qBEuPH,kBACA,2BACA,yBAPD,WAQE,YH9SU,6BG+SV,eACA,gBACA,gBACA,kBACA,4BAWF,qBACC,yDACA,gBAIA,eFpSC,eACA,kBAQE,yBAUA,mBACA,qBEkRF,yDACA,gBACA,mBACA,aACA,cACA,+BACA,+BACA,kBAGF,IFhTE,eACA,kBAQE,yBAUA,mBACA,qBE8RH,gBAUD,6EACC,wBCxVD,MACE,cAOF,YACE,gBACA,0BACA,kBCNF,KACE,qBACA,mBACA,iBJmBA,eACA,kBAQE,yBAUA,mBACA,qBIrCF,iBLUoB,KKTpB,MLQoB,KKPpB,iCACA,cLVc,IKWd,aACE,MLIkB,KKFpB,WACE,iBLCkB,WACA,KMlBtB,IACE,eACA,qBACA,qBACA,sBAGF,SACE,cACA,qBACA,qBACA,sBAIF,sBACE,eACA,qBACA,qBAIF,mBACE,eAGF,cACE,YACA,qBACA,qBAOF,WACC,yBACA,yDACA,gBACA,cACA,oBACA,cNzCe,IM0Cf,eACC,kBACA,SACA,YAED,gFACA,sCACA,2CACA,uDACA,0CACA,0CACA,4CACA,6DACA,4CACA,6DACA,gDACA,4CACA,0BACA,0BACA,gDACA,0BACA,0BACA,gCACA,0BACA,0BACA,2CACA,2CACA,2CACA,2CACA,2CACA,2CACA,yBACA,4BACA,0BACA,6BACA,2CACA,0BACA,8CACA,4BACA,2CACA,2CACA,2CACA,0BACA,0BACA,0BACA,2CACA,yBACA,0BACA,0BACA,0BACA,0BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,0BACA,0BACA,0BACA,0BACA,0BAOD,SACE,yBACA,yDACA,gBL9FA,eACA,iBAQE,cAUA,mBACA,qBK4EF,cACA,oBACA,kBACA,aACE,WACA,YAKJ,oDAEA,8DACA,iBACE,iBACA,mBAGF,0BACA,8BAIC,oCAEE,yBACA,WACA,iBAGF,yBACE,WAGF,2CACA,8CACA,mDACA,gDACA,0BAEA,iCACC,iEACD,gCACA,oCACA,qCACA,6CACA,+CACA,0BACA,mCACA,qCACA,4CACA,8CACA,8BACA,2BACA,oCACA,+BACA,iDACA,gDACA,+BACA,yBACA,6BACA,iDACA,6CACA,6CACA,gDACA,gDACA,8BACA,+CACA,sDACA,0CACA,6BACA,8CACA,4BACA,yCACA,iDACA,8CACA,sCACA,8BACA,kDACA,uCACA,4CACA,oCACA,4CAEA,+CACA,iDACA,kCACA,mDACA,sDACA,qCACW,4BAEX,yBACA,oCACA,+BACA,2BAEA,0CACA,qCACA,uCACA,sCACA,uDAEA,4BAEA,0DACA,qCACA,kCACA,uCAEA,2BAEA,sCAEA,+BACA,qCACA,uCAEA,yBACA,kDACA,2CACA,8BAEA,iCACA,iCACA,4CACA,0CAEA,qDACA,qDACA,oCACA,gCCzPD,QACE,iBACA,iBACA,cNmBA,eACA,eAQE,gBAUA,mBACA,qBMrCF,+BACA,+BACA,kBCXF,UACE,gBACA,mBACA,kBACA,yBAJF,UAKI,aACA,iBAEF,gBACE,kBACA,eACA,mBACA,kBACA,yBALF,gBAMI,mBACA,mBACA,mBAEF,0BAVF,gBAWI,gBAUJ,eACE,YACA,aACA,sBACE,qBACA,sBACA,oBACF,yBAPF,eAQI,YACA,aACA,qBAEF,0BAZF,eAaI,YACA,aACA,qBASN,YACE,gBACA,sBACE,qBACF,cACE,MRvCkB,KQ+CtB,kBACE,aACA,mBACA,YRxES,gBC6BT,eACA,eAQE,gBAUA,mBACA,qBOyBF,gBACA,kBACA,sBACE,mBACF,yBATF,kBPxCE,eACA,mBAQE,yBAUA,mBACA,sBQ9CJ,oBACE,kBACA,kBAGA,gCACE,cACA,WTYkB,KSXlB,YACA,eACA,kBACA,cACA,WACA,yBARF,gCASI,cAEF,gDACE,cACA,WACA,WACA,WTFgB,KSGhB,gBACA,kBACA,+CAKJ,uBACE,aACA,WACA,mBACA,SACA,iBACA,iBTfkB,KSgBlB,yBAPF,uBAQI,wBACA,eACA,mBACA,WACA,SACA,yBACA,+BACA,iBAMF,gCACE,cAEF,+CACE,aAEF,sEACE,wCAEF,sEACE,UAEF,sEACE,0CAIJ,uBACE,cACA,WACA,gBACA,kBR5CF,eACA,mBAQE,yBAKA,gBQgCA,yBACA,MTvDkB,KSwDlB,yBARF,uBRxCA,eACA,mBAQE,yBAKA,gBQoCE,qBAGJ,sBACE,cACA,kBACA,kBACA,MTjEkB,KSkElB,kBACA,sCACA,yBAPF,sBAQI,gBACA,kBAEF,4BACE,sBAEF,8BACE,MT5EgB,KS8ElB,6BACE,+BAKJ,+BACE,WACA,YACA,oBACA,iBACA,yBALF,+BAMI,WACA,aAKJ,sCACE,aACA,uBACA,mBACA,QACA,sBACA,iBTrGkB,KSsGlB,wCACE,oBACA,YACA,gBAEF,mDACE,WACA,YACA,KT/GgB,KSgHhB,6BACA,yDACE,WAGJ,yBArBF,sCAsBI,oBACA,+BACA,qBACA,gBACA,yCACA,mDACE,WACA,YACA,wBACA,yDACE,KThIY,KSmIhB,wCACE,aAMR,UACE,cACA,kBACA,yBAHF,UAII,oBACA,mBACA,iBT/IkB,KSgJlB,4BACA,oBCpKJ,gBACE,kBACA,cACA,cACA,kBACA,YVRS,gBC6BT,eACA,kBAQE,yBAUA,mBACA,qBSvCF,kBACA,WACA,mCACA,kBACE,6BACA,wBACE,MVEgB,KUCpB,+BACE,cAQJ,cACE,aACA,uBACA,mBACA,QACA,oBACA,gBACE,oBACA,mBACA,gBACA,kBACA,sBACE,+BACA,mCACE,KVpBc,KUwBpB,2BACE,WACA,YACA,4BACA,yBC3CJ,MACC,kBAGD,eAEC,kBACA,6BACA,uCAKD,qBACC,gBACA,WACA,yBAHD,qBAIE,kBAED,0BAND,qBAOE,mBAMF,cACC,WACA,0BAFD,cAGE,kBAMF,YACC,gBACC,UACD,yBVhBC,eACA,iBAQE,cAUA,mBACA,qBUFH,gBACA,6BACC,cACE,6BACA,cACA,oBACE,MXnCgB,KWsCpB,eACE,qBACA,gBACA,sBACE,YAGA,kCACE,WAEF,6BACE,eAQR,kBACC,aAGD,aACC,YXhFU,gBWiFV,kBVpDC,eACA,kBAIE,cAcA,mBACA,qBUkCH,gBACA,cACA,oBACA,eACC,MXjEoB,KWkEpB,0BAED,yBAXD,aVlDE,eACA,mBAIE,yBAcA,mBACA,sBU4CH,0BAdD,aVlDE,eACA,eAIE,yBAcA,mBACA,sBUmDJ,eACC,iBACA,cACA,kBACA,cXhGQ,QWiGR,aXjGQ,QWkGR,0BAND,eAOE,aACA,gCACA,eAMF,YACC,WACA,yBVxFC,eACA,kBAQE,yBAUA,mBACA,qBUsEH,cACC,MXtGoB,KWwGrB,0BAPD,YAQE,cACA,YAED,iBACC,sBACA,qBACA,0BAHD,iBAIE,cACA,cACA,6BACA,wCAOH,WACC,aACA,0BAFD,WAGE,cACA,YACA,aACA,mBACA,oBACA,mBAOF,cACE,cACA,gBACA,gBACA,mBACA,kBACA,iBVpIA,eACA,iBAQE,cAKA,gBUwHF,gBACA,6BACA,kBACA,yBAXF,cAYI,gBACA,mBACA,kBV5IF,eACA,kBAQE,yBAKA,iBUiIF,0BAjBF,cAkBI,kBAEF,gBACE,6BAMJ,cACC,iBACA,kBACA,mCV5JC,eACA,mBAQE,gBAUA,mBACA,qBU0IH,gBACA,gBACC,MX3KoB,KW4KpB,8BACA,sBACC,6BAOH,eACC,WACA,YACA,6BACC,aAED,0BAND,eAOE,cACA,YAGA,uCAEA,gDACA,yDACA,mDACC,0BACA,oBXjMmB,KWwMtB,eACC,aACA,mBACA,SACA,oBAGD,cACC,UACA,WACA,cACA,cACA,mBAGD,kBACC,SAGD,yBACC,eACC,SAED,cACC,UACA,YAQF,eACC,eAOD,YACC,eACA,kBAUA,qBACC,iBACA,cAED,mBACC,kBACA,eAED,qBACC,WAQF,YACC,oBACA,cACC,mBACA,yBACC,gBAKH,eVlRE,eACA,eAQE,gBAUA,mBACA,qBUgQH,gBACA,yBACA,mBACA,6BACA,kBACA,oBACA,sCAIA,sBACC,aACA,qBACA,QACA,WAED,6BACC,cACA,YVtSA,eACA,mBAQE,yBAKA,gBU0RF,WAED,kCACC,OAED,yBACC,sBACC,sBACA,UAED,6BACC,WVnTD,eACA,iBAQE,cAKA,iBU2SJ,YACC,gBACA,sCAOD,YACC,aACA,eACA,QACA,oBAGD,eACC,qBACA,iBV3UC,eACA,mBAQE,yBAKA,gBU+TH,gBACA,MXzVqB,KW0VrB,+BACA,kBACA,6DACA,qBACC,iBX1VoB,KW2VpB,aX3VoB,KW4VpB,MX7VoB,KW+VrB,uBACC,MXnWoB,KW2WtB,cACC,WXtXQ,QWuXR,cXvXQ,QWwXR,oBACA,sBACC,4BACA,cACA,oBACA,mBVxWA,eACA,kBAQE,yBAKA,gBU4VF,gBACA,yBACA,mBACA,6BAED,iBV/WC,eACA,eAQE,gBAKA,gBUmWF,qBAGD,iBACC,aACA,oBACA,oBACC,uBAIF,gBACC,mBChZF,WACE,SACA,UACA,qBACA,cACE,cACA,6BACA,uCXYF,eACA,mBAQE,yBAKA,gBWxBA,kBACA,gBACE,sBAGJ,kBACE,YAEF,uBXEA,eACA,kBAQE,yBAKA,gBWdA,yBACA,aACA,yBAJF,uBAKI,gBAIJ,oBACE,cACA,WXTF,eACA,kBAIE,yBASA,gBWHA,yBAJF,oBAKI,WAEF,0BAPF,oBAQI,WASN,SACE,gBACA,SACA,cACA,gBACA,kBACA,mBACE,WX/BF,eACA,kBAQE,yBAUA,mBACA,qBWaA,gBAEF,WACE,gBACA,WACA,+BACA,kBACA,qBACA,gBACE,qBX1CJ,eACA,kBAQE,gBAUA,mBACA,qBY9CJ,WZ0BE,eACA,kBAQE,yBAUA,mBACA,qBY5CF,YbRU,6BcKZ,kBACE,eAGF,iBACE,eACA,QACA,aACA,gBACA,cACA,gBACA,aAGF,qBACE,cACA,cACA","sourcesContent":["// TYPOGRAPHY ================================================\n$base-font: 'source-sans-pro', sans-serif;\n$heading-font: $base-font;\n$code-font: 'source-code-pro', monospace;\n$alt-font: 'volkhov', serif;\n\n$doc-font-size: 16;\n$doc-line-height: 24;\n\n$border-radius: 3px;\n\n// Layout spacing\n$gutter: 1.618em; // golden ratio\n\n// set-up the body font-size / line-height\nbody {\n  margin-top: 0px + $doc-line-height;\n  font-size: 0px + $doc-font-size;\n}\n\n// COLORS =====================================================\n$body-color         : #fff;\n$text-color         : #222;\n$base-color         : #343434;\n$border-color       : #ddd;\n$white              : #fff;\n$black              : #000;\n$link-color         : #222;\n\n// CSS CUSTOM PROPERTIES (for future theming) =================\n:root {\n  --color-text: #{$text-color};\n  --color-bg: #{$body-color};\n  --color-link: #{$link-color};\n  --color-border: #{$border-color};\n  --font-body: #{$base-font};\n  --font-code: #{$code-font};\n  --font-alt: #{$alt-font};\n  --border-radius: #{$border-radius};\n}\n\n// Table styling (used in TOC)\n$table-stripe-color: darken($body-color, 4);\n","@use \"variables\" as *;\n\n// UTILITY FUNCTIONS\n// --------------------------------------------------\n\n// em() - Convert pixels to ems\n// Usage: em(16) → 1em, em(32) → 2em\n@function em($px, $base: $doc-font-size) {\n  @return ($px / $base) * 1em;\n}\n\n// MIXINS\n// --------------------------------------------------\n\n// Webkit-style focus (used via placeholder selector)\n%tab-focus {\n  outline: thin dotted #333;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n\n// Vertical Rhythm Typography\n// https://github.com/sturobson/Sassifaction\n//\n// Usage:\n//   @include font-size(24);           - with default margin and line-height\n//   @include font-size(24, no);       - no bottom margin\n//   @include font-size(24, 32);       - custom bottom margin\n//   @include font-size(24, yes, 1);   - line-height: 1\n//   @include font-size(24, yes, 40);  - custom line-height\n\n@mixin font-size($size, $margin: yes, $line-height: $doc-line-height) {\n  // generates the font-size in REMs with a PX fallback\n  font-size: 0px + $size;\n  font-size: 0rem + $size / $doc-font-size;\n\n  // line-height\n  @if $line-height != $doc-line-height and $line-height != 1 {\n    line-height: ceil($size / $line-height) * ($line-height / $size);\n  } @else if $line-height == 1 {\n    line-height: 1;\n  } @else {\n    line-height: ceil($size / $doc-line-height) * ($doc-line-height / $size);\n  }\n\n  // margin-bottom\n  @if $margin == no {\n    margin-bottom: 0;\n  } @else if $margin != yes and $margin != no {\n    margin-bottom: 0px + $margin;\n    margin-bottom: 0rem + ($margin / $doc-font-size);\n  } @else {\n    margin-bottom: 0px + $doc-line-height;\n    margin-bottom: 0rem + ($doc-line-height / $doc-font-size);\n  }\n}\n","@use \"mixins\" as *;\n\n// STYLE RESETS\n// Adapted from http://github.com/necolas/normalize.css\n// --------------------------------------------------\n\n// Apply a natural box layout model to all elements\n*, *:before, *:after {\n  -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;\n }\n\n// Remove margin\nbody { margin: 0; } \n\n// Display HTML5 elements in IE6-9 and FF3\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nnav,\nsection {\n  display: block;\n}\n\n// Display block in IE6-9 and FF3\naudio,\ncanvas,\nvideo {\n  display: inline-block;\n  *display: inline;\n  *zoom: 1;\n}\n\n// Prevents modern browsers from displaying 'audio' without controls\naudio:not([controls]) {\n  display: none;\n}\n\n// Base font settings\nhtml {\n  font-size: 100%;\n  -webkit-text-size-adjust: 100%;\n  -ms-text-size-adjust: 100%;\n}\n// Apply focus state\na:focus {\n  @extend %tab-focus;\n}\n\n// Remove outline\na:hover,\na:active {\n  outline: 0;\n}\n\n// Prevent sub and sup affecting line-height in all browsers\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\nsup {\n  top: -0.5em;\n}\nsub {\n  bottom: -0.25em;\n}\n\n// Normalize blockquotes\nblockquote {\n  margin: 0;\n}\n\n// Img border in a's and image quality\nimg {\n  // Responsive images (ensure images don't scale beyond their parents)\n  max-width: 100%; // Part 1: Set a maximum relative to the parent\n  width: auto\\9; // IE7-8 need help adjusting responsive images\n  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n\n  vertical-align: middle;\n  border: 0;\n  -ms-interpolation-mode: bicubic;\n}\n\n// Prevent max-width from affecting Google Maps\n#map_canvas img,\n.google-maps img {\n  max-width: none;\n}\n\n// Consistent form font size in all browsers, margin changes, misc\nbutton,\ninput,\nselect,\ntextarea {\n  margin: 0;\n  font-size: 100%;\n  vertical-align: middle;\n}\nbutton,\ninput {\n  *overflow: visible; // Inner spacing ie IE6/7\n  line-height: normal; // FF3/4 have !important on line-height in UA stylesheet\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner { // Inner padding and border oddities in FF3/4\n  padding: 0;\n  border: 0;\n}\nbutton,\nhtml input[type=\"button\"], // Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls.\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n    -webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS.\n    cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.\n}\nlabel,\nselect,\nbutton,\ninput[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"],\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n    cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.\n}\ninput[type=\"search\"] { // Appearance in Safari/Chrome\n  box-sizing: content-box;\n  -webkit-appearance: textfield;\n}\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button {\n  -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5\n}\ntextarea {\n  overflow: auto; // Remove vertical scrollbar in IE6-9\n  vertical-align: top; // Readability and alignment cross-browser\n}","@use \"variables\" as *;\n@use \"mixins\" as *;\n\n/* ==========================================================================\n   Base elements\n   ========================================================================== */\n\n/*\n   Selections\n   ========================================================================== */\n\n::-moz-selection {\n\tbackground-color: lighten($base-color, 65%);\n\tcolor: $base-color;\n\ttext-shadow: none;\n}\n::selection {\n\tbackground-color: lighten($base-color, 65%);\n\tcolor: $base-color;\n\ttext-shadow: none;\n}\n\n\n/*\n   Body\n   ========================================================================== */\n\nbody {\n  margin: 0;\n  padding: 0;\n  width: 100%;\n  font-family: $base-font;\n  color: $text-color;\n  background-color: $body-color;\n  border-top: 5px solid $black;\n}\n\n/*\n   Typography\n   ========================================================================== */\n\nbody {\n\tfont-family: $base-font;\n\tcolor: $text-color;\n\t@include font-size(16);\n\t@media (max-width: 767px) {\n\t\tfont-size: 14px;\n\t}\n}\n\np {\n\t@include font-size(18,yes,28);\n\t@media (max-width: 767px) {\n\t\tfont-size: 16px;\n\t}\n}\n\nli {\n\t@include font-size(16,12,24);\n}\n\n/* headings */\n\nh1, h2, h3, h4, h5, h6 {\n\tfont-family: $heading-font;\n\ttext-rendering: optimizeLegibility; // Fix the character spacing for headings\n}\nh1 {\n\t@include font-size(36);\n\t@media (max-width: 767px) { font-size: 28px; }\n}\nh2 {\n\t@include font-size(32);\n\t@media (max-width: 767px) { font-size: 24px; }\n}\nh3 {\n\t@include font-size(28);\n\t@media (max-width: 767px) { font-size: 20px; }\n}\nh4 {\n\t@include font-size(24);\n}\nh5 {\n\t@include font-size(20);\n}\nh6 {\n\t@include font-size(18);\n}\n\n/* underlined text */\n\nu,\nins {\n\ttext-decoration: none;\n\tborder-bottom: 1px solid $text-color;\n}\n\n/*\n   Links\n   ========================================================================== */\n\na {\n\ttext-decoration: none;\n\tcolor: $link-color;\n\ttransition: color 0.15s ease;\n\t&:visited {\n\t\tcolor: lighten($link-color, 20);\n\t}\n\t&:hover {\n\t\tcolor: darken($link-color, 20);\n\t}\n\t&:focus {\n\t\toutline: thin dotted;\n\t\tcolor: darken($link-color, 20);\n\t}\n\t&:hover,\n\t&:active {\n\t\toutline: 0;\n\t}\n}\n\n/*\n   Horizontal rules\n   ========================================================================== */\n\nhr {\n    display: block;\n    margin: 1em 0;\n    padding: 0;\n    height: 1px;\n    border: 0;\n    border-top: 1px solid #ccc;\n    border-bottom: 1px solid #fff;\n}\n\n/*\n   Figures and Images\n   ========================================================================== */\n\nfigure {\n  margin: 0;\n  padding-top: 10px;\n  padding-bottom: 10px;\n  display: flow-root;\n  img {\n    margin-bottom: 10px;\n  }\n  a {\n    img {\n      transform: translateY(0);\n      -webkit-transition-duration: 0.25s;\n      -moz-transition-duration: 0.25s;\n      -o-transition-duration: 0.25s;\n      opacity: 0.7;\n      &:hover {\n        transform: translateY(-5px);\n        box-shadow: 0 0 10px rgba($black, .20);\n        opacity: 1;\n      }\n    }\n  }\n}\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\n// Figure captions\n\nfigcaption {\n\tpadding-top: 10px;\n\t@include font-size(14);\n\tline-height: 1.3;\n\tcolor: lighten($text-color, 10);\n}\n\n\n\n// Tables\n// --------------------------------------------------\ntable {\n  width: 100%;\n  margin: 1.5em 0;\n  border-collapse: collapse;\n  border-spacing: 0;\n  font-size: 14px;\n  line-height: 1.6;\n\n  // Ensure tables don't overflow on mobile\n  display: block;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n\n  @media (min-width: 768px) {\n    font-size: 15px;\n  }\n}\n\nthead {\n  background-color: lighten($black, 85);\n  border-bottom: 2px solid lighten($black, 70);\n}\n\nth {\n  padding: 10px 12px;\n  font-weight: 600;\n  font-family: $base-font;\n  border-bottom: 1px solid lighten($black, 80);\n  white-space: nowrap;\n  text-align: left;\n\n  @media (min-width: 768px) {\n    padding: 12px 15px;\n  }\n\n  // Center align numeric column headers (3rd column onward typically contains numbers)\n  &:nth-child(n+3) {\n    text-align: center;\n  }\n}\n\ntbody tr {\n  border-bottom: 1px solid lighten($black, 85);\n\n  &:hover {\n    background-color: lighten($black, 95);\n  }\n\n  &:last-child {\n    border-bottom: 2px solid lighten($black, 70);\n  }\n}\n\ntd {\n  padding: 10px 12px;\n  vertical-align: middle;\n\n  @media (min-width: 768px) {\n    padding: 12px 15px;\n  }\n\n  // First column: bold, left-aligned (row labels)\n  &:first-child {\n    font-weight: 500;\n    text-align: left;\n  }\n\n  // Second column: left-aligned (descriptions)\n  &:nth-child(2) {\n    text-align: left;\n  }\n\n  // Third column onward: center-aligned (typically numbers or short values)\n  &:nth-child(n+3) {\n    text-align: center;\n    font-feature-settings: \"tnum\"; // Tabular numbers for better alignment\n  }\n\n  // Handle bold values\n  strong {\n    font-weight: 600;\n  }\n\n  // Special styling for empty cells or \"--\"\n  &:empty {\n    color: lighten($text-color, 50);\n    text-align: center;\n\n    &::after {\n      content: \"--\";\n    }\n  }\n}\n\n// Special handling for 2-column spec tables\ntable th:nth-child(2):last-child {\n  text-align: left;\n}\n\ntable td:nth-child(2):last-child {\n  text-align: left;\n}\n\n// Code within tables\ntable code {\n  font-size: 0.9em;\n  background-color: lighten($black, 92);\n  padding: 2px 4px;\n  border-radius: 3px;\n}\n\n\n// Blockquotes\n// --------------------------------------------------\n\nblockquote {\n\tfont-family: 'JetBrains Mono', $code-font;\n\tfont-style: normal;\n\tfont-weight: 500;\n\t@include font-size(15);\n\tpadding-left: 20px;\n\tborder-left: 8px solid $black;\n\t@media (max-width: 767px) {\n\t\tfont-family: $base-font;\n\t\tfont-size: 13px;\n\t\tfont-weight: 400;\n\t\tline-height: 1.5;\n\t\tpadding-left: 10px;\n\t\tborder-left: 3px solid lighten($black, 60);\n\t}\n}\n\n\n\n\n\n// Code\n// --------------------------------------------------\n\ntt, code, kbd, samp, pre {\n\tfont-family: 'JetBrains Mono', $code-font;\n\tfont-weight: 700;\n}\np,\nli {\n\tcode {\n\t\t@include font-size(14);\n\t\tfont-family: 'JetBrains Mono', $code-font;\n\t\tfont-weight: 700;\n\t\twhite-space: nowrap;\n\t\tmargin: 0 2px;\n\t\tpadding: 0 5px;\n\t\tborder: 1px solid lighten($black, 90);\n\t\tbackground-color: lighten($black, 95);\n\t\tborder-radius: 3px;\n\t}\n}\npre {\n\t@include font-size(14);\n\toverflow-x: auto;\n}\n\n\n\n\n\n// Global Transition\n// ---------------------------------------------------\n\nb, i, strong, em, blockquote, p, q, span, figure, img, h1, h2, header, input, a, .highlight {\n\ttransition: all .2s ease;\n}\n","@use \"variables\" as *;\n\n/* ==========================================================================\n   Helpers and Utility Classes\n   ========================================================================== */\n\n.wrap {\n  margin: 0 auto;\n}\n\n/*\n   Link arrow (used in link post titles)\n   ========================================================================== */\n\n.link-arrow {\n  font-weight: 100;\n  text-decoration: underline;\n  font-style: normal;\n}\n","@use \"variables\" as *;\n@use \"mixins\" as *;\n\n/* ==========================================================================\n   Buttons\n   ========================================================================== */\n\n/*\n   Default button\n   ========================================================================== */\n\n.btn {\n  display: inline-block;\n  margin-bottom: 20px;\n  padding: 8px 20px;\n  @include font-size(14);\n  background-color: $black;\n  color: $white;\n  border: 2px solid $black !important;\n  border-radius: $border-radius;\n  &:visited {\n    color: $white;\n  }\n  &:hover {\n    background-color: $white;\n    color: $black;\n  }\n}\n\n","@use \"variables\" as *;\n@use \"mixins\" as *;\n\n/* ==========================================================================\n   Syntax highlighting and formatting\n   ========================================================================== */\n\n/* Base pre/code styling with line wrapping */\npre {\n  max-width: 100%;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n  word-break: break-word;\n}\n\npre code {\n  display: block;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n  word-break: break-word;\n}\n\n/* PrismJS code blocks */\npre[class*=\"language-\"] {\n  max-width: 100%;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n}\n\n/* Rouge/Jekyll highlighter wrapper */\n.highlighter-rouge {\n  max-width: 100%;\n}\n\npre.highlight {\n  padding: 1em;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n}\n\n/*\n   Pygments.rb and Rouge\n   ========================================================================== */\n\n.highlight {\n\tbackground-color: #efefef;\n\tfont-family: 'JetBrains Mono', $code-font;\n\tfont-weight: 700;\n\tcolor: #333332;\n\tmargin-bottom: 1.5em;\n\tborder-radius: $border-radius;\n\tpre {\n\t\tposition: relative;\n\t\tmargin: 0;\n\t\tpadding: 1em;\n\t}\n\t.lineno { padding-right: 24px; color: lighten(#333332,50);}\n\t.hll { background-color: #ffffcc }\n\t.c { color: #999988; font-style: italic } /* Comment */\n\t.err { color: #a61717; background-color: #e3d2d2 } /* Error */\n\t.k { color: #000000; font-weight: bold } /* Keyword */\n\t.o { color: #000000; font-weight: bold } /* Operator */\n\t.cm { color: #999988; font-style: italic } /* Comment.Multiline */\n\t.cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */\n\t.c1 { color: #999988; font-style: italic } /* Comment.Single */\n\t.cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */\n\t.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */\n\t.ge { color: #000000; font-style: italic } /* Generic.Emph */\n\t.gr { color: #aa0000 } /* Generic.Error */\n\t.gh { color: #999999 } /* Generic.Heading */\n\t.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */\n\t.go { color: #888888 } /* Generic.Output */\n\t.gp { color: #555555 } /* Generic.Prompt */\n\t.gs { font-weight: bold } /* Generic.Strong */\n\t.gu { color: #aaaaaa } /* Generic.Subheading */\n\t.gt { color: #aa0000 } /* Generic.Traceback */\n\t.kc { color: #000000; font-weight: bold } /* Keyword.Constant */\n\t.kd { color: #000000; font-weight: bold } /* Keyword.Declaration */\n\t.kn { color: #000000; font-weight: bold } /* Keyword.Namespace */\n\t.kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */\n\t.kr { color: #000000; font-weight: bold } /* Keyword.Reserved */\n\t.kt { color: #445588; font-weight: bold } /* Keyword.Type */\n\t.m { color: #009999 } /* Literal.Number */\n\t.s { color: #d01040 } /* Literal.String */\n\t.na { color: #008080 } /* Name.Attribute */\n\t.nb { color: #0086B3 } /* Name.Builtin */\n\t.nc { color: #445588; font-weight: bold } /* Name.Class */\n\t.no { color: #008080 } /* Name.Constant */\n\t.nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */\n\t.ni { color: #800080 } /* Name.Entity */\n\t.ne { color: #990000; font-weight: bold } /* Name.Exception */\n\t.nf { color: #990000; font-weight: bold } /* Name.Function */\n\t.nl { color: #990000; font-weight: bold } /* Name.Label */\n\t.nn { color: #555555 } /* Name.Namespace */\n\t.nt { color: #000080 } /* Name.Tag */\n\t.nv { color: #008080 } /* Name.Variable */\n\t.ow { color: #000000; font-weight: bold } /* Operator.Word */\n\t.w { color: #bbbbbb } /* Text.Whitespace */\n\t.mf { color: #009999 } /* Literal.Number.Float */\n\t.mh { color: #009999 } /* Literal.Number.Hex */\n\t.mi { color: #009999 } /* Literal.Number.Integer */\n\t.mo { color: #009999 } /* Literal.Number.Oct */\n\t.sb { color: #d01040 } /* Literal.String.Backtick */\n\t.sc { color: #d01040 } /* Literal.String.Char */\n\t.sd { color: #d01040 } /* Literal.String.Doc */\n\t.s2 { color: #d01040 } /* Literal.String.Double */\n\t.se { color: #d01040 } /* Literal.String.Escape */\n\t.sh { color: #d01040 } /* Literal.String.Heredoc */\n\t.si { color: #d01040 } /* Literal.String.Interpol */\n\t.sx { color: #d01040 } /* Literal.String.Other */\n\t.sr { color: #009926 } /* Literal.String.Regex */\n\t.s1 { color: #d01040 } /* Literal.String.Single */\n\t.ss { color: #990073 } /* Literal.String.Symbol */\n\t.bp { color: #999999 } /* Name.Builtin.Pseudo */\n\t.vc { color: #008080 } /* Name.Variable.Class */\n\t.vg { color: #008080 } /* Name.Variable.Global */\n\t.vi { color: #008080 } /* Name.Variable.Instance */\n\t.il { color: #009999 } /* Literal.Number.Integer.Long */\n}\n\n/*\n   Coderay\n   ========================================================================== */\n\n.CodeRay {\n  background-color: #efefef;\n  font-family: 'JetBrains Mono', $code-font;\n  font-weight: 700;\n  @include font-size(12);\n  color: #333332;\n  margin-bottom: 1.5em;\n  border-radius: 4px;\n  pre {\n    margin: 0px;\n    padding: 1em;\n  }\n}\n\ndiv.CodeRay { }\nspan.CodeRay { white-space: pre; border: 0px; padding: 2px }\n\ntable.CodeRay { border-collapse: collapse; width: 100%; padding: 2px }\ntable.CodeRay td {\n  padding: 1em 0.5em;\n  vertical-align: top;\n}\n\nol.CodeRay { font-size: 10pt }\nol.CodeRay li { white-space: pre }\n\n.CodeRay {\n\n\t.line-numbers,\n\t.no {\n\t  background-color: #ececec;\n\t  color: #aaa;\n\t  text-align: right;\n\t}\n\n\t.line-numbers a {\n\t  color: #aaa;\n\t}\n\n\t.line-numbers tt { font-weight: bold }\n\t.line-numbers .highlighted { color: red }\n\t.line { display: block; float: left; width: 100%; }\n\tspan.line-numbers { padding: 0 24px 0 4px }\n\t.code { width: 100% }\n\n\t.code pre { overflow: auto }\n  .debug { color: white !important; background: blue !important; }\n\t.annotation { color: #007 }\n\t.attribute-name { color: #f08 }\n\t.attribute-value { color: #700 }\n\t.binary { color: #509; font-weight: bold }\n\t.comment  { color: #998; font-style: italic;}\n\t.char { color: #04d }\n\t.char .content { color: #04d }\n\t.char .delimiter { color: #039 }\n\t.class { color: #458; font-weight: bold }\n\t.complex { color: #a08; font-weight: bold }\n\t.constant { color: teal; }\n\t.color { color: #0a0 }\n\t.class-variable { color: #369 }\n\t.decorator { color: #b0b; }\n\t.definition { color: #099; font-weight: bold }\n\t.directive { color: #088; font-weight: bold }\n\t.delimiter { color: black }\n\t.doc { color: #970 }\n\t.doctype { color: #34b }\n\t.doc-string { color: #d42; font-weight: bold }\n\t.escape  { color: #666; font-weight: bold }\n\t.entity { color: #800; font-weight: bold }\n\t.error { color: #f00; background-color: #faa }\n\t.exception { color: #c00; font-weight: bold }\n\t.filename { color: #099; }\n\t.function { color: #900; font-weight: bold }\n\t.global-variable { color: teal; font-weight: bold }\n\t.hex { color: #058; font-weight: bold }\n\t.integer  { color: #099; }\n\t.include { color: #b44; font-weight: bold }\n\t.inline { color: black }\n\t.inline .inline { background: #ccc }\n\t.inline .inline .inline { background: #bbb }\n\t.inline .inline-delimiter { color: #d14; }\n\t.inline-delimiter { color: #d14; }\n\t.important { color: #f00; }\n\t.interpreted { color: #b2b; font-weight: bold }\n\t.instance-variable { color: teal }\n\t.label { color: #970; font-weight: bold }\n\t.local-variable { color: #963 }\n\t.octal { color: #40e; font-weight: bold }\n\t.operator { }\n\t.predefined-constant { font-weight: bold }\n\t.predefined { color: #369; font-weight: bold }\n\t.preprocessor { color: #579; }\n\t.pseudo-class { color: #00c; font-weight: bold }\n\t.predefined-type { color: #074; font-weight: bold }\n\t.reserved,\n\t.keyword { color: #000; font-weight: bold }\n\n\t.key { color: #808; }\n\t.key .delimiter { color: #606; }\n\t.key .char { color: #80f; }\n\t.value { color: #088; }\n\n\t.regexp { background-color: #fff0ff }\n\t.regexp .content { color: #808 }\n\t.regexp .delimiter { color: #404 }\n\t.regexp .modifier { color: #c2c }\n\t.regexp .function  { color: #404; font-weight: bold }\n\n\t.string { color: #d20; }\n\t.string .string { }\n\t.string .string .string { background-color: #ffd0d0 }\n\t.string .content { color: #d14; }\n\t.string .char { color: #d14; }\n\t.string .delimiter { color: #d14; }\n\n\t.shell { color: #d14 }\n\t.shell .content { }\n\t.shell .delimiter { color: #d14 }\n\n\t.symbol { color: #990073 }\n\t.symbol .content { color: #a60 }\n\t.symbol .delimiter { color: #630 }\n\n\t.tag { color: #070 }\n\t.tag-special { color: #d70; font-weight: bold }\n\t.type { color: #339; font-weight: bold }\n\t.variable { color: #036 }\n\n\t.insert { background: #afa; }\n\t.delete { background: #faa; }\n\t.change { color: #aaf; background: #007; }\n\t.head { color: #f8f; background: #505 }\n\n\t.insert .insert { color: #080; font-weight: bold }\n\t.delete .delete { color: #800; font-weight: bold }\n\t.change .change { color: #66f; }\n\t.head .head { color: #f4f; }\n}\n","@use \"variables\" as *;\n@use \"mixins\" as *;\n\n/* ==========================================================================\n   Notices\n   ========================================================================== */\n\n/*\n   Default notice\n   ========================================================================== */\n\n.notice {\n  margin-top: 1.5em;\n  padding: .5em 1em;\n  text-indent: 0;\n  @include font-size(16);\n  background-color: lighten($black, 95);\n  border: 1px solid lighten($black, 90);\n  border-radius: 4px;\n}\n\n","@use \"variables\" as *;\n@use \"mixins\" as *;\n\n/* ==========================================================================\n   Masthead\n   ========================================================================== */\n\n.masthead {\n  margin-top: 10px;\n  margin-bottom: 10px;\n  display: flow-root;\n  @media (min-width: 768px) {\n    margin-top: 0;\n    margin-bottom: 0;\n  }\n  .wrap {\n    text-align: center;\n    max-width: em(528);\n    padding-right: 20px;\n    padding-left: 20px;\n    @media (min-width: 768px) {\n      max-width: em(874);\n      padding-right: 60px;\n      padding-left: 60px;\n    }\n    @media (min-width: 1000px) {\n      max-width: em(1152);\n    }\n  }\n}\n\n/*\n   Site logo\n   ========================================================================== */\n\n.site-logo {\n  img {\n    width: 100px;\n    height: 100px;\n    animation-duration: 1s;\n      animation-delay: .05s;\n      border: 4px solid $white;\n      border-radius: 100px; /* crops in a circle */\n    @media (min-width: 768px) {\n      width: 150px;\n      height: 150px;\n      border-radius: 150px; /* crops in a circle */\n    }\n    @media (min-width: 1000px) {\n      width: 200px;\n      height: 200px;\n      border-radius: 200px; /* crops in a circle */\n    }\n  }\n}\n\n/*\n   Site title/name\n   ========================================================================== */\n\n.site-title {\n  margin-bottom: 0;\n  animation-duration: 1s;\n    animation-delay: .75s;\n  a {\n    color: $black;\n  }\n}\n\n/*\n   Site description text\n   ========================================================================== */\n\n.site-description {\n  margin-top: 0;\n  margin-bottom: 0.5em;\n  font-family: $alt-font;\n  @include font-size(16);\n  font-weight: 400;\n  font-style: italic;\n  animation-duration: 1s;\n    animation-delay: 1s;\n  @media (min-width: 768px) {\n    @include font-size(18);\n  }\n}\n","@use \"variables\" as *;\n@use \"mixins\" as *;\n\n/* ==========================================================================\n   Top navigation\n   ========================================================================== */\n\n.navigation-wrapper {\n  text-align: center;\n  display: flow-root;\n\n  /* --- Hamburger toggle button --- */\n  .nav-toggle {\n    display: block;\n    background: $black;\n    border: none;\n    cursor: pointer;\n    padding: 12px 16px;\n    margin: 0 auto;\n    width: 100%;\n    @media (min-width: 768px) {\n      display: none;\n    }\n    .nav-toggle-bar {\n      display: block;\n      width: 22px;\n      height: 2px;\n      background: $white;\n      margin: 4px auto;\n      border-radius: 1px;\n      transition: transform 0.2s ease, opacity 0.2s ease;\n    }\n  }\n\n  /* --- Mobile menu hidden by default, visible on desktop --- */\n  ul {\n    display: none;\n    width: 100%;\n    vertical-align: top;\n    margin: 0;\n    padding: 8px 16px;\n    background-color: $black;\n    @media (min-width: 768px) {\n      display: flex !important;\n      flex-wrap: wrap;\n      align-items: center;\n      width: auto;\n      margin: 0;\n      padding: 4px 8px 4px 20px;\n      background-color: transparent;\n      border-radius: 0;\n    }\n  }\n\n  /* --- Show menu + social when nav-open --- */\n  &.nav-open {\n    ul {\n      display: block;\n    }\n    .nav-social-icons {\n      display: flex;\n    }\n    .nav-toggle .nav-toggle-bar:nth-child(1) {\n      transform: translateY(6px) rotate(45deg);\n    }\n    .nav-toggle .nav-toggle-bar:nth-child(2) {\n      opacity: 0;\n    }\n    .nav-toggle .nav-toggle-bar:nth-child(3) {\n      transform: translateY(-6px) rotate(-45deg);\n    }\n  }\n\n  li {\n    display: block;\n    float: none;\n    list-style: none;\n    text-align: center;\n    @include font-size(18, no);\n    text-transform: uppercase;\n    color: $white;\n    @media (min-width: 768px) {\n      @include font-size(13, no);\n      letter-spacing: 0.5px;\n    }\n  }\n  a {\n    display: block;\n    margin-bottom: 4px;\n    padding: 10px 16px;\n    color: $white;\n    border-radius: 4px;\n    transition: background-color 0.15s ease;\n    @media (min-width: 768px) {\n      margin-bottom: 0;\n      padding: 8px 14px;\n    }\n    &:hover {\n      background-color: lighten($black, 20);\n    }\n    &:visited {\n      color: $white;\n    }\n    &.active {\n      background-color: lighten($black, 25);\n    }\n  }\n\n  /* --- Heart icon in nav --- */\n  .nav-heart {\n    width: 14px;\n    height: 14px;\n    vertical-align: -1px;\n    margin-right: 3px;\n    @media (min-width: 768px) {\n      width: 12px;\n      height: 12px;\n    }\n  }\n\n  /* --- Social icons in nav bar --- */\n  .nav-social-icons {\n    display: none;\n    justify-content: center;\n    align-items: center;\n    gap: 6px;\n    padding: 8px 16px 12px;\n    background-color: $black;\n    a {\n      display: inline-flex;\n      padding: 6px;\n      margin-bottom: 0;\n    }\n    .social-icon {\n      width: 20px;\n      height: 20px;\n      fill: $white;\n      transition: opacity 0.15s ease;\n      &:hover {\n        opacity: 0.7;\n      }\n    }\n    @media (min-width: 768px) {\n      display: inline-flex;\n      background-color: transparent;\n      padding: 0 12px 0 6px;\n      margin-left: 4px;\n      border-left: 1px solid rgba($white, 0.2);\n      .social-icon {\n        width: 15px;\n        height: 15px;\n        fill: rgba($white, 0.5);\n        &:hover {\n          fill: $white;\n        }\n      }\n      a {\n        padding: 4px;\n      }\n    }\n  }\n}\n\n#site-nav {\n  display: block;\n  position: relative;\n  @media (min-width: 768px) {\n    display: inline-flex;\n    align-items: center;\n    background-color: $black;\n    border-radius: 0 0 10px 10px;\n    margin-bottom: 15px;\n  }\n}\n","@use \"variables\" as *;\n@use \"mixins\" as *;\n\n/* ==========================================================================\n   Site footer\n   ========================================================================== */\n\n.footer-wrapper {\n  display: flow-root;\n  margin: 0 auto;\n  padding: 2em 0;\n  text-align: center;\n  font-family: $alt-font;\n  @include font-size(14);\n  font-style: italic;\n  color: lighten($text-color, 40);\n  border-top: 1px solid lighten($black, 90);\n  a {\n    color: lighten($text-color, 30);\n    &:hover {\n      color: $text-color;\n    }\n  }\n  .entry-wrapper {\n    display: block; /* override grid layout for footer */\n  }\n}\n\n/*\n   Social media icons\n   ========================================================================== */\n\n.social-icons {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  gap: 4px;\n  margin: 1.2em 0 0.5em;\n  a {\n    display: inline-flex;\n    align-items: center;\n    padding: 6px 8px;\n    border-radius: 4px;\n    &:hover {\n      background-color: lighten($black, 95);\n      .social-icon {\n        fill: $black;\n      }\n    }\n  }\n  .social-icon {\n    width: 22px;\n    height: 22px;\n    fill: lighten($text-color, 50);\n    transition: fill 0.2s ease;\n  }\n}\n","@use \"variables\" as *;\n@use \"mixins\" as *;\n\n/* ==========================================================================\n   Page/post layout and styling\n   ========================================================================== */\n\n/*\n   Main content\n   ========================================================================== */\n\n#main {\n\tdisplay: flow-root;\n}\n\n.entry,\n.hentry {\n\tdisplay: flow-root;\n\tborder-bottom: 1px solid lighten($black,80);\n\tborder-bottom: 1px solid rgba($black,.10);\n}\n\n/* feature image */\n\n.entry-feature-image {\n\tmargin: 20px 0 0;\n\twidth: 100%;\n\t@media (min-width: 768px) {\n\t\tmargin-top: -75px; /* move up to be overlapped by site logo */\n\t}\n\t@media (min-width: 1000px) {\n\t\tmargin-top: -145px; /* move up further to be overlapped by site logo */\n\t}\n}\n\n/* page header */\n\n.entry-header {\n\twidth: 100%;\n\t@media (min-width: 1000px) {\n\t\tgrid-column: 1 / -1;\n\t}\n}\n\n/* tag listing in page header */\n\n.entry-tags {\n\tmargin: 0.4em 0 0;\n  padding: 0;\n\ttext-transform: uppercase;\n\t@include font-size(12);\n\tfont-weight: 500;\n\tcolor: lighten($text-color, 30);\n  a {\n    color: lighten($text-color, 30);\n    padding: 0 4px;\n    &:hover {\n      color: $text-color;\n    }\n  }\n  li {\n    display: inline-block;\n    margin-bottom: 0;\n    &:before {\n      content: \"\\2022\";\n    }\n    &:first-child {\n      &:before {\n        content: \"\";\n      }\n      a {\n        padding-left: 0;\n      }\n    }\n  }\n}\n\n/* page title */\n\nspan + .entry-title {\n\tmargin-top: 0;\n}\n\n.entry-title {\n\tfont-family: $alt-font;\n\tfont-style: italic;\n\t@include font-size(28,yes,28);\n\tfont-weight: 400;\n\tline-height: 1;\n\tletter-spacing: -2px;\n\ta {\n\t\tcolor: $black;\n\t\ttext-decoration: underline;\n\t}\n\t@media (min-width: 768px) {\n\t\t@include font-size(38,yes,40);\n\t}\n\t@media (min-width: 1000px) {\n\t\t@include font-size(48,yes,52);\n\t}\n}\n\n/* page/post wrapper */\n\n.entry-wrapper {\n\tmax-width: 1152px;\n\tmargin: 0 auto;\n\tmargin-bottom: 2em;\n\tpadding-right: $gutter;\n\tpadding-left: $gutter;\n\t@media (min-width: 1000px) {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: 1fr 3.8fr;\n\t\tgap: 0 $gutter;\n\t}\n}\n\n/* page/post meta content (date, author, etc) */\n\n.entry-meta {\n\twidth: 100%;\n\ttext-transform: uppercase;\n\t@include font-size(14);\n\ta {\n\t\tcolor: $text-color;\n\t}\n\t@media (min-width: 1000px) {\n\t\tgrid-column: 1;\n\t\tgrid-row: 2;\n\t}\n\t& > span {\n\t\tpadding: 0 20px 10px 0;\n\t\tdisplay: inline-block;\n\t\t@media (min-width: 1000px) {\n\t\t\tdisplay: block;\n\t\t\tpadding: 8px 0;\n\t\t\tborder-bottom: 1px solid lighten($black,80);\n\t\t\tborder-bottom: 1px solid rgba($black,.10);\n\t\t}\n\t}\n}\n\n/* author avatar (circular) */\n\n.bio-photo {\n\tdisplay: none;\n\t@media (min-width: 1000px) {\n\t\tdisplay: block;\n\t\twidth: 150px;\n\t\theight: 150px;\n\t\tmargin-bottom: 10px;\n\t\tborder-radius: 150px;\n\t\tdisplay: flow-root;\n\t}\n}\n\n\n/* feature image credit */\n\n.image-credit {\n  margin: 0 auto;\n  max-width: 440px;\n  padding-top: 5px;\n  padding-right: 20px;\n  padding-left: 20px;\n  text-align: right;\n  @include font-size(12, no);\n  line-height: 1.3;\n  color: lighten($text-color, 30);\n  display: flow-root;\n  @media (min-width: 768px) {\n    max-width: 912px;\n    padding-right: 60px;\n    padding-left: 60px;\n    @include font-size(14, no);\n  }\n  @media (min-width: 1000px) {\n    max-width: 1152px;\n  }\n  a {\n    color: lighten($text-color, 30);\n  }\n}\n\n/* support CTA at end of post */\n\n.post-support {\n\tmargin-top: 2.5em;\n\tpadding-top: 1.5em;\n\tborder-top: 1px solid lighten($black, 85);\n\t@include font-size(15);\n\tfont-weight: 600;\n\ta {\n\t\tcolor: $text-color;\n\t\tborder-bottom: none !important;\n\t\t&:hover {\n\t\t\tcolor: lighten($text-color, 30);\n\t\t}\n\t}\n}\n\n/* main content block */\n\n.entry-content {\n\twidth: 100%;\n\tmin-width: 0; /* Allow content to shrink in CSS Grid */\n\tp:first-child {\n\t\tmargin-top: 0;\n\t}\n\t@media (min-width: 1000px) {\n\t\tgrid-column: 2;\n\t\tgrid-row: 2;\n\t}\n\t/* nice link underlines */\n  p > a,\n\tli > a {\n\t\tborder-bottom: 1px dotted lighten($link-color, 50);\n\t\ttransition: border-bottom-color 0.15s ease, color 0.15s ease;\n\t\t&:hover {\n\t\t\tborder-bottom-style: solid;\n\t\t\tborder-bottom-color: $link-color;\n\t\t}\n\t}\n}\n\n/* project header with logo */\n\n.project-title {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n\tmargin: 1.2em 0 0.5em;\n}\n\n.project-logo {\n\twidth: 2em;\n\theight: 2em;\n\tflex-shrink: 0;\n\tdisplay: block;\n\tobject-fit: contain;\n}\n\n.project-title h2 {\n\tmargin: 0;\n}\n\n@media (max-width: 600px) {\n\t.project-title {\n\t\tgap: 10px;\n\t}\n\t.project-logo {\n\t\twidth: 2em;\n\t\theight: 2em;\n\t}\n}\n\n/*\n   Disqus\n   ========================================================================== */\n\n#disqus_thread {\n\tmargin-top: 2em;\n}\n\n/*\n   Pagination\n   ========================================================================== */\n\n.pagination {\n\tmargin-top: 2em;\n\ttext-align: center;\n}\n\n/*\n   Overrides\n   ========================================================================== */\n\n/* adjust width for lack of meta/author column */\n\n#page {\n\t.entry-wrapper {\n\t\tmax-width: em(760);\n\t\tdisplay: block; /* disable grid for simple pages */\n\t}\n\t.entry-title {\n\t\ttext-align: center;\n\t\tmax-width: 100%;\n\t}\n\t.entry-content {\n\t\twidth: 100%;\n\t}\n}\n\n/*\n   Homepage\n   ========================================================================== */\n\n.home-quote {\n\tmargin-bottom: 2.5em;\n\tp {\n\t\tmargin-bottom: 0.8em;\n\t\t&:last-child {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t}\n}\n\n.section-title {\n\t@include font-size(16);\n\tfont-weight: 600;\n\ttext-transform: uppercase;\n\tletter-spacing: 1px;\n\tcolor: lighten($text-color, 30);\n\tmargin-bottom: 1em;\n\tpadding-bottom: 0.5em;\n\tborder-bottom: 1px solid lighten($black, 85);\n}\n\n#page .post-list {\n\tli a {\n\t\tdisplay: flex;\n\t\talign-items: baseline;\n\t\tgap: 1em;\n\t\tfloat: none;\n\t}\n\t.entry-date {\n\t\tflex-shrink: 0;\n\t\twidth: 7.5em;\n\t\t@include font-size(13, no);\n\t\tcolor: lighten($text-color, 40);\n\t}\n\t.post-link-title {\n\t\tflex: 1;\n\t}\n\t@media (max-width: 600px) {\n\t\tli a {\n\t\t\tflex-direction: column;\n\t\t\tgap: 0.15em;\n\t\t}\n\t\t.entry-date {\n\t\t\twidth: auto;\n\t\t\t@include font-size(12, no);\n\t\t}\n\t}\n}\n\n.view-all a {\n\tfont-weight: 600;\n\tjustify-content: flex-start !important;\n}\n\n/*\n   Talk links\n   ========================================================================== */\n\n.talk-links {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 6px;\n\tmargin: 0.5em 0 1.5em;\n}\n\n.talk-link-btn {\n\tdisplay: inline-block;\n\tpadding: 4px 12px;\n\t@include font-size(13, no);\n\tfont-weight: 600;\n\tcolor: $text-color;\n\tborder: 1px solid lighten($black, 75);\n\tborder-radius: 4px;\n\ttransition: background-color 0.15s ease, border-color 0.15s ease;\n\t&:hover {\n\t\tbackground-color: $black;\n\t\tborder-color: $black;\n\t\tcolor: $white;\n\t}\n\t&:visited {\n\t\tcolor: $text-color;\n\t}\n}\n\n/*\n   Kramdown generated table of contents\n   ========================================================================== */\n\n#markdown-toc {\n\tmargin-top: $gutter;\n\tmargin-bottom: $gutter;\n\tpadding-left: 1.25em;\n\t&::before {\n\t\tcontent: \"Table of contents\";\n\t\tdisplay: block;\n\t\tmargin-left: -1.25em; /* align the label with body text, not with the list items */\n\t\tmargin-bottom: 0.5em;\n\t\t@include font-size(14,no);\n\t\tfont-weight: 600;\n\t\ttext-transform: uppercase;\n\t\tletter-spacing: 1px;\n\t\tcolor: lighten($text-color, 30);\n\t}\n\tli {\n\t\t@include font-size(16,no,24);\n\t\tlist-style-type: disc;\n\t}\n\t/* nested levels (### under ##) get a clear offset and a lighter marker */\n\tul {\n\t\tmargin-top: 0;\n\t\tpadding-left: 1.25em;\n\t\tli {\n\t\t\tlist-style-type: circle;\n\t\t}\n\t}\n\t/* TOC is navigation, not prose - skip the article's dotted link underlines */\n\ta {\n\t\tborder-bottom: none;\n\t}\n}\n","@use \"variables\" as *;\n@use \"mixins\" as *;\n\n/* ==========================================================================\n   Archive pages\n   ========================================================================== */\n\n\n\n\n/*\n   Post archive\n   ========================================================================== */\n\n.post-list {\n  margin: 0;\n  padding: 0;\n  list-style-type: none;\n  li {\n    padding: 8px 0;\n    border-bottom: 1px solid lighten($black,80);\n    border-bottom: 1px solid rgba($black,.10);\n    @include font-size(18,no);\n    display: flow-root;\n    > a {\n      border-bottom-width: 0; /* remove underlines from items in post indexes */\n    }\n  }\n  a > span {\n    float: right;\n  }\n  .entry-date {\n    @include font-size(14,no);\n    text-transform: uppercase;\n    display: none;\n    @media (min-width: 768px) {\n      display: inline;\n    }\n  }\n  /* post excerpt */\n  .excerpt {\n    display: block;\n    float: none;\n    @include font-size(14, no, 16);\n    @media (min-width: 768px) {\n      width: 70%;\n    }\n    @media (min-width: 1000px) {\n      width: 60%;\n    }\n  }\n}\n\n/*\n   Tag archive\n   ========================================================================== */\n\n.tag-box {\n  list-style: none;\n  margin: 0;\n  padding: 4px 0;\n  overflow: hidden;\n  display: flow-root;\n  &.inline li {\n    float: left;\n    @include font-size(14);\n    line-height: 2.5;\n  }\n  a {\n    padding: 4px 6px;\n    margin: 2px;\n    background-color: lighten($black, 90);\n    border-radius: 4px;\n    text-decoration: none;\n    span {\n      vertical-align: super;\n      @include font-size(10);\n    }\n  }\n}","@use \"variables\" as *;\n@use \"mixins\" as *;\n\n/* ==========================================================================\n   Footnotes (class generated by Kramdown)\n   ========================================================================== */\n\n.footnotes {\n  @include font-size(14);\n  font-family: $base-font;\n}","/* ==========================================================================\n   Mermaid diagrams - full-screen click-to-zoom overlay\n   Opened by /assets/js/mermaid-zoom.js; base .mermaid styles are inlined by\n   _includes/mermaid.html\n   ========================================================================== */\n\n.mermaid-zoomable {\n  cursor: zoom-in;\n}\n\n.mermaid-overlay {\n  position: fixed;\n  inset: 0;\n  z-index: 1000;\n  background: #fff;\n  overflow: auto;\n  cursor: zoom-out;\n  padding: 24px;\n}\n\n.mermaid-overlay svg {\n  display: block;\n  margin: 0 auto;\n  max-width: none !important;\n}\n"],"file":"main.css"}