:root{--page-bg: #ffffff;--surface: #FFFFFF;--paper: #F3F2ED;--border: #DDD6C9;--border-soft: #E8E2D8;--text: #1F2A36;--text-soft: #4E5A67;--text-muted: #6E7783;--navy-900: #0D2E5E;--navy-800: #173C72;--navy-700: #2D5FA7;--navy-100: #EAF1FA;--orange-600: #3AA199;--orange-500: #58AFA8;--orange-100: #E1F1F0;--orange-050: #F1F8F8;--blue-700: #3B6DB3;--blue-500: #5E8ED6;--blue-100: #EAF2FC;--green-700: #4B8658;--green-500: #6EA17A;--green-100: #EAF5EC;--lavender-100: #F0ECFA;--lavender-600: #7A69B8;--tag-project-bg: #F4E7D2;--tag-project-text: #8A6732;--tag-random-bg: #E6F0DF;--tag-random-text: #507640;--tag-build-bg: #E5EDF9;--tag-build-text: #466B9D;--status-scale-bg: #FFF3EA;--status-scale-icon: #E86C2F;--status-pivot-bg: #EEF4FD;--status-pivot-icon: #3B6DB3;--status-keep-bg: #EEF8F0;--status-keep-icon: #4B8658;--card-gap: 16px;--radius-lg: 2px;--radius-sm: 2px;--radius-tag: 4px;--font-logo: "Special Elite", "Courier Prime", monospace;--font-heading: "Kalam", cursive;--font-ui: "Patrick Hand", cursive;--font-note: "Caveat", cursive}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-ui);font-weight:400;font-size:16px;line-height:1.65;color:var(--text);background:var(--page-bg)}h1,h2,h3{font-family:var(--font-heading);font-weight:700;margin:0}a{color:inherit}button{font-family:var(--font-heading);cursor:pointer}img{max-width:100%;display:block}.card-image{width:100%;object-fit:cover;border:2px solid var(--border);border-radius:var(--radius-sm)}.sketch-frame{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-lg)}.sketch-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-lg);box-shadow:2px 3px #0d294014;transition:transform .18s ease}.sketch-card:hover{transform:translateY(-2px)}.sticky-note{display:inline-block;background:var(--orange-100);color:var(--text);font-family:var(--font-note);font-weight:700;font-size:.85rem;line-height:1.3;padding:6px 10px;border-radius:var(--radius-tag)}.tag{display:inline-block;font-family:var(--font-heading);font-weight:400;font-size:.78rem;border:2px solid var(--border);border-radius:var(--radius-tag);padding:3px 10px;background:var(--surface);color:var(--text-soft)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}:focus-visible{outline:3px solid var(--blue-500);outline-offset:2px}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}.sidebar{position:relative;background:radial-gradient(rgba(0,0,0,.02) .5px,transparent .5px),var(--paper);background-size:8px 8px,auto;padding:40px 28px 28px}.sidebar:after{content:"";position:absolute;top:0;right:-20px;width:32px;height:100%;background:var(--paper);mask-image:url(/torn-edge-vertical.svg);mask-repeat:repeat-y;mask-size:100% auto;-webkit-mask-image:url(/torn-edge-vertical.svg);-webkit-mask-repeat:repeat-y;-webkit-mask-size:100% auto;box-shadow:2px 3px #0d294014}.sidebar-wordmark{display:block;font-family:var(--font-logo);font-size:clamp(3rem,5vw,4.5rem);line-height:.95;color:var(--navy-900);text-decoration:none;margin-bottom:12px}.sidebar-subtitle{font-family:var(--font-heading);font-size:15px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;color:var(--orange-600);margin:0 0 12px;line-height:1.4}.sidebar-subtitle:after{content:"";display:block;width:48px;height:3px;background:var(--orange-600);margin-top:12px}.sidebar-intro{font-family:var(--font-ui);font-size:17px;line-height:1.65;color:var(--text);margin:20px 0 16px}.sidebar-punchline{font-style:italic}.polaroid{width:260px;max-width:100%;background:var(--surface);padding:12px;margin:28px 0 16px;transform:rotate(-.12deg);box-shadow:2px 3px #0d294014;position:relative}.polaroid-pin{position:absolute;top:-8px;left:50%;transform:translate(-50%);width:14px;height:14px;border-radius:50%;background:var(--orange-500)}.polaroid-frame{display:block;aspect-ratio:4 / 3;overflow:hidden;background:var(--paper)}.polaroid-frame img{width:100%;height:100%;object-fit:cover}.polaroid-caption{display:block;font-family:var(--font-note);font-size:1rem;color:var(--text-soft);text-align:center;padding-top:10px;line-height:1.3}.sidebar-social{display:flex;justify-content:center;gap:20px;margin-top:24px}.sidebar-social a{color:var(--navy-900);display:inline-flex}.sidebar-social a:hover{color:var(--orange-600)}@media (max-width: 1279px){.sidebar-wordmark{font-size:clamp(2.6rem,4.4vw,3.6rem)}}@media (max-width: 959px){.sidebar{width:100%;padding:28px 20px 24px}.sidebar:after{display:none}.polaroid{width:min(88vw,340px);margin-left:auto;margin-right:auto}}.page{max-width:1600px;margin:0 auto;padding:0 32px 48px}.site-header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:20px 32px;max-width:1600px;margin:0 auto}.site-logo{font-family:var(--font-logo);font-size:1.3rem;letter-spacing:.02em;color:var(--navy-900);text-decoration:none;padding:4px 2px}.site-nav{display:flex;align-items:center}.site-nav nav{display:flex;align-items:center;gap:clamp(16px,2.5vw,32px)}.nav-link{font-family:var(--font-heading);font-weight:500;font-size:1.1rem;text-decoration:none;color:var(--navy-900);padding:4px 2px;border-bottom:2px solid transparent}.nav-link:hover,.nav-link[aria-current=page]{color:var(--orange-600);border-bottom-color:var(--orange-600)}.nav-cta{color:var(--surface)!important;background:var(--orange-600);border:2px solid var(--orange-600);border-radius:var(--radius-sm);padding:4px 14px!important;border-bottom:2px solid var(--orange-600)!important;white-space:nowrap}.nav-cta:hover{background:var(--orange-500);border-color:var(--orange-500);border-bottom-color:var(--orange-500)!important;color:var(--surface)!important}.menu-toggle{display:none;background:none;border:2px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-heading);font-size:.95rem;padding:8px 14px;min-height:44px}.home-shell{max-width:1600px;margin:0 auto;display:grid;grid-template-columns:360px 1fr;min-height:100vh}.home-main{padding:8px 32px;min-width:0}.home-nav-row{display:flex;justify-content:flex-end;margin-bottom:20px}.section-title{display:flex;align-items:center;gap:10px;font-family:var(--font-heading);font-size:clamp(1rem,1.2vw,1.125rem);font-weight:700;line-height:1.3;color:var(--text);margin-bottom:8px}.section-title:before{content:"";width:4px;height:20px;border-radius:999px;background:var(--navy-900);flex-shrink:0}.themes-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.theme-card{min-height:40px;padding:12px 14px;border-radius:var(--radius-sm);text-decoration:none;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:8px}.theme-card .theme-visual{display:flex;align-items:center;gap:8px;color:var(--theme-icon-color, var(--navy-900))}.theme-card .theme-title{font-family:var(--font-heading);font-weight:600;font-size:clamp(.75rem,.9vw,.875rem);line-height:1.25;color:var(--text)}.bottom-row{display:grid;grid-template-columns:380px 1fr;gap:var(--card-gap);margin-top:8px}.triptych{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.failure-list{display:flex;flex-direction:column;gap:8px}.failure-card{border:2px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.failure-panel{position:relative;overflow:hidden;background:var(--surface)}.failure-panel img{display:block;width:100%;height:80px;object-fit:cover}.failure-panel .placeholder-note{display:flex;align-items:center;justify-content:center;height:80px;font-size:.8rem}.failure-sticky{position:absolute;bottom:8px;right:10px;font-family:var(--font-note);font-size:.9rem;color:var(--text);background:var(--paper);padding:3px 10px;transform:rotate(1.2deg);box-shadow:2px 3px #0d294014}.failure-row{display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 14px}.failure-icon{flex-shrink:0;width:40px;height:40px;border-radius:var(--radius-tag);display:flex;align-items:center;justify-content:center;background:var(--failure-icon-bg, var(--navy-100));color:var(--failure-icon-color, var(--navy-900))}.failure-body{flex:1;min-width:0}.failure-label{display:inline-block;font-family:var(--font-heading);font-weight:700;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--failure-icon-color, var(--navy-900));background:var(--failure-icon-bg, var(--navy-100));padding:2px 8px;border-radius:var(--radius-tag);margin-bottom:4px}.failure-description{font-family:var(--font-ui);font-size:.85rem;line-height:1.4;color:var(--text-soft);margin:0}.failure-date{flex-shrink:0;font-family:var(--font-ui);font-size:.78rem;color:var(--text-muted);align-self:flex-start;margin-top:2px}.project-card{display:flex;flex-direction:column;padding:8px;gap:6px}.project-card .project-visual{aspect-ratio:16 / 9;background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;overflow:hidden}.project-card .project-visual img{height:100%;width:100%;object-fit:cover}.project-card h3{font-size:1.05rem;line-height:1.25}.project-card .project-desc{font-family:var(--font-ui);font-size:.85rem;line-height:1.4;margin:0;color:var(--text-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-tags{display:flex;flex-wrap:wrap;gap:6px}.proof-links{display:flex;gap:12px;margin-top:auto;padding-top:4px;font-family:var(--font-heading);font-weight:500;font-size:.85rem}.proof-links a{text-decoration:none;border-bottom:2px solid var(--blue-700);color:var(--blue-700)}.proof-links a:hover{color:var(--orange-600);border-bottom-color:var(--orange-600)}.placeholder-note{font-family:var(--font-note);color:var(--text-muted);font-size:.95rem;padding:6px;text-align:center}@media (max-width: 1279px){.home-shell{grid-template-columns:300px 1fr}.themes-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.triptych{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 959px){.home-shell{display:block}.home-main{padding:24px 20px 48px}.bottom-row{grid-template-columns:1fr}}@media (max-width: 760px){.page{padding:0 16px 48px}.site-header{padding:16px;flex-wrap:wrap}.site-nav nav{display:none;width:100%;flex-direction:column;align-items:flex-start;padding-top:10px}.site-nav nav.open{display:flex}.menu-toggle{display:inline-block}.themes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.triptych{grid-template-columns:1fr}}.learning-section{margin-top:8px}.learning-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.entry-card{min-width:0;display:flex;flex-direction:column;padding:10px}.slide-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;font-family:var(--font-ui);font-size:.78rem;line-height:1.3;color:var(--text-muted)}.entry-badge{font-family:var(--font-logo);font-size:.72rem;letter-spacing:.05em;color:var(--surface);background:var(--orange-600);padding:3px 9px;border-radius:var(--radius-tag)}.kind-pill{font-family:var(--font-heading);font-weight:700;font-size:.72rem;padding:2px 9px;border-radius:var(--radius-tag);margin-left:auto}.kind-pill--project{background:var(--tag-project-bg);color:var(--tag-project-text)}.kind-pill--random{background:var(--tag-random-bg);color:var(--tag-random-text)}.kind-pill--build{background:var(--tag-build-bg);color:var(--tag-build-text)}.entry-card h3{font-family:var(--font-heading);font-weight:700;font-size:clamp(.75rem,.9vw,.875rem);line-height:1.25;margin-bottom:8px}.slide-visual{aspect-ratio:16 / 9;max-height:155px;background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:8px}.slide-visual img{width:100%;height:100%;object-fit:cover}.slide-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto}.slide-date{font-family:var(--font-ui);font-size:.78rem;line-height:1.3;color:var(--text-muted)}.read-more{font-family:var(--font-heading);font-weight:600;line-height:1.3;align-self:flex-start;text-decoration:none;color:var(--orange-600)}.read-more:hover{text-decoration:underline}.see-all{font-family:var(--font-heading);font-weight:600;display:block;width:fit-content;margin:0 0 10px auto;text-decoration:none;color:var(--orange-600)}.see-all:hover{text-decoration:underline}@media (max-width: 1279px){.learning-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 959px){.learning-grid{grid-template-columns:1fr}}.page-title{font-family:var(--font-heading);font-size:clamp(2.2rem,5vw,3.4rem);font-weight:600;color:var(--text);margin-bottom:20px}.coming-soon-frame{max-width:640px;margin:40px auto;padding:40px 26px 32px}.coming-soon,.not-found{text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}.coming-soon .section-title,.not-found .section-title{justify-content:center}.not-found{max-width:640px;margin:40px auto;padding:40px 26px 32px}.coming-soon .sticky-note,.not-found .sticky-note{align-self:center}.coming-soon p,.not-found p{margin:0;font-family:var(--font-ui)}.coming-soon a,.not-found a{color:var(--blue-700);text-decoration:none;border-bottom:2px solid var(--blue-700)}.coming-soon a:hover,.not-found a:hover{color:var(--orange-600);border-bottom-color:var(--orange-600)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,340px));gap:var(--card-gap)}.log-intro{font-family:var(--font-ui);font-size:1rem;max-width:60ch;margin:0 0 22px;color:var(--text-soft)}.theme-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}.theme-filter-chip{text-decoration:none;transition:transform .16s ease}.theme-filter-chip:hover{transform:translateY(-1px)}.tag--active{background:var(--orange-600);color:var(--surface);border-color:var(--orange-600)}.log-empty{margin-top:6px}.log-list{list-style:none;margin:0;padding:0;max-width:720px;display:flex;flex-direction:column;gap:18px}.log-card{padding:14px 16px 16px}.log-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;font-family:var(--font-ui);font-size:.78rem;color:var(--text-muted)}.log-card-body{display:flex;gap:14px;align-items:flex-start}.log-card-visual{flex:0 0 120px;aspect-ratio:4 / 3;background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;overflow:hidden}.log-card-visual img{width:100%;height:100%;object-fit:cover}.log-card-text{flex:1;min-width:0}.log-card-text h2{font-size:clamp(1.05rem,2vw,1.35rem);margin-bottom:6px}.log-card-text h2 a{text-decoration:none;color:var(--text);border-bottom:2px solid transparent}.log-card-text h2 a:hover{color:var(--orange-600);border-bottom-color:var(--orange-600)}.log-card-excerpt{font-family:var(--font-ui);font-size:.9rem;margin:0 0 10px;color:var(--text-soft)}.log-card-tags{display:flex;flex-wrap:wrap;gap:6px}@media (max-width: 600px){.log-card-body{flex-direction:column}.log-card-visual{flex:0 0 auto;width:100%;max-width:220px}}.entry-header{margin-bottom:18px}.entry-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;font-family:var(--font-ui);font-size:.85rem;color:var(--text-muted)}.entry-theme-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.entry-visual{margin:20px 0 28px}.entry-visual .card-image{aspect-ratio:16 / 9;object-fit:cover}.entry-visual .placeholder-note,.project-detail-visual .placeholder-note{display:flex;align-items:center;justify-content:center;aspect-ratio:16 / 9;border:2px solid var(--border);border-radius:var(--radius-sm)}.entry-nav{display:flex;justify-content:space-between;gap:20px;margin-top:36px;padding-top:20px;border-top:1px solid var(--border);flex-wrap:wrap}.entry-nav-next{margin-left:auto;text-align:right}.entry-body{margin-top:4px}.entry-body p,.entry-body ul,.entry-body ol{font-family:var(--font-ui);font-size:1.05rem;line-height:1.65;margin:0 0 16px}.entry-body ul,.entry-body ol{padding-left:26px}.entry-body li{margin-bottom:6px}.entry-body h2,.entry-body h3{font-family:var(--font-heading);font-weight:600;margin:28px 0 12px}.entry-body h2{font-size:1.5rem}.entry-body h3{font-size:1.2rem}.entry-body a{color:var(--blue-700);text-decoration:none;border-bottom:2px solid var(--blue-700)}.entry-body a:hover{color:var(--orange-600);border-bottom-color:var(--orange-600)}.entry-body code{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.9em;background:var(--paper);border:1px solid var(--border);border-radius:4px;padding:1px 5px}.entry-body pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;overflow-x:auto;margin:0 0 16px}.entry-body pre code{border:none;padding:0;background:none}.entry-body blockquote{border-left:3px solid var(--blue-700);margin:0 0 16px;padding:4px 16px;color:var(--text-soft)}.entry-body img{border:2px solid var(--border);border-radius:var(--radius-sm);max-width:100%;margin:8px 0}.back-link{display:inline-block;font-family:var(--font-heading);font-weight:500;text-decoration:none;color:var(--blue-700);border-bottom:2px solid var(--blue-700);margin-bottom:4px}.back-link:hover{color:var(--orange-600);border-bottom-color:var(--orange-600)}.project-detail-visual{margin:16px 0 20px}.project-detail-visual .card-image{aspect-ratio:16 / 9;object-fit:cover}article>.project-tags{margin:14px 0}.project-detail-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}.experiments-section{margin-top:40px}.experiments-grid{display:flex;flex-direction:column;gap:10px}.experiment-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;text-decoration:none;color:inherit}.experiment-card-text h3{font-size:1rem;margin-bottom:4px}.experiment-card-text .project-desc{margin-bottom:8px}.experiment-card-chevron{flex-shrink:0;color:var(--text-muted)}.experiment-card:hover .experiment-card-chevron{color:var(--orange-600)}
