@use 'reset' as *;:root{--max-width: 800px;--font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, sans-serif;--spacing-unit: 1rem;--border-radius: 8px}.theme-light{--bg-primary: #fcfcfc;--bg-secondary: #f8f9fa;--text-primary: #2d3748;--text-secondary: #4a5568;--accent-color: #3182ce;--border-color: #e2e8f0;--header-bg: rgba(255, 255, 255, 0.95);--code-bg: #f4f2f0;--link-color: #0066cc;background-color:#fcfcfc;color:#333}.theme-light h1{color:#0a0a0a}.theme-light .nav-link{color:#0a0a0a}.theme-light .mac_app_button{background:url(../images/apps/Mac_App_Store_Badge_white.svg) no-repeat}.theme-light .ios_app_button{background:url(../images/apps/App_Store_Badge_white.svg) no-repeat}.theme-light .theme-toggle svg{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.theme-dark{--bg-primary: #1a202c;--bg-secondary: #2d3748;--text-primary: #f7fafc;--text-secondary: #e2e8f0;--accent-color: #63b3ed;--border-color: #4a5568;--header-bg: rgba(26, 32, 44, 0.95);--code-bg: #4b4b54;--link-color: #63b3ed;background-color:#1a202c;color:#fff}.theme-dark h1{color:#ffffff}.theme-dark .nav-link{color:#ffffff}.theme-dark .mac_app_button{background:url(../images/apps/Mac_App_Store_Badge.svg) no-repeat}.theme-dark .ios_app_button{background:url(../images/apps/App_Store_Badge.svg) no-repeat}.theme-dark .theme-toggle svg{-webkit-transform:rotate(0deg);transform:rotate(0deg)}html,body{max-width:100%;overflow-x:hidden;position:relative}*,*:before,*:after{-webkit-box-sizing:inherit;box-sizing:inherit}body{font-family:var(--font-family);line-height:1.6;max-width:var(--max-width);margin:0 auto;padding:0 var(--spacing-unit);background-color:var(--bg-primary);color:var(--text-primary)}h1,h2,h3,h4,h5,h6{margin:2rem 0 1rem;line-height:1.2;color:var(--text-primary)}h1{font-size:2.5rem;padding-bottom:10px}header{position:-webkit-sticky;position:sticky;top:0;background:var(--header-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-color);padding:1rem 0;margin-bottom:0;z-index:100}hr{border:0;height:1px;background-color:var(--border-color);margin:2rem 0}input.pagefind-ui__search-input{margin-top:1.5rem;outline:none}blockquote{background-color:var(--bg-secondary);border-left:4px solid var(--accent-color);padding:0.1rem 1rem;margin:0.5rem 0;font-style:italic}nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:1rem 0}.nav-brand{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.nav-links{display:-webkit-box;display:-ms-flexbox;display:flex;gap:1.5rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:0;padding:0;list-style:none}.nav-link{color:var(--text-primary);text-decoration:none;font-weight:500;padding:0.5rem;border-radius:var(--border-radius);-webkit-transition:color 0.2s ease;transition:color 0.2s ease}.nav-link:visited{color:var(--text-primary)}.nav-link:hover{color:var(--accent-color)}.theme-toggle{background:none;border:none;padding:0.5rem;color:var(--text-primary);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:var(--border-radius);-webkit-transition:color 0.2s ease, background-color 0.2s ease;transition:color 0.2s ease, background-color 0.2s ease}.theme-toggle:hover{color:var(--accent-color);background-color:var(--bg-secondary)}.theme-toggle svg{width:1.25rem;height:1.25rem;-webkit-transition:-webkit-transform 0.3s ease;transition:-webkit-transform 0.3s ease;transition:transform 0.3s ease;transition:transform 0.3s ease, -webkit-transform 0.3s ease}li:has(>h1>a),li:has(>h2>a),li:has(>h3>a),li:has(>h4>a),li:has(>h5>a),li:has(>h6>a){list-style:none;margin:0;padding:0}li>h1>a,li>h2>a,li>h3>a,li>h4>a,li>h5>a,li>h6>a{color:var(--text-primary);text-decoration:none}li>h1>a:visited,li>h2>a:visited,li>h3>a:visited,li>h4>a:visited,li>h5>a:visited,li>h6>a:visited{color:var(--text-primary)}li>h1>a:hover,li>h2>a:hover,li>h3>a:hover,li>h4>a:hover,li>h5>a:hover,li>h6>a:hover{color:var(--accent-color)}a,h1>a,h2>a,h3>a,h4>a,h5>a,h6>a{color:var(--text-primary);text-decoration:none}a:visited,h1>a:visited,h2>a:visited,h3>a:visited,h4>a:visited,h5>a:visited,h6>a:visited{color:var(--text-primary)}a:hover,h1>a:hover,h2>a:hover,h3>a:hover,h4>a:hover,h5>a:hover,h6>a:hover{color:var(--accent-color)}.post-list{list-style:none;padding:0;margin:2rem 0 0}.post-item{margin-bottom:1.2rem;padding-bottom:0.8rem;border-bottom:1px solid var(--border-color)}.post-item:last-child{border-bottom:none}.post-title{margin:0 0 0.5rem}.post-title a{color:var(--text-primary);text-decoration:none}.post-title a:hover{color:var(--accent-color)}.post-meta{color:var(--text-secondary);font-size:0.9rem;margin-bottom:1rem}.post-excerpt{margin-bottom:1rem}.post{max-width:80ch;margin:0 auto}.post img{max-width:100%;height:auto;border-radius:var(--border-radius);border:1px solid var(--border-color)}.archive-list{list-style:none;padding:0;margin:0;margin-bottom:2rem}.archive-item{display:-webkit-box;display:-ms-flexbox;display:flex;gap:2rem;margin-bottom:0.3rem;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.archive-date{color:var(--text-secondary);min-width:6rem;text-align:right}.archive-link{color:var(--text-primary);text-decoration:underline;text-underline-offset:3px}.archive-link:visited{color:var(--text-primary)}.archive-link:hover{color:var(--accent-color)}.book-promo{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:distribute;justify-content:space-around}.promo-title{margin:0.5rem 0}.book-list{list-style:none;padding:0;margin:0}.book-entry{margin-bottom:2rem}.book-title{margin-bottom:1.5rem}.book-content{display:-webkit-box;display:-ms-flexbox;display:flex;gap:2rem;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.book-image{-ms-flex-negative:0;flex-shrink:0}.book-image img{display:block;border-radius:var(--border-radius)}.book-details{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.book-details p{margin-bottom:1rem}.book-details p:last-child{margin-bottom:0}.book-edition{font-size:0.9rem;color:var(--text-secondary)}@media (max-width: 600px){.book-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:1rem}.book-image img{margin:0 auto}}.app-list{list-style:none;padding:0;margin:0}.app-entry{margin-bottom:2rem}.app-title{margin-bottom:1.5rem}.app-content{display:-webkit-box;display:-ms-flexbox;display:flex;gap:2rem;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.app-image{-ms-flex-negative:0;flex-shrink:0}.app-image img{display:block;border-radius:var(--border-radius)}.app-details{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:1rem;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;min-height:200px}.app-meta{font-size:0.9rem;color:var(--text-secondary);margin:0}@media (max-width: 600px){.app-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:1rem;text-align:center}.app-image img{margin:0 auto}.app-details{-webkit-box-align:center;-ms-flex-align:center;align-items:center}}.tag-section{position:relative;padding-top:0.5rem;margin-bottom:1rem}.tag-section h3{margin-top:0.5rem;margin-bottom:0.75rem}.tag-section .tag-button{margin-top:0.5rem;display:inline-block}.tag-anchor{position:absolute;top:-5rem}.tag-list{list-style:none;padding:0;margin:1rem 0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:0.5rem}.tag-item{margin:0;padding:0}.tag-button{display:inline-block;padding:0.2rem 0.8rem;background-color:var(--bg-secondary);border-radius:999px;color:var(--text-primary);text-decoration:none;font-size:0.9rem;-webkit-transition:all 0.2s ease;transition:all 0.2s ease;border:1px solid var(--border-color)}.tag-button:hover{color:var(--accent-color);background-color:var(--bg-primary);border-color:var(--accent-color);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.tag-button:visited{color:var(--text-primary)}.tag-description{font-size:0.8rem;margin-top:2rem;margin-bottom:1rem}footer{margin-top:2rem;padding:2rem 0 1rem;border-top:1px solid var(--border-color);color:var(--text-secondary)}footer .footer-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:1rem;margin-bottom:0.6rem}footer .footer-links{display:-webkit-box;display:-ms-flexbox;display:flex;gap:1.5rem;margin:0;padding:0;list-style:none}footer .footer-links a{color:var(--text-secondary);text-decoration:none}footer .footer-links a:visited{color:var(--text-secondary)}footer .footer-links a:hover{color:var(--accent-color)}footer .copyright{text-align:center;font-size:0.8rem;margin-top:0rem}footer .copyright p{margin:0}@media (max-width: 600px){footer .footer-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center}footer .footer-links{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}}.container{max-width:var(--max-width);margin:0 auto;padding:0 1rem;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}pre,code{background-color:var(--code-bg);border-radius:var(--border-radius);padding:0.2em 0.4em;font-family:'SF Mono', Consolas, Monaco, 'Andale Mono', monospace}pre{padding:1rem;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}pre code{padding:0}.mac_app_button,.ios_app_button{display:inline-block;overflow:hidden;width:165px;height:40px;background-size:contain}a{color:var(--link-color);text-decoration:underline;text-underline-offset:0.2em}a:visited{color:var(--link-color)}a:hover{color:var(--accent-color)}.nav-link,.site-title,.tag-button,.theme-toggle{text-decoration:none}.site-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);text-decoration:none;-webkit-transition:color 0.2s ease;transition:color 0.2s ease}.site-title:visited{color:var(--text-primary)}.site-title:hover{color:var(--accent-color)}.copy-button{position:absolute;top:0.5rem;right:0.5rem;padding:0.35rem 0.7rem;font-size:0.8rem;color:var(--text-primary);background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;opacity:0;-webkit-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out}.copy-button:hover{background-color:var(--accent-color);color:var(--bg-primary)}pre:hover .copy-button{opacity:1}.menu-toggle{display:none;background:none;border:none;padding:0.5rem;cursor:pointer;position:relative;width:30px;height:30px}.menu-toggle .hamburger{display:block;width:24px;height:2px;background:var(--text-primary);position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);-webkit-transition:background 0.2s ease-out;transition:background 0.2s ease-out}.menu-toggle .hamburger::before,.menu-toggle .hamburger::after{content:'';position:absolute;width:24px;height:2px;background:var(--text-primary);left:0;-webkit-transition:-webkit-transform 0.2s ease-out;transition:-webkit-transform 0.2s ease-out;transition:transform 0.2s ease-out;transition:transform 0.2s ease-out, -webkit-transform 0.2s ease-out}.menu-toggle .hamburger::before{top:-8px}.menu-toggle .hamburger::after{top:8px}.menu-toggle[aria-expanded="true"] .hamburger{background:transparent}.menu-toggle[aria-expanded="true"] .hamburger::before{-webkit-transform:rotate(45deg);transform:rotate(45deg);top:0}.menu-toggle[aria-expanded="true"] .hamburger::after{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);top:0}@media (max-width: 768px){nav.container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;padding:0}.nav-brand{padding:1rem;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.nav-brand .site-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);text-decoration:none}.nav-brand .site-title:hover{color:var(--accent-color)}header{margin-bottom:0;padding:0}.menu-toggle{display:block}.menu-toggle[aria-expanded="true"] .hamburger{background:transparent}.menu-toggle[aria-expanded="true"] .hamburger::before{-webkit-transform:rotate(45deg);transform:rotate(45deg);top:0}.menu-toggle[aria-expanded="true"] .hamburger::after{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);top:0}.nav-links{display:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:0;background:var(--bg-primary);border-top:1px solid var(--border-color)}.nav-links.show{display:-webkit-box;display:-ms-flexbox;display:flex}.nav-links li{width:100%;border-bottom:1px solid var(--border-color)}.nav-links li a{display:block;padding:1rem;text-align:center}.nav-links .theme-toggle{margin:1rem auto}}main{width:100%;overflow-x:hidden}
/*# sourceMappingURL=style.css.map */