/*
Theme Name: Gabriel Kennedy
Theme URI: https://example.com/gabriel-kennedy
Author: OpenAI
Description: A calm, editorial WordPress theme for an academic teacher educator, researcher, and author.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: gabriel-kennedy
*/

:root{--paper:#f8f7f3;--white:#fffefa;--ink:#14243a;--muted:#61707c;--teal:#347a73;--teal-dark:#245e59;--line:#e5e3dc;--sand:#eeece5;--serif:Georgia,"Times New Roman",serif;--sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--width:1160px;--radius:4px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 var(--sans);-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:var(--teal-dark);text-underline-offset:4px}a:hover{color:var(--ink)}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #74aaa3}.wrap{width:min(calc(100% - 56px),var(--width));margin-inline:auto}.skip-link{position:absolute;left:-999px;top:8px;background:white;padding:12px;z-index:99}.skip-link:focus{left:8px}.site-header{border-bottom:1px solid var(--line);background:rgba(248,247,243,.94)}.header-inner{min-height:91px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink)}.monogram{width:47px;height:47px;border:1px solid #9aa69f;border-radius:50%;display:grid;place-items:center;font:16px var(--serif);letter-spacing:.04em}.brand-copy{display:grid;line-height:1.35}.brand-name{font:22px var(--serif);letter-spacing:-.02em}.brand-subtitle{color:var(--muted);font-size:12px;letter-spacing:.055em}.main-nav ul{display:flex;align-items:center;gap:28px;list-style:none;padding:0;margin:0}.main-nav a{font-size:13px;text-decoration:none;color:var(--ink)}.main-nav a:hover,.main-nav .current-menu-item>a{color:var(--teal-dark)}.menu-toggle{display:none;border:1px solid var(--line);background:transparent;color:var(--ink);padding:8px 12px;border-radius:var(--radius)}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:.16em;font-weight:650;color:var(--teal-dark)}h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.16;letter-spacing:-.025em;color:var(--ink)}h1{font-size:clamp(40px,5.5vw,68px);margin:14px 0 22px}h2{font-size:clamp(30px,3.6vw,42px);margin:0 0 14px}h3{font-size:24px;margin:0 0 8px}p{margin:0 0 16px}.lead{font-size:18px;color:#4f5d68;line-height:1.8;max-width:600px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:11px 17px;border:1px solid var(--ink);border-radius:var(--radius);background:var(--ink);color:white;text-decoration:none;font-size:13px;font-weight:600;transition:.18s}.button:hover{background:var(--teal-dark);border-color:var(--teal-dark);color:white}.button-secondary{background:transparent;color:var(--ink)}.button-secondary:hover{color:white}.button-link{background:transparent;border:0;color:var(--teal-dark);padding:0;min-height:auto}.button-link:hover{background:transparent;color:var(--ink)}.button-row{display:flex;flex-wrap:wrap;gap:11px;margin-top:24px}.hero{padding:74px 0 66px}.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:70px}.hero-copy{padding:4px 0}.hero-copy .lead{margin-top:0}.portrait-frame{position:relative;max-width:430px;margin-left:auto;background:#e8e6df;aspect-ratio: .92;overflow:hidden}.portrait-frame:after{content:"";position:absolute;inset:15px;border:1px solid rgba(255,255,255,.56);pointer-events:none}.portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:center 35%}.hero-meta{border-top:1px solid var(--line);padding-top:20px;margin-top:32px;color:var(--muted);font-size:13px}.hero-meta strong{color:var(--ink);font-weight:600}.section{padding:75px 0}.section-white{background:var(--white)}.section-top{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:30px}.section-intro{color:var(--muted);max-width:560px}.profile-links{border-block:1px solid var(--line);padding:20px 0;display:flex;gap:26px;flex-wrap:wrap;align-items:center}.profile-links span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-right:3px}.profile-links a{font-size:13px;text-decoration:none}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}.theme-card{padding:27px 24px 25px;background:var(--white);border:1px solid var(--line);min-height:190px}.theme-card .number{font:14px var(--serif);color:var(--teal);margin-bottom:29px;display:block}.theme-card p{color:var(--muted);font-size:14px;margin:0}.feature-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:54px;align-items:center}.book-photo{width:100%;height:350px;object-fit:cover;background:var(--sand)}.book-card{display:grid;grid-template-columns:.8fr 1.2fr;gap:32px;align-items:center}.book-note{color:var(--muted);font-size:13px}.publication-list{border-top:1px solid var(--line)}.publication-item{padding:22px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:100px 1fr auto;gap:18px;align-items:start}.publication-year{font-size:12px;color:var(--muted);padding-top:5px}.publication-title{font:22px/1.35 var(--serif);margin:0 0 6px}.publication-title a{text-decoration:none;color:var(--ink)}.publication-citation{font-size:13px;color:var(--muted);margin:0}.tag{display:inline-block;padding:4px 8px;background:#e9f0ed;border-radius:2px;color:#315d58;font-size:10px;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.blog-card{background:var(--paper);border:1px solid var(--line)}.blog-card img{width:100%;height:185px;object-fit:cover}.blog-card-body{padding:20px}.blog-card time{font-size:11px;color:var(--muted)}.blog-card h3{font-size:21px;margin:8px 0}.blog-card p{font-size:13px;color:var(--muted)}.page-hero{padding:64px 0 36px}.page-hero h1{font-size:clamp(38px,4.5vw,56px)}.page-hero .lead{max-width:720px}.content-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:54px;padding:24px 0 80px}.prose{max-width:760px}.prose h2{font-size:31px;margin:38px 0 15px}.prose h3{margin:28px 0 11px}.prose p,.prose li{color:#3d4a55}.prose ul,.prose ol{padding-left:23px}.prose blockquote{margin:25px 0;padding:8px 22px;border-left:2px solid var(--teal);font:22px/1.5 var(--serif)}.sidebar{border-left:1px solid var(--line);padding-left:25px;color:var(--muted);font-size:13px}.sidebar h3{font-size:19px;color:var(--ink)}.sidebar ul{list-style:none;padding:0}.sidebar li{margin:0 0 10px}.filter-panel{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:12px;background:var(--white);padding:18px;border:1px solid var(--line);margin-bottom:22px}.filter-panel label{font-size:11px;color:var(--muted);display:grid;gap:5px}.filter-panel input,.filter-panel select{width:100%;height:42px;background:white;border:1px solid #d8d8d1;padding:8px 10px;color:var(--ink);border-radius:2px}.filter-panel button{align-self:end;height:42px}.filter-status{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;margin:0 0 12px}.publication-card{transition:opacity .15s}.publication-card[hidden]{display:none}.copy-citation{font-size:12px;border:1px solid var(--line);background:transparent;color:var(--teal-dark);padding:7px 10px;cursor:pointer}.book-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.book-entry{display:grid;grid-template-columns:160px 1fr;gap:20px;padding:20px;background:var(--white);border:1px solid var(--line)}.book-entry img{height:210px;width:160px;object-fit:cover;background:var(--sand)}.book-entry p{font-size:13px;color:var(--muted)}.site-footer{background:#17263a;color:#edf0ef;padding:43px 0 24px}.footer-top{display:flex;justify-content:space-between;gap:35px;align-items:start}.site-footer .brand{color:white}.site-footer .monogram{border-color:#8a999a}.site-footer .brand-subtitle{color:#bdc6c5}.footer-links{display:flex;gap:20px;flex-wrap:wrap}.footer-links a{color:#d1dbd8;text-decoration:none;font-size:12px}.footer-bottom{margin-top:34px;border-top:1px solid #3e4b58;padding-top:16px;display:flex;justify-content:space-between;gap:15px;color:#b4bfbe;font-size:11px}.empty-state{padding:25px;background:#f2f0ea;color:var(--muted);font-size:14px}.pagination{margin-top:25px}.post-meta{font-size:12px;color:var(--muted);margin:0 0 26px}.featured-image{max-height:480px;width:100%;object-fit:cover;margin:28px 0}.notice{padding:13px 16px;background:#edf2ef;border-left:2px solid var(--teal);font-size:13px;color:#465851}.privacy-content{max-width:780px}
@media(max-width:900px){.hero-grid{gap:40px}.main-nav ul{gap:15px}.main-nav a{font-size:12px}.feature-grid{gap:30px}.publication-item{grid-template-columns:75px 1fr auto}.filter-panel{grid-template-columns:1fr 1fr}.filter-panel button{align-self:end}.content-layout{gap:28px}.book-grid{grid-template-columns:1fr}}
@media(max-width:680px){.wrap{width:min(calc(100% - 36px),var(--width))}.header-inner{min-height:76px;flex-wrap:wrap;gap:8px}.brand-name{font-size:19px}.monogram{width:41px;height:41px}.menu-toggle{display:block}.main-nav{display:none;flex-basis:100%;padding:5px 0 16px}.main-nav.is-open{display:block}.main-nav ul{display:grid;grid-template-columns:repeat(2,1fr);gap:0 18px}.main-nav a{display:block;padding:9px 2px;font-size:14px}.hero{padding:44px 0 48px}.hero-grid{grid-template-columns:1fr;gap:32px}.hero h1{font-size:43px}.portrait-frame{margin:0;max-width:100%;height:min(104vw,480px);aspect-ratio:auto}.section{padding:52px 0}.section-top{display:block}.section-top .button-link{margin-top:12px}.theme-grid,.blog-grid{grid-template-columns:1fr}.theme-card{min-height:0}.theme-card .number{margin-bottom:15px}.feature-grid,.book-card{grid-template-columns:1fr}.book-photo{height:260px}.publication-item{grid-template-columns:58px 1fr;gap:10px}.publication-item .tag,.publication-item .copy-citation{grid-column:2;justify-self:start}.publication-title{font-size:19px}.page-hero{padding:44px 0 25px}.content-layout{grid-template-columns:1fr;padding:14px 0 54px}.sidebar{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}.filter-panel{grid-template-columns:1fr}.filter-panel button{width:100%}.book-entry{grid-template-columns:110px 1fr;gap:14px;padding:13px}.book-entry img{width:110px;height:160px}.footer-top,.footer-bottom{display:block}.footer-links{margin-top:22px}.footer-bottom span{display:block;margin-top:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
.research{padding-top:47px}.photo-ribbon{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px}.photo-ribbon img{width:100%;height:230px;object-fit:cover;background:var(--sand)}
@media(max-width:680px){.photo-ribbon{grid-template-columns:1fr}.photo-ribbon img{height:205px}.publication-item{grid-template-columns:58px 1fr}.publication-item .tag,.publication-item .copy-citation{grid-column:2;justify-self:start}}
.feature-grid>a.button{grid-column:2;grid-row:2;justify-self:start;margin-top:-45px}@media(max-width:680px){.feature-grid>a.button{grid-column:1;grid-row:auto;margin-top:0}}

/* Editorial refresh: layered WebGL hero, richer type, and tactile content cards. */
.hero-webgl{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 24% 44%,rgba(213,230,222,.58),transparent 47%),radial-gradient(ellipse at 82% 68%,rgba(224,224,209,.38),transparent 40%),linear-gradient(115deg,#f8f7f3 10%,#f1f2ec 100%)}
.hero-webgl:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.24;background-image:linear-gradient(rgba(20,36,58,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(20,36,58,.055) 1px,transparent 1px);background-size:74px 74px;mask-image:linear-gradient(90deg,black,transparent 76%)}
.hero-gl-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:.9;mix-blend-mode:multiply}
.hero-gl-wash{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(248,247,243,.48),transparent 68%),linear-gradient(0deg,rgba(248,247,243,.52),transparent 30%)}
.hero-grid{position:relative;z-index:1;grid-template-columns:1.12fr .88fr;min-height:560px}
.hero-copy{max-width:690px;padding-block:12px}
.hero-copy h1{font-size:clamp(46px,6.3vw,78px);line-height:1.025;letter-spacing:-.058em;margin:20px 0 23px;max-width:760px}
.hero-title-line,.hero-title-accent{display:block}
.hero-title-accent{color:var(--teal-dark);font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.055em}
.hero-copy .lead{max-width:570px;font-size:17px;color:#455463}
.hero-copy .eyebrow{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid rgba(52,122,115,.2);border-radius:100px;background:rgba(255,254,250,.58);backdrop-filter:blur(8px)}
.eyebrow-mark{width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(52,122,115,.12)}
.hero-meta{display:flex;align-items:center;gap:9px;color:#586773;font-size:12px;letter-spacing:.035em}
.hero-meta:before{content:"";width:23px;height:1px;background:var(--teal)}
.hero-webgl .button{box-shadow:0 7px 18px rgba(20,36,58,.08);transition:transform .22s ease,box-shadow .22s ease,background .22s ease}
.hero-webgl .button:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(20,36,58,.14)}
.hero-webgl .button-secondary{background:rgba(255,254,250,.44);backdrop-filter:blur(6px)}
.hero-scroll{display:inline-flex;align-items:center;gap:10px;margin-top:30px;color:#687782;text-decoration:none;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.hero-scroll-line{height:1px;width:35px;background:var(--teal);transition:width .25s ease}.hero-scroll:hover .hero-scroll-line{width:55px}
.portrait-frame-art{width:min(100%,430px);height:490px;max-width:430px;aspect-ratio:auto;margin-right:7%;border:1px solid rgba(255,255,255,.82);box-shadow:0 30px 70px rgba(25,42,54,.15),0 5px 16px rgba(25,42,54,.08);transform:rotate(1.2deg);background:#fdfdfb}
.portrait-frame-art img{object-position:center 35%;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.portrait-frame-art:hover img{transform:scale(1.025)}
.portrait-index{position:absolute;top:23px;left:24px;z-index:3;padding:8px 11px;background:rgba(255,254,250,.83);backdrop-filter:blur(9px);font:12px var(--serif);letter-spacing:.1em}.portrait-index i{color:var(--teal);font-style:normal;padding-inline:3px}
.portrait-caption{position:absolute;z-index:3;left:24px;right:24px;bottom:23px;padding:12px 14px;background:rgba(255,254,250,.84);backdrop-filter:blur(10px);color:#40505e;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.hero-coordinate{position:absolute;bottom:27px;right:0;display:flex;gap:18px;color:#76817d;font-size:9px;letter-spacing:.18em}.hero-coordinate span{color:var(--teal-dark)}
.profile-links{padding:23px 0;border-color:#dedfd8}.profile-links span:first-child{margin-right:12px;color:#728079}
.research{padding-top:56px}.research .section-top{margin-bottom:34px}.section-top h2{position:relative;display:inline-block}.section-top h2:after{content:"";display:block;width:43px;height:2px;margin-top:14px;background:var(--teal);transform-origin:left}
.theme-grid{gap:18px}.theme-card{position:relative;min-height:220px;padding:26px 25px 27px;background:linear-gradient(145deg,#fffefa,#f5f5ef);border:1px solid #e3e5dd;box-shadow:0 5px 18px rgba(24,38,50,.025);overflow:hidden}
.theme-card:before{content:"";position:absolute;left:0;top:0;width:2px;height:0;background:var(--teal);transition:height .3s ease}.theme-card:hover:before{height:100%}
.theme-card .number{display:flex;align-items:center;gap:10px;margin-bottom:27px;color:#8b9991;font:13px var(--serif);letter-spacing:.12em}.theme-card .number:after{content:"";width:34px;height:1px;background:#d6ddd5}
.theme-card h3{max-width:300px;font-size:23px;line-height:1.23}.theme-card p{max-width:330px;color:#68757d;font-size:13px;line-height:1.7}
.theme-arrow{position:absolute;right:22px;top:22px;color:#99a9a1;transition:transform .2s ease,color .2s ease}.theme-card:hover .theme-arrow{transform:translate(2px,-2px);color:var(--teal)}
.photo-ribbon{position:relative;grid-template-columns:1.15fr .85fr;gap:18px;margin-top:38px}.photo-ribbon img{height:245px;filter:saturate(.74);transition:filter .3s ease,transform .45s ease}.photo-ribbon img:first-child{border-radius:2px 40px 2px 2px}.photo-ribbon img:last-child{border-radius:2px 2px 2px 40px;margin-top:22px}.photo-ribbon img:hover{filter:saturate(1);transform:translateY(-3px)}
.feature-grid{align-items:center;gap:clamp(38px,7vw,94px);padding-block:14px}.book-photo{box-shadow:0 22px 55px rgba(28,43,52,.12);border-radius:3px 48px 3px 3px}.feature-grid h2{max-width:540px}.feature-grid .lead{font-size:16px}.feature-grid>a.button{margin-top:-34px}
.publication-item{grid-template-columns:100px minmax(0,1fr) auto auto;gap:18px;align-items:center;padding:25px 8px;transition:background .2s ease,transform .2s ease}.publication-item:hover{background:#f8f8f3;transform:translateX(3px)}.publication-title{font-size:21px}.publication-year{font:15px var(--serif);color:var(--teal-dark)}.publication-item .tag{background:#e6eeea;border:1px solid #dce8e1}.copy-citation{border-radius:2px;transition:background .2s,color .2s}.copy-citation:hover{background:var(--ink);color:white}
.blog-card{overflow:hidden;border:1px solid #e6e5de;box-shadow:0 5px 22px rgba(20,36,58,.035)}.blog-card img{transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .4s;filter:saturate(.78)}.blog-card:hover img{transform:scale(1.035);filter:saturate(1)}.blog-card-body{padding:22px 23px 25px}.blog-card h3{line-height:1.28}.blog-card h3 a{color:var(--ink);text-decoration:none}.blog-card h3 a:hover{color:var(--teal-dark)}
.section{position:relative}.section-white{background:linear-gradient(180deg,#fffefa 0%,#fbfaf7 100%)}
@media(max-width:900px){.hero-grid{grid-template-columns:1.05fr .95fr;min-height:490px}.portrait-frame-art{height:410px;margin-right:0}.hero-copy h1{font-size:clamp(44px,6.5vw,62px)}.publication-item{grid-template-columns:75px minmax(0,1fr) auto}.publication-item .copy-citation{grid-column:3;justify-self:end}}
@media(max-width:680px){.hero-webgl{background:radial-gradient(ellipse at 70% 38%,rgba(213,230,222,.55),transparent 52%),linear-gradient(160deg,#f8f7f3,#f1f2ec)}.hero-grid{grid-template-columns:1fr;min-height:auto;gap:34px}.hero-copy{padding-top:0}.hero-copy h1{font-size:clamp(42px,12vw,58px);line-height:1.04;margin-block:18px}.hero-copy .lead{font-size:15px}.hero-scroll{margin-top:21px}.portrait-frame-art{width:calc(100% - 18px);height:auto;aspect-ratio:.92;margin:0 auto 14px;transform:rotate(.5deg)}.hero-coordinate{display:none}.hero-gl-canvas{opacity:.56}.hero-gl-wash{background:linear-gradient(180deg,rgba(248,247,243,.35),transparent 30%,rgba(248,247,243,.35))}.research{padding-top:38px}.theme-card{min-height:194px}.theme-card .number{margin-bottom:20px}.photo-ribbon{grid-template-columns:1fr 1fr;gap:9px;margin-top:25px}.photo-ribbon img{height:160px}.photo-ribbon img:last-child{margin-top:16px}.publication-item{grid-template-columns:48px minmax(0,1fr);gap:9px;padding:20px 5px}.publication-item .tag,.publication-item .copy-citation{grid-column:2;justify-self:start}.publication-title{font-size:19px}.feature-grid{gap:25px}.feature-grid>a.button{margin-top:0}}
@media(prefers-reduced-motion:reduce){.hero-webgl .button,.portrait-frame-art img,.photo-ribbon img,.blog-card img,.theme-card:before,.hero-scroll-line{transition:none!important}.hero-gl-canvas{display:none}}
