.journal-shell{width:min(1280px,calc(100% - 64px));margin:0 auto;padding-bottom:80px}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;white-space:nowrap}
.journal-heading{padding:80px 0 55px;max-width:880px}
.journal-heading h1{font-size:clamp(48px,6.6vw,88px);font-weight:550;letter-spacing:-.06em;line-height:1.04;margin:0 0 26px}
.journal-heading h1 em,.journal-article-heading h1 em{font-family:Georgia,serif;font-weight:400;color:var(--blue)}
.journal-heading>p:not(.personal-kicker),.journal-description{font-size:20px;line-height:1.7;color:#635b51;max-width:700px}
.journal-follow{display:flex;align-items:center;flex-wrap:wrap;gap:16px 30px;margin-top:26px;font-size:15px;color:#635b51}
.journal-follow>a:last-child:hover{color:var(--blue)}
.journal-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin-bottom:40px}
.journal-filters{display:flex;align-items:center;flex-wrap:wrap;gap:10px 22px;font-size:14px}
.journal-filters a{padding:7px 0;color:#635b51}
.journal-filters a:hover,.journal-filters a[aria-current=page]{color:var(--blue);text-decoration:underline;text-underline-offset:7px}
.journal-filters a[aria-current=page]{font-weight:650}
.journal-search{display:flex;gap:8px;align-items:stretch;max-width:100%;min-width:0}
.journal-search input[type=search]{min-width:0;flex:1;width:235px;background:#fffdf8;border:1px solid var(--line);padding:12px 14px;border-radius:7px;font:inherit;font-size:14px;color:var(--ink)}
.journal-search button{border:1px solid var(--blue);background:var(--blue);color:white;border-radius:7px;padding:10px 15px;font:inherit;font-size:14px;cursor:pointer}
.journal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 28px}
.journal-card{min-width:0;display:flex;flex-direction:column;border-bottom:1px solid var(--line);padding-bottom:27px}
.journal-card-image{display:block;width:100%;aspect-ratio:8/5;padding:0;border:0;background:transparent;align-self:start;overflow:hidden}
.journal-card-image img{display:block;width:100%;height:100%;max-height:none;padding:0;border:0;border-radius:0;object-fit:contain}
.journal-thumb{display:block;width:100%;height:100%;position:relative}
.journal-thumb-icon{background:#001126}
.journal-thumb-phones{display:grid;grid-template-columns:minmax(0,1fr) var(--phone-width);background:var(--thumb-color)}
.journal-thumb-brand{display:flex;min-width:0;flex-direction:column;justify-content:center;align-items:center;gap:13px;padding:10px;text-align:center}
.journal-card-image .journal-thumb-brand img{width:72px;height:72px;max-width:65%;border-radius:16px}
.journal-thumb-brand>span{font-size:clamp(17px,1.8vw,26px);font-weight:650;line-height:1.15;letter-spacing:-.045em;overflow-wrap:anywhere}
.journal-thumb-screens{display:grid;height:100%;min-width:0}
.journal-card-image .journal-thumb-screens img{width:100%;height:100%;min-width:0}
.journal-thumb-photo::before{content:"";position:absolute;inset:0;background-image:var(--thumbnail-photo);background-size:cover;background-position:center;filter:blur(18px);transform:scale(1.15);opacity:.5}
.journal-thumb-photo>img{position:relative;z-index:1}
.project-image-group{display:grid;width:100%;gap:0;align-items:start}
.project-image-group img{display:block;width:100%;height:auto;max-height:none;padding:0;border:0}
.journal-card-body{display:flex;flex-direction:column;flex:1;padding-top:22px}
.journal-card-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:12px;color:#635b51;flex-wrap:wrap}
.journal-card-meta>span{color:var(--blue)}
.journal-card h2{font-size:27px;font-weight:550;line-height:1.2;letter-spacing:-.035em;margin:15px 0 0;overflow-wrap:anywhere}
.journal-card h2 a:hover{color:var(--blue)}
.journal-card p{font-size:16px;line-height:1.7;color:#635b51;margin:16px 0 23px}
.journal-card .personal-link{margin-top:auto;font-size:15px}
.journal-type-art{display:block;width:100%;height:100%;padding:32px;font-size:clamp(32px,3vw,48px);font-weight:550;line-height:1.05;letter-spacing:-.05em}
.journal-type-art>span{color:var(--blue)}
.journal-about{margin-top:85px;padding:40px 0;display:grid;grid-template-columns:150px 1fr;gap:40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:center}
.journal-about>img{width:150px;height:auto;border-radius:0}
.journal-about h2{font-size:32px;font-weight:500;letter-spacing:-.04em;line-height:1.2;margin:0 0 16px}
.journal-about p:not(.personal-kicker){max-width:700px;font-size:17px;line-height:1.7;color:#635b51;margin:0 0 18px}
.journal-about .personal-kicker{font-size:13px;margin-bottom:12px}
.journal-shell>.newsletter-box{margin:65px 0 0}
.journal-empty{padding:60px 0 90px;max-width:600px}
.journal-empty h2{font-size:36px;letter-spacing:-.04em;font-weight:500}
.journal-empty p{font-size:18px;line-height:1.7;color:#635b51}
.journal-archive-heading{padding-bottom:40px}
.journal-archive-heading .personal-link{display:inline-block;margin-top:20px}
.journal-single{max-width:1120px}
.journal-article-heading{max-width:920px;padding:65px 0 42px}
.journal-article-categories{display:flex;flex-wrap:wrap;gap:12px 20px;margin:35px 0 18px;font-size:13px;color:var(--blue)}
.journal-article-categories a:hover{text-decoration:underline;text-underline-offset:4px}
.journal-article-heading h1{font-size:clamp(45px,5.5vw,76px);font-weight:550;line-height:1.08;letter-spacing:-.055em;margin:0 0 25px;overflow-wrap:anywhere}
.journal-post-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;color:#635b51;font-size:13px;line-height:1.6}
.journal-post-meta a{text-decoration:underline;text-underline-offset:3px}
.journal-deck{max-width:780px;font-size:22px;line-height:1.6;color:#635b51;margin:25px 0 0}
.journal-article-image{margin:0 0 55px}
.journal-article-image img{display:block;width:100%;height:auto}
.journal-prose{max-width:760px;margin:0 auto;font-size:18px;line-height:1.85;overflow-wrap:anywhere}
.journal-prose p{margin:0 0 1.4em;line-height:inherit}
.journal-prose h2{font-size:33px;font-weight:550;line-height:1.2;letter-spacing:-.035em;margin:1.8em 0 .7em}
.journal-prose h3{font-size:26px;line-height:1.3;letter-spacing:-.025em;margin:1.5em 0 .6em}
.journal-prose ul,.journal-prose ol{padding-left:1.5em;margin:0 0 1.5em}
.journal-prose ul{list-style:disc}.journal-prose ol{list-style:decimal}.journal-prose li{padding-left:.3em;margin:.4em 0}
.journal-prose a{color:var(--blue);text-decoration:underline;text-underline-offset:4px}
.journal-prose figure{margin:2em 0}.journal-prose img{height:auto;max-width:100%}
.journal-prose figcaption{font-size:14px;color:#635b51;line-height:1.5;margin-top:10px}
.journal-prose blockquote{margin:2em 0;border-left:3px solid var(--blue);padding-left:24px;font-family:Georgia,serif;font-size:24px;font-style:italic}
.journal-prose pre{max-width:100%;overflow:auto;background:#e9e1d4;padding:20px;font-size:14px;white-space:pre}
.journal-prose table{width:100%;border-collapse:collapse;font-size:16px}.journal-prose td,.journal-prose th{padding:12px;border:1px solid var(--line);text-align:left}
.journal-prose .wp-block-table{overflow-x:auto}.journal-prose .wp-block-columns{display:flex;gap:25px}.journal-prose .wp-block-column{flex:1;min-width:0}
.journal-prose .wp-block-gallery{display:flex;flex-wrap:wrap;gap:12px}.journal-prose .wp-block-gallery figure{flex:1 1 220px;margin:0}
.journal-tags{display:flex;flex-wrap:wrap;gap:10px;max-width:760px;margin:40px auto 0;font-size:13px;color:#635b51}
.journal-tags a{border:1px solid var(--line);border-radius:30px;padding:6px 12px}
.journal-article-footer{max-width:760px;margin:35px auto 0;border-top:1px solid var(--line);padding-top:28px;font-size:16px;line-height:1.7;color:#635b51}
.journal-article-footer p{margin:0 0 20px}.journal-article-footer p a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.journal-related{border-top:1px solid var(--line);padding-top:50px;margin-top:70px}
.journal-related h2{font-size:clamp(32px,3.4vw,44px);font-weight:500;letter-spacing:-.04em}
.journal-related .journal-card h2{font-size:25px}
.journal-project-context{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 0 28px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.journal-project-context .personal-link{font-size:14px}
.app-overview .journal-prose{margin:0;max-width:none;font-size:17px;line-height:1.8}
.app-overview .journal-prose h2{font-size:28px}
.journal-shell .pagination{margin:55px 0 10px}
.journal-shell .nav-links{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px}
.journal-shell .page-numbers{border:1px solid var(--line);border-radius:6px;padding:10px 15px;font-size:15px}
.journal-shell .page-numbers.current{background:var(--ink);color:var(--paper)}
@media(max-width:1000px){.journal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 24px}.journal-latest .journal-card:last-child{display:none}.journal-heading{padding-top:60px}}
@media(max-width:640px){.journal-shell{width:calc(100% - 40px);padding-bottom:50px}.journal-heading{padding:44px 0 35px}.journal-heading h1{font-size:54px}.journal-heading>p:not(.personal-kicker){font-size:18px}.journal-toolbar{gap:18px;padding:18px 0;margin-bottom:30px}.journal-search{width:100%}.journal-search input[type=search]{width:auto}.journal-filters{font-size:13px;gap:7px 16px}.journal-grid{grid-template-columns:1fr;gap:32px}.journal-latest .journal-card:last-child{display:flex}.journal-card h2{font-size:28px}.journal-about{grid-template-columns:90px 1fr;gap:22px;margin-top:55px;padding:30px 0}.journal-about>img{width:90px;height:auto;align-self:start}.journal-about h2{font-size:27px}.journal-about p:not(.personal-kicker){font-size:16px}.journal-about .personal-kicker{margin-top:0}.journal-article-heading{padding:40px 0 30px}.journal-article-heading h1{font-size:46px}.journal-deck{font-size:19px}.journal-article-image{margin-bottom:35px}.journal-prose{font-size:17px;line-height:1.8}.journal-prose h2{font-size:29px}.journal-prose .wp-block-columns{display:block}.journal-related{margin-top:50px;padding-top:35px}.journal-project-context{display:block}.journal-project-context .journal-post-meta{margin-top:12px}.site-nav{column-gap:17px!important;row-gap:13px}.journal-shell>.newsletter-box{margin-top:45px}}

/* Give project previews and personal photos their full, uncropped canvas. */
.app-main-image,.app-screenshots a,.software-card-image{padding:0;background:transparent;border:0;box-shadow:none}
.app-main-image{align-self:start}
.app-main-image img,.app-screenshots img,.software-card-image img{display:block;width:100%;height:auto;max-height:none;border-radius:0}
.app-main-placeholder{display:block;min-height:0}
.app-main-placeholder figcaption{color:var(--ink);padding-top:14px}
.software-card-art{display:block;min-height:0}
.software-card-art>span{display:block;margin-top:14px}
.hello-photo{border:0;padding:0;background:transparent;box-shadow:none;transform:none;margin:0;max-width:none}
.hello-photo img{display:block;width:100%;height:auto;aspect-ratio:auto}
.personal-photo-strip{align-items:start}
.personal-photo-strip figure{padding:0;border:0;background:transparent;transform:none!important}
.personal-photo-strip img,.personal-photo-strip figure:first-child img{display:block;width:100%;height:auto}
