:root{--bg:#F7F8FB;--surface:#FFFFFF;--ink:#12162B;--muted:#5B6178;--border:#E4E6EF;--border-soft:#ECEDF5;--accent:#6C5CE7;--accent-ink:#4B3FC4;--violet:#6C5CE7;--violet-tint:#F1EEFD;--coral:#E8607A;--coral-tint:#FDEEF1;--teal:#14B8A6;--teal-tint:#E7FAF7;--amber:#D9932B;--amber-tint:#FBF1E1;--indigo:#3E5CC9;--indigo-tint:#EBEFFB;--success:#16A34A;--success-tint:#E7F8EE;--danger:#DC2626;--danger-tint:#FDECEC;--font-display:'Space Grotesk',system-ui,sans-serif;--font-body:'Inter',system-ui,sans-serif;--font-mono:'JetBrains Mono',ui-monospace,monospace;--max-width:1100px;--radius:14px;--radius-sm:9px;--shadow-card:0 14px 28px -16px rgba(18,22,43,0.16);--header-h:66px}@media (prefers-reduced-motion:reduce){*{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;scroll-behavior:auto !important}}[id]{scroll-margin-top:100px}.tooltip-term{position:relative;cursor:pointer;border-bottom:1px dotted currentColor}.tooltip-text{visibility:hidden;opacity:0;position:absolute;bottom:130%;left:50%;transform:translateX(-50%);width:250px;padding:10px 12px;background:#222;color:#fff;border-radius:6px;font-size:13px;line-height:1.5;text-align:left;z-index:9999;transition:opacity 0.2s ease;pointer-events:none}.tooltip-term:hover .tooltip-text{visibility:visible;opacity:1}.tooltip-term.active .tooltip-text,.tooltip-term:focus .tooltip-text{visibility:visible;opacity:1}.tooltip-term{display:inline;border-bottom:1px dashed currentColor;cursor:pointer}.tooltip-term::after{content:attr(data-tooltip);position:fixed;left:var(--tooltip-x,16px);bottom:calc(100vh - var(--tooltip-y,100px) + 10px);width:240px;max-width:calc(100vw - 32px);box-sizing:border-box;padding:10px 12px;background:#1e293b;color:#ffffff;font-size:13px;font-weight:400;line-height:1.6;text-align:left;border-radius:9px;box-shadow:0 5px 20px rgba(0,0,0,0.18);opacity:0;visibility:hidden;pointer-events:none;transition:opacity 0.2s ease;z-index:999999}.tooltip-term.active::after{opacity:1;visibility:visible}@media (hover:hover){.tooltip-term:hover::after{opacity:1;visibility:visible}}@media (max-width:600px){.tooltip-term::after{width:min(240px,calc(100vw - 32px));font-size:12px}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--bg);line-height:1.65;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-ink)}img{max-width:100%;display:block}h2,h3,h4{font-family:var(--font-display);line-height:1.2;margin:0 0 0.5em;color:var(--ink)}p{margin:0 0 1em}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.container{max-width:var(--max-width);margin:0 auto;padding:0 24px}.section-wrap{max-width:var(--max-width);margin:16px auto 64px;padding:0 24px}.icon{width:1em;height:1em;display:inline-block;vertical-align:-0.14em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-fill{fill:currentColor;stroke:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 24px;border-radius:999px;font-weight:600;font-size:0.95rem;font-family:var(--font-body);transition:transform 0.15s ease,box-shadow 0.15s ease,background 0.15s ease;border:none;cursor:pointer;line-height:1}.btn:hover{text-decoration:none}.btn:disabled{opacity:0.6;cursor:not-allowed;transform:none !important}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{background:var(--accent-ink);color:#fff;transform:translateY(-1px)}.btn-outline{background:transparent;color:var(--ink);border:1.5px solid var(--border)}.btn-outline:hover{border-color:var(--ink);transform:translateY(-1px);color:var(--ink)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#128a3e;color:#fff;transform:translateY(-1px)}.btn-buy{background:var(--amber);color:#fff;border:2px solid var(--amber)}.btn-buy:hover{background:#c07f1c;border-color:#c07f1c;color:#fff;transform:translateY(-1px)}.btn-code{background:var(--ink);color:#fff}.btn-code:hover{background:var(--accent-ink);color:#fff}.btn-demo{background:var(--teal);color:#fff}.btn-demo:hover{background:#0d9488;color:#fff}.btn-block{display:flex;width:100%}.site-header{border-bottom:1px solid var(--border);background:rgb(255 255 255);position:sticky;top:0;z-index:1000;height:var(--header-h);width:100%}.site-header .header-inner{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:var(--header-h);max-width:var(--max-width);margin:0 auto;gap:20px;position:relative}.header-left{flex-shrink:0;display:flex;align-items:center}.custom-logo-link{display:flex;align-items:center;line-height:0}.custom-logo-link img,.site-logo,.header-left img{height:40px;width:auto;max-height:40px;object-fit:contain}.site-title{font-family:var(--font-display);font-weight:700;font-size:1.2rem;margin:0}.site-title a{color:var(--ink);text-decoration:none}.header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.main-nav ul{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}.main-nav ul li a{color:var(--ink);font-weight:500;font-size:0.9rem;padding:8px 14px;border-radius:999px;transition:all 0.2s;text-decoration:none;display:flex}.main-nav ul li a:hover{background:var(--violet-tint);color:var(--violet)}.main-nav .current-menu-item > a,.main-nav .current_page_item > a{background:var(--ink);color:#fff}.main-nav ul li.nav-cta > a,.main-nav ul li:has(a.nav-contact) > a{background:var(--ink);color:#fff;padding:9px 20px;margin-left:6px}.main-nav ul li.nav-cta > a:hover,.main-nav ul li:has(a.nav-contact) > a:hover{background:var(--accent-ink)}.header-cart-wrapper{position:relative;display:inline-flex;align-items:center}.header-cart{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;color:var(--ink);text-decoration:none;position:relative;transition:background 0.2s}.header-cart:hover{background:var(--violet-tint);color:var(--violet)}.cart-icon{width:21px;height:21px}.cart-count{position:absolute;top:0;right:0;background:var(--amber);color:#fff;font-size:0.65rem;font-weight:700;min-width:17px;height:17px;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1;font-family:var(--font-mono)}.cart-count:empty{display:none}.mini-cart-dropdown{display:none;position:absolute;top:calc(100% + 12px);right:-10px;width:340px;max-width:90vw;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 20px 60px rgba(18,22,43,0.18);padding:16px;z-index:1001}.header-cart-wrapper:hover .mini-cart-dropdown,.header-cart-wrapper:focus-within .mini-cart-dropdown{display:block}.mini-cart-inner{max-height:340px;overflow-y:auto}.mini-cart-items{margin-bottom:12px}.mini-cart-empty{text-align:center;color:var(--muted);padding:20px 0;margin:0;font-size:0.92rem}.mini-cart-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-soft);align-items:center}.mini-cart-item:last-child{border-bottom:none}.mini-cart-item-image{width:48px;height:48px;flex-shrink:0;border-radius:8px;overflow:hidden;background:var(--border-soft)}.mini-cart-item-image img{width:100%;height:100%;object-fit:cover}.mini-cart-item-details{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.mini-cart-item-title{font-weight:600;font-size:0.88rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-cart-item-quantity{font-size:0.76rem;color:var(--muted)}.mini-cart-item-price{font-weight:700;color:var(--amber);font-size:0.88rem;font-family:var(--font-mono)}.mini-cart-remove{font-size:1.3rem;color:var(--muted);text-decoration:none;padding:0 4px;line-height:1;transition:color 0.2s;background:none;border:none;cursor:pointer}.mini-cart-remove:hover{color:var(--danger)}.mini-cart-footer{border-top:2px solid var(--border-soft);padding-top:12px}.mini-cart-total{display:flex;justify-content:space-between;font-weight:700;font-size:1rem;margin-bottom:12px}.mini-cart-actions{display:flex;gap:8px}.mini-cart-actions .btn{flex:1;padding:10px 12px;border-radius:8px;font-size:0.85rem}.mobile-cart-link{display:none;position:relative}.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;z-index:1002;position:relative}.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:all 0.25s ease}.nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle.is-open span:nth-child(2){opacity:0}.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media (max-width:860px){.site-header{z-index:9000}.main-nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);opacity:0;visibility:hidden;pointer-events:none;transition:opacity 0.35s ease;z-index:9998}.main-nav-overlay.is-visible{opacity:1;visibility:visible;pointer-events:auto}.main-nav{position:fixed !important;top:0 !important;right:0 !important;left:auto !important;width:300px !important;max-width:85vw;height:100dvh;height:100vh;background:#fff !important;padding:80px 24px 24px;box-shadow:-12px 0 40px rgba(0,0,0,0.25);transform:translateX(100%) !important;transition:transform 0.35s cubic-bezier(0.4,0,0.2,1);overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:10000 !important;display:block !important;visibility:visible !important;opacity:1 !important}.main-nav.is-open{transition:transform 0.35s cubic-bezier(0.4,0,0.2,1);transform:translateX(0) !important}.main-nav:not(.is-open){transition:none !important;transform:translateX(100%) !important}.main-nav ul{display:flex !important;flex-direction:column;align-items:stretch;gap:4px;list-style:none;margin:0;padding:0}.main-nav ul li{width:100%}.main-nav ul li a{display:flex;width:100%;padding:14px 16px;border-radius:10px;font-size:1.1rem;color:var(--ink);text-decoration:none}.main-nav ul li a:hover{background:var(--violet-tint);color:var(--violet)}.nav-toggle{display:flex !important;position:relative;z-index:10001 !important;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px}.header-cart-wrapper{display:none}.mobile-cart-link{display:flex;margin-top:20px}body.menu-open{overflow:hidden}}@media (max-width:480px){.main-nav{width:280px;padding:70px 20px 20px}}.main-nav{transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);will-change:transform}.main-nav-overlay{transition:opacity 0.3s ease;will-change:opacity}body.menu-open{overflow:hidden}.hero{position:relative;background-color:#12162B;background-color:var(--ink);color:rgba(255,255,255,0.92);overflow:hidden;padding:80px 24px 120px}.hero::before{content:"";position:absolute;width:640px;height:640px;border-radius:50%;background:var(--violet);filter:blur(160px);opacity:0.28;top:-280px;right:-120px;pointer-events:none}.hero-grid{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,0.06) 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 0%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 0%,#000 20%,transparent 75%);opacity:0.5;pointer-events:none}.hero-inner{position:relative;max-width:var(--max-width);margin:0 auto}.hero-eyebrow{font-family:var(--font-mono);font-size:0.78rem;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.55);margin-bottom:28px;display:inline-flex;align-items:center;gap:8px}.hero-name{font-family:var(--font-display);font-size:clamp(3.4rem,7vw,6.4rem);font-weight:700;letter-spacing:-0.035em;line-height:0.98;margin-bottom:32px;color:#fff;max-width:16ch}.hero-name .name-accent{color:var(--violet)}.hero-sub{max-width:46ch;font-size:1.22rem;line-height:1.6;color:rgba(255,255,255,0.68);margin-bottom:48px;font-weight:400}.hero-top{display:grid;grid-template-columns:1.15fr 0.85fr;gap:64px;align-items:center;margin-bottom:56px}.hero-content{min-width:0}.hero-content .hero-sub{margin-bottom:26px}.hero-ctas{display:flex;align-items:center;gap:28px;flex-wrap:wrap}.hero-ctas .btn-text{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1.5px solid #fff;color:var(--ink);padding:13px 26px;border-radius:999px;font-weight:600}.hero-ctas .btn-text:hover{background:rgba(255,255,255,0.85);color:var(--ink);border-color:rgba(255,255,255,0.85);transform:translateY(-1px)}.hero-visual{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px}.hero-photo-link{position:relative;display:block;width:100%;max-width:380px;text-decoration:none}.hero-photo-glow{position:absolute;width:300px;height:300px;background:var(--violet);filter:blur(90px);opacity:0.4;top:-20px;right:-30px;border-radius:50%;z-index:0;pointer-events:none}.hero-photo-link::before{content:"";position:absolute;inset:-14px;border:1.5px solid rgba(199,188,255,0.4);border-radius:34px;transition:inset 0.35s ease,border-color 0.35s ease;z-index:0}.hero-photo-link:hover::before{inset:-18px;border-color:rgba(199,188,255,0.65)}.hero-photo-frame{position:relative;z-index:1;display:block;aspect-ratio:1 / 1;border-radius:28px;overflow:hidden;border:1px solid rgba(255,255,255,0.14);background:rgba(255,255,255,0.03);box-shadow:0 30px 60px -20px rgba(0,0,0,0.55)}.hero-photo{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block;transform:scale(1.1);filter:grayscale(4%) contrast(1.04) saturate(1.03);transition:transform 0.5s ease,filter 0.5s ease}.hero-photo-link:hover .hero-photo{transform:scale(1.16);filter:grayscale(0%) contrast(1.06) saturate(1.05)}.hero-photo-cta{width:100%;max-width:380px}.hero-visual .btn-primary{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,0.5)}.hero-visual .btn-primary:hover{background:rgba(255,255,255,0.08);color:#fff;border-color:#fff;transform:translateY(-1px)}.hero-stats{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid rgba(255,255,255,0.14);padding-top:28px}.hero-stat{flex:1;min-width:140px;padding-right:28px;color:rgba(255,255,255,0.9);transition:transform 0.15s ease}.hero-stat:hover{transform:translateY(-2px)}.hero-stat-count{font-family:var(--font-display);font-size:1.9rem;font-weight:700;letter-spacing:-0.02em;display:block;margin-bottom:4px;color:#fff;display:flex;align-items:center;justify-content:center}.hero-stat-label{font-family:var(--font-mono);font-size:0.76rem;letter-spacing:0.04em;color:rgba(255,255,255,0.48);display:flex;align-items:center;justify-content:center}.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:140px;background:linear-gradient(to bottom,transparent,var(--bg));pointer-events:none}.badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:0.72rem;font-weight:500;padding:4px 10px;border-radius:999px;margin-bottom:10px;letter-spacing:0.01em}.badge-violet{background:var(--violet-tint);color:var(--violet)}.badge-coral{background:var(--coral-tint);color:var(--coral)}.badge-teal{background:var(--teal-tint);color:var(--teal)}.badge-amber{background:var(--amber-tint);color:var(--amber)}.badge-indigo{background:var(--indigo-tint);color:var(--indigo)}.eyebrow-violet{color:var(--violet)}.eyebrow-coral{color:var(--coral)}.eyebrow-amber{color:var(--amber)}.eyebrow-indigo{color:var(--indigo)}.eyebrow-gold{color:#c88216}.eyebrow-violet{color:var(--violet)}.eyebrow-teal{color:var(--teal)}.thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.thumb-placeholder span{font-family:var(--font-display);font-size:2.4rem;font-weight:700;color:rgba(255,255,255,0.92)}.thumb-violet{background:linear-gradient(135deg,#7C6EF0,#5A47D6)}.thumb-coral{background:linear-gradient(135deg,#F0788F,#D64A66)}.thumb-teal{background:linear-gradient(135deg,#22D3BF,#0E9C8C)}.thumb-amber{background:linear-gradient(135deg,#E7AC4F,#C77E17)}.thumb-indigo{background:linear-gradient(135deg,#5C77E0,#2E47AD)}.section-eyebrow{font-family:var(--font-mono);font-size:0.8rem;margin-bottom:6px;letter-spacing:0.05em}.section-title{font-size:1.4rem;margin-bottom:0;position:relative;display:inline-block;padding-bottom:10px}.section-title::after{content:"";position:absolute;left:0;bottom:0;width:42px;height:3px;border-radius:2px;background:currentColor}.reveal{opacity:0;transform:translateY(28px);transition:opacity 0.6s ease,transform 0.6s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}.home-bento{max-width:var(--max-width);margin:-72px auto 100px;padding:0 24px;position:relative;z-index:2;display:grid;grid-template-columns:repeat(12,1fr);grid-template-areas:"proj proj proj proj proj proj proj art  art  art  art  art" "proj proj proj proj proj proj proj jour jour jour jour jour" "bk   bk   bk   bk   bk   bk   bk   bk   bk   bk   bk   bk";gap:20px}.bento-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:32px 32px 30px;display:flex;flex-direction:column;min-width:0;transition:transform 0.18s ease,box-shadow 0.18s ease}.bento-tile:hover{transform:translateY(-3px)}.bento-tile--projects{grid-area:proj}.bento-tile--articles{grid-area:art}.bento-tile--journal{grid-area:jour}.bento-tile--courses{grid-area:crs}.bento-tile--books{grid-area:bk}.bento-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:28px}.bento-head .section-eyebrow{margin-bottom:8px;display:inline-flex;align-items:center;gap:7px;display:flex}.bento-head .section-eyebrow:empty{display:none;margin-bottom:0}.bento-head .section-eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.bento-head .section-eyebrow{display:flex}.bento-head .section-title{font-size:1.3rem;padding-bottom:0;font-weight:700;font-family:var(--font-body);letter-spacing:-0.01em;display:block;margin-top:2px}.bento-head .section-title::after{display:none}.bento-viewall{font-size:0.82rem;font-weight:600;color:var(--muted);white-space:nowrap;display:inline-flex;align-items:center;gap:4px;padding-top:6px}.bento-viewall:hover{color:var(--accent)}.bento-empty{color:var(--muted);font-size:0.92rem;margin:0}.bento-projects-grid{display:flex;flex-wrap:wrap;gap:18px;flex:1}.bento-project{flex:1 1 260px;border:1px solid var(--border-soft);border-radius:var(--radius-sm);overflow:hidden;display:flex;flex-direction:column;transition:transform 0.18s ease,box-shadow 0.18s ease}.bento-project:only-child{flex-basis:100%}.bento-project:only-child .bento-project-thumb{aspect-ratio:auto;flex:1;min-height:200px}.bento-project:hover{transform:translateY(-3px);box-shadow:var(--shadow-card)}.bento-project-thumb{aspect-ratio:16/10;background:var(--border-soft);overflow:hidden}.bento-project-thumb img{width:100%;height:100%;object-fit:cover;display:block}.bento-project-body{padding:14px 16px 16px}.bento-project-title{font-size:1rem;margin-bottom:4px;font-family:var(--font-body);font-weight:600}.bento-project-title a{color:var(--ink)}.bento-project-title a:hover{color:var(--teal)}.bento-project-excerpt{color:var(--muted);font-size:0.86rem;margin:0}.bento-project-cta{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:8px 16px;border-radius:999px;border:1.5px solid var(--border);color:var(--ink);font-size:0.82rem;font-weight:600;transition:all 0.15s ease}.bento-project-cta:hover{border-color:var(--teal);color:var(--teal)}.bento-list-footer{display:flex;align-items:center;justify-content:space-between;margin-top:2px}.bento-list-read{font-size:0.76rem;font-weight:600;color:var(--muted);display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.bento-tile--articles .bento-list-read:hover{color:var(--violet)}.bento-tile--journal .bento-list-read:hover{color:var(--coral)}.bento-mini-cta{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:7px 14px;border-radius:999px;border:1.5px solid var(--border);color:var(--ink);font-size:0.78rem;font-weight:600;transition:all 0.15s ease}.bento-tile--books .bento-mini-cta:hover{border-color:var(--indigo);color:var(--indigo)}.bento-tile--courses .bento-mini-cta:hover{border-color:var(--amber);color:var(--amber)}.bento-list{display:flex;flex-direction:column;flex:1}.bento-list-item{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-bottom:1px solid var(--border-soft)}.bento-list-item:last-child{border-bottom:none;padding-bottom:0}.bento-list-item:first-child{padding-top:0}.bento-list-title{font-size:0.96rem;margin:0;line-height:1.35;font-family:var(--font-body);font-weight:600}.bento-list-title a{color:var(--ink)}.bento-tile--articles .bento-list-title a:hover{color:var(--violet)}.bento-tile--journal .bento-list-title a:hover{color:var(--coral)}.bento-list-meta{font-family:var(--font-mono);font-size:0.72rem;color:var(--muted)}.bento-journal-item{display:flex;gap:10px}.bento-journal-body{flex:1;min-width:0}.bento-mini-grid{display:flex;flex-wrap:wrap;gap:16px;flex:1}.bento-mini-card{flex:1 1 45%;min-width:130px;display:flex;flex-direction:column;gap:8px}.bento-mini-thumb{aspect-ratio:16/10;border-radius:var(--radius-sm);overflow:hidden;background:var(--border-soft)}.bento-mini-thumb img{width:100%;height:100%;object-fit:cover;display:block}.bento-mini-thumb .thumb-placeholder{width:100%;height:100%}.bento-mini-thumb .thumb-placeholder span{font-size:1.5rem}.bento-mini-card:only-child{flex-basis:100%;flex-direction:row;align-items:center;gap:18px}.bento-mini-card:only-child .bento-mini-thumb{width:120px;flex-shrink:0;aspect-ratio:1}.bento-mini-card:only-child .bento-mini-title{font-size:1.05rem}.bento-mini-card:only-child .bento-mini-price{font-size:0.9rem}.bento-mini-title{font-size:0.92rem;margin:0;line-height:1.3;font-family:var(--font-body);font-weight:600}.bento-mini-title a{color:var(--ink)}.bento-tile--courses .bento-mini-title a:hover{color:var(--amber)}.bento-tile--books .bento-mini-title a:hover{color:var(--indigo)}.bento-mini-price{font-family:var(--font-mono);font-size:0.78rem;font-weight:600}.bento-tile--courses .bento-mini-price{color:var(--amber)}.bento-tile--books .bento-mini-price{color:var(--indigo)}.bento-tile--books .bento-mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.bento-tile--books .bento-mini-card,.bento-tile--books .bento-mini-card:only-child{flex-basis:auto;flex-direction:column;align-items:stretch;gap:8px}.bento-tile--books .bento-mini-thumb,.bento-tile--books .bento-mini-card:only-child .bento-mini-thumb{aspect-ratio:2 / 3;width:100%}.bento-tile--books .bento-mini-thumb img{object-fit:cover}.bento-tile--books .bento-mini-card:only-child .bento-mini-title{font-size:0.92rem}.bento-tile--books .bento-mini-card:only-child .bento-mini-price{font-size:0.78rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:24px;margin-top:26px}.card{border:1px solid var(--border);border-top:4px solid transparent;border-radius:var(--radius);overflow:hidden;background:var(--surface);display:flex;flex-direction:column;height:100%;transition:transform 0.2s ease,box-shadow 0.2s ease,border-color 0.2s ease}.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-card)}.card[data-accent="violet"]:hover{border-top-color:var(--violet)}.card[data-accent="coral"]:hover{border-top-color:var(--coral)}.card[data-accent="teal"]:hover{border-top-color:var(--teal)}.card[data-accent="amber"]:hover{border-top-color:var(--amber)}.card[data-accent="indigo"]:hover{border-top-color:var(--indigo)}.card-thumb-link{display:block}.card-thumb{aspect-ratio:9/13;overflow:hidden;background:var(--border-soft);position:relative}.card-thumb img{width:100%;height:100%;object-fit:contain}.card-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}.card-title{font-size:1.06rem;margin-bottom:6px}.card-title a{color:var(--ink)}.card-title a:hover{color:var(--accent)}.card-desc{color:var(--muted);font-size:0.92rem;flex:1;margin-bottom:16px}.card-meta{font-size:0.8rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.card-meta .article-cats{color:var(--violet);font-weight:500}.card-price{margin:8px 0 4px}.card-price .price-tag{font-size:0.9rem;font-weight:600;padding:3px 12px;border-radius:999px;background:var(--amber-tint);color:var(--amber);display:inline-block}.card-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.card-actions .btn{flex:1;font-size:0.85rem;padding:10px 16px;min-width:120px}.archive-header{max-width:var(--max-width);margin:0 auto;padding:60px 24px 8px}.archive-header h1{font-size:2.3rem}.archive-header p{color:var(--muted);font-size:1.05rem}.post-list{max-width:var(--max-width);margin:0 auto;padding:16px 24px 64px}.post-list-item{padding:28px 0;border-bottom:1px solid var(--border-soft)}.post-list-item h2{font-size:1.4rem;margin-bottom:8px}.post-list-item h2 a{color:var(--ink)}.post-list-item h2 a:hover{color:var(--accent)}@media (max-width:640px){.archive-header p{font-size:12px}}.breadcrumbs{max-width:var(--max-width);margin:0 auto;padding:18px 24px 0}.breadcrumbs-list{display:flex;flex-wrap:wrap;align-items:center;gap:0;list-style:none;margin:0;padding:0;font-size:0.82rem}.breadcrumbs-item{display:inline-flex;align-items:center;color:var(--muted)}.breadcrumbs-item a{color:var(--muted);font-weight:500}.breadcrumbs-item a:hover{color:var(--accent)}.breadcrumbs-item.is-current span{color:var(--ink);font-weight:600}.breadcrumbs-item:not(.is-current)::after{content:"›";margin:0 8px;color:var(--border);font-weight:400;font-size:1rem}@media (max-width:600px){.breadcrumbs-current{display:block;max-width:30ch;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}@media (max-width:640px){.breadcrumbs{padding:14px 20px 0}.breadcrumbs-list{font-size:0.76rem}.breadcrumbs-item:not(.is-current)::after{margin:0 5px}}.journal-timeline{max-width:760px}.journal-day-group{margin-bottom:36px}.journal-day-heading{display:flex;align-items:center;gap:10px;margin-bottom:18px;position:sticky;top:var(--header-h);background:var(--bg);padding:10px 0;z-index:5}.journal-day-dot{width:8px;height:8px;border-radius:50%;background:var(--coral);flex-shrink:0}.journal-day-label{font-family:var(--font-mono);font-size:0.85rem;font-weight:500;color:var(--ink);text-transform:uppercase;letter-spacing:0.03em}.journal-entry{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--coral);border-radius:var(--radius-sm);padding:22px 24px;margin-bottom:16px}.journal-entry-time{font-family:var(--font-mono);font-size:0.76rem;color:var(--muted);margin-bottom:6px}.journal-entry-title{font-size:1.2rem;margin-bottom:8px}.journal-entry-title a{color:var(--ink)}.journal-entry-title a:hover{color:var(--coral)}.journal-entry-desc{color:var(--muted);font-size:0.98rem;margin-bottom:14px}.journal-entry-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-top:6px;border-top:1px solid var(--border-soft)}.journal-entry-readmore{display:inline-flex;align-items:center;gap:6px;font-size:0.85rem;font-weight:600;color:var(--coral);margin-bottom:16px}.journal-entry-readmore:hover{color:var(--accent-ink)}.like-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--border);border-radius:999px;padding:7px 14px;font-family:var(--font-body);font-size:0.85rem;font-weight:600;color:var(--muted);cursor:pointer;transition:all 0.15s ease}.like-btn .icon{width:16px;height:16px}.like-btn:hover{border-color:var(--coral);color:var(--coral)}.like-btn.is-liked{background:var(--coral-tint);border-color:var(--coral);color:var(--coral)}.like-btn.is-liked .icon{fill:currentColor}.share-buttons{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.share-label{font-size:0.8rem;color:var(--muted);margin-right:2px;font-weight:600}.share-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--ink);cursor:pointer;transition:all 0.15s ease}.share-btn .icon{width:16px;height:16px}.share-btn:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.share-btn.copy-link-btn{width:auto;padding:0 14px;gap:6px;font-size:0.78rem;font-weight:600}.share-btn.copy-link-btn.is-copied{border-color:var(--success);color:var(--success);background:var(--success-tint)}.article-filter-bar{display:flex;flex-wrap:nowrap;gap:8px;margin-bottom:8px;overflow-x:auto;overflow-y:hidden;padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.article-filter-bar::-webkit-scrollbar{height:5px}.article-filter-bar::-webkit-scrollbar-track{background:transparent}.article-filter-bar::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.article-filter-bar::-webkit-scrollbar-thumb:hover{background:var(--muted)}.article-filter-pill{flex-shrink:0;white-space:nowrap}.article-filter-pill{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--ink);font-size:0.85rem;font-weight:600;transition:all 0.15s ease}.article-filter-pill:hover{border-color:var(--violet);color:var(--violet)}.article-filter-pill.is-active{background:var(--violet);border-color:var(--violet);color:#fff}.article-filter-count{font-family:var(--font-mono);font-size:0.72rem;background:rgba(255,255,255,0.25);padding:1px 7px;border-radius:999px}.article-filter-pill:not(.is-active) .article-filter-count{background:var(--violet-tint);color:var(--violet)}.card-cat-links{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.card-cat-pill{font-size:0.74rem;font-weight:600;background:var(--violet-tint);color:var(--violet);padding:3px 10px;border-radius:999px;transition:background 0.15s ease}.card-cat-pill:hover{background:var(--violet);color:#fff}@media (max-width:640px){.article-filter-bar{gap:6px}.article-filter-pill{font-size:0.8rem;padding:8px 13px}}.article-card .card-thumb{aspect-ratio:16/9}.article-card .card-thumb img{object-fit:cover}.article-hero{padding:60px 0 30px;background:var(--surface);border-bottom:1px solid var(--border-soft)}.article-hero-content{max-width:780px;margin:0 auto}.article-categories{margin-bottom:12px;display:flex;gap:6px;flex-wrap:wrap}.article-cat{display:inline-block;background:var(--violet-tint);color:var(--violet);font-size:0.75rem;font-weight:600;padding:4px 12px;border-radius:999px}.article-hero h1{font-size:2.8rem;line-height:1.2;margin-bottom:16px}.article-meta{display:flex;align-items:center;gap:16px;font-size:0.9rem;color:var(--muted);flex-wrap:wrap}.article-author{display:flex;align-items:center;gap:8px}.article-author .author-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover}.article-featured-image{margin:40px 0 30px}.article-featured-image .container{max-width:780px;padding:0 24px}.article-featured-image img{width:100%;height:400px;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius);display:block;box-shadow:var(--shadow-card)}.article-body{max-width:780px;margin:0 auto;padding:0 24px 60px}.article-content{font-size:1.1rem;line-height:1.8}.article-content h2{margin-top:2em}.article-content h3{margin-top:1.5em}.article-content img{border-radius:var(--radius);margin:30px 0}.article-content pre{position:relative !important;border:1px solid gray;border-radius:5px;padding:20px 10px 10px 10px;font-size:14px;font-family:monospace;font-weight:bold;color:darkgreen;text-wrap:auto}.code-copy-btn{position:absolute !important;top:8px !important;right:8px !important;z-index:10 !important;display:block !important;width:auto !important;height:auto !important;padding:5px 10px !important;margin:0 !important;border:1px solid #aaa !important;border-radius:4px !important;background:#fff !important;color:#333 !important;font-family:Arial,sans-serif !important;font-size:12px !important;font-weight:normal !important;line-height:1.2 !important;cursor:pointer !important}.code-copy-btn:hover{background:#f0f0f0 !important}.code-copy-btn.is-copied{background:#f0f0f0 !important}.article-source{margin:40px 0 30px}.article-share{display:flex;align-items:center;gap:10px;padding:20px 0;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);margin:30px 0;flex-wrap:wrap}.author-bio{display:flex;align-items:center;gap:20px;background:var(--bg);padding:24px;border-radius:var(--radius);margin:30px 0}.author-bio .author-avatar-large{width:70px;height:70px;border-radius:50%;object-fit:cover;flex-shrink:0}.author-bio .author-info h3{margin-bottom:4px;font-size:1.1rem}.author-bio .author-info p{margin:0;color:var(--muted);font-size:0.95rem}.related-articles{background:var(--bg);padding:40px 0 60px}.related-articles .related-title{font-size:1.6rem;margin-bottom:20px}@media (max-width:640px){.single-article h1{font-size:21px}.article-hero h1{font-size:1.7rem}.article-body{padding:0 20px 40px}.article-content{font-size:1rem;line-height:1.7}.article-meta{gap:20px;font-size:10px}.article-share{gap:8px}.author-bio{flex-direction:column;text-align:center;gap:14px;padding:20px}.related-articles .related-title{font-size:1.3rem}.article-featured-image img{max-height:180px}}.series-nav-buttons{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin:44px 0;padding-top:32px;border-top:1px solid var(--border-soft)}.series-nav-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:999px;font-weight:600;font-size:0.92rem;border:1px solid var(--border);background:var(--surface);color:var(--ink);transition:all 0.15s ease}.series-nav-btn:hover{border-color:var(--violet);color:var(--violet)}.series-nav-btn-all{background:var(--violet-tint);border-color:var(--violet);color:var(--violet)}.series-nav-btn-all:hover{background:var(--violet);color:#fff}.series-nav-btn-prev .icon{transform:rotate(180deg)}@media (max-width:560px){.series-nav-buttons{flex-direction:column}.series-nav-btn{justify-content:center}}.subcategory-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:4px 0 24px}.subcategory-bar-label{font-size:0.82rem;color:var(--muted);font-weight:600;margin-right:4px}.subcategory-pill{font-size:0.8rem;font-weight:600;padding:6px 14px;border-radius:999px;background:var(--violet-tint);color:var(--violet);transition:all 0.15s ease}.subcategory-pill-count{font-family:var(--font-mono);font-size:0.68rem;background:rgba(255,255,255,0.4);padding:1px 6px;border-radius:999px;margin-left:4px}.subcategory-pill:hover{background:var(--violet);color:#fff}.subcategory-pill.is-active{background:var(--violet);color:#fff}.projects-list{max-width:var(--max-width);margin:0 auto}.project-row{display:grid;grid-template-columns:1fr 2fr;gap:30px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:30px;transition:transform 0.2s ease,box-shadow 0.2s ease}.project-row:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}.project-row-image{height:100%;min-height:220px;background:var(--border-soft)}.project-row-image img{width:100%;height:100%;object-fit:cover}.project-row-content{padding:30px 30px 30px 0}.project-row-title{font-size:1.6rem;margin:8px 0 12px}.project-row-title a{color:var(--ink)}.project-row-title a:hover{color:var(--teal)}.project-row-excerpt{color:var(--muted);font-size:1rem;margin-bottom:20px}.project-row-actions .btn{padding:12px 28px}.single-project{display:flex;align-items:center;justify-content:center;flex-direction:column}.single-project .project-hero-image{margin:0 0 30px}.single-project .project-hero-image img{width:100%;max-height:500px;object-fit:cover;border-radius:var(--radius)}.single-project .project-content{max-width:780px;margin:0 auto;padding:0 24px 60px}.single-project .project-header{margin-bottom:20px}.single-project .project-header h1{font-size:2.4rem;margin-top:8px}.single-project .project-description{font-size:1.1rem;line-height:1.8}.single-project .project-description h2,.single-project .project-description h3{margin-top:1.8em}.single-project .project-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:40px;padding-top:30px;border-top:1px solid var(--border-soft)}.single-project .project-actions .btn{padding:14px 32px;font-size:1rem;font-weight:600}.project-gallery-section{margin-top:44px;padding-top:36px;border-top:1px solid var(--border-soft)}.project-gallery-title{font-size:1.3rem;margin-bottom:20px}.project-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.project-gallery-item{padding:0;border:none;background:var(--border-soft);border-radius:var(--radius-sm);overflow:hidden;aspect-ratio:4/3;cursor:zoom-in;transition:transform 0.15s ease}.project-gallery-item:hover{transform:translateY(-3px)}.project-gallery-item img{width:100%;height:100%;object-fit:cover;display:block}.project-gallery-lightbox{position:fixed;inset:0;z-index:9000;display:none;align-items:center;justify-content:center;background:rgba(6,7,14,0.96)}.project-gallery-lightbox.is-open{display:flex}.project-gallery-lightbox-img{max-width:92vw;max-height:88vh;object-fit:contain;display:block}.project-gallery-lightbox-close{position:absolute;top:20px;right:20px;width:42px;height:42px;border-radius:50%;border:none;background:rgba(255,255,255,0.12);color:#fff;font-size:1.6rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer}.project-gallery-lightbox-close:hover{background:rgba(255,255,255,0.22)}.project-gallery-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:none;background:rgba(255,255,255,0.12);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.project-gallery-lightbox-nav:hover{background:rgba(255,255,255,0.22)}.project-gallery-lightbox-prev{left:20px}.project-gallery-lightbox-prev .icon{transform:rotate(180deg)}.project-gallery-lightbox-next{right:20px}.project-gallery-lightbox-counter{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,0.75);font-family:var(--font-mono);font-size:0.85rem}@media (max-width:640px){.project-gallery-grid{grid-template-columns:repeat(2,1fr)}}.single-course .course-content,.single-book .book-content{display:grid;grid-template-columns:2fr 1fr;gap:40px;margin-top:30px}.single-course .course-header,.single-book .book-header{margin-bottom:20px}.single-course .course-header h1,.single-book .book-header h1{font-size:2.4rem;margin-top:8px}.single-course .course-featured-image,.single-book .book-featured-image{border-radius:var(--radius);overflow:hidden;margin-bottom:30px}.single-course .course-featured-image img,.single-book .book-featured-image img{width:100%;height:auto;display:block}.book-featured-image img.alignwide.wp-post-image{width:350px !important;max-width:350px !important;height:auto !important;display:block;margin:0 auto}.single-course .course-description,.single-book .book-description{font-size:1.1rem;line-height:1.8}.single-course .course-description h2,.single-course .course-description h3,.single-book .book-description h2,.single-book .book-description h3{margin-top:1.8em}.single-course .course-sidebar,.single-book .book-sidebar{position:sticky;top:calc(var(--header-h) + 24px);align-self:start}.purchase-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-card)}.purchase-card h3{font-size:1.2rem;margin-bottom:16px;font-weight:600}.price-display{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);margin-bottom:18px}.price-label{color:var(--muted);font-size:0.9rem}.price-amount{font-size:1.8rem;font-weight:700;color:var(--indigo);font-family:var(--font-display)}.purchase-actions{display:flex;flex-direction:column;gap:12px;margin-top:16px}.purchase-actions .btn{padding:14px 20px;font-size:1rem;width:100%}.already-purchased{margin-top:12px;color:var(--success);font-weight:600;text-align:center;background:var(--success-tint);padding:10px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;gap:6px}.out-of-stock,.no-action{color:var(--muted);text-align:center;font-size:0.95rem;background:var(--border-soft);padding:14px;border-radius:var(--radius-sm)}.course-meta{margin-top:18px}.course-meta h4{font-size:0.85rem;text-transform:uppercase;letter-spacing:0.04em;color:var(--muted);margin-bottom:8px}.about-page{padding:40px 0 60px}.about-hero{display:grid;grid-template-columns:2fr 1fr;gap:50px;align-items:center;margin-bottom:50px;padding-bottom:40px;border-bottom:1px solid var(--border-soft)}.about-hero-content h1{font-size:3rem;margin:8px 0 12px}.about-tagline{font-size:1.2rem;color:var(--muted);margin-bottom:24px;max-width:90%}.about-actions{display:flex;flex-wrap:wrap;gap:12px}.about-actions .btn{padding:12px 28px}.about-hero-image{width:100%;max-width:260px;border-radius:50%;overflow:hidden;aspect-ratio:1;background:var(--border-soft);border:4px solid var(--surface);box-shadow:0 8px 30px rgba(0,0,0,0.1);justify-self:end}.about-hero-image img{width:100%;height:100%;object-fit:cover}.about-bio{max-width:780px;margin:0 auto 50px;font-size:1.1rem;line-height:1.8}.about-bio h2,.about-bio h3{margin-top:1.8em}.about-status{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--violet);border-radius:var(--radius);padding:30px 36px;margin:40px 0}.about-status h2{font-size:1.3rem;margin-bottom:12px;display:flex;align-items:center;gap:10px}.about-status .status-content{color:var(--muted);font-size:1rem}.about-status .status-content p:last-child{margin-bottom:0}.about-skills{margin:40px 0}.about-skills h2{font-size:1.3rem;margin-bottom:16px;display:flex;align-items:center;gap:10px}.skills-tags{display:flex;flex-wrap:wrap;gap:10px}.skill-tag{background:var(--violet-tint);color:var(--violet);padding:7px 16px;border-radius:999px;font-size:0.9rem;font-weight:500}.about-availability{margin:30px 0}.availability-badge{display:inline-flex;align-items:center;gap:10px;padding:10px 24px;border-radius:999px;font-weight:600;font-size:0.95rem}.availability-badge.available{background:var(--success-tint);color:var(--success)}.availability-badge.unavailable{background:var(--danger-tint);color:var(--danger)}.availability-dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:currentColor}.about-social{margin:40px 0 0;padding-top:30px;border-top:1px solid var(--border-soft);text-align:center}.about-social h3{font-size:1.1rem;margin-bottom:16px;color:var(--muted)}.social-links{display:flex;justify-content:center;gap:16px}.social-link{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--surface);border:1px solid var(--border);text-decoration:none;transition:all 0.2s;color:var(--ink)}.social-link .icon{width:20px;height:20px}.social-link:hover{border-color:var(--violet);color:var(--violet);transform:translateY(-3px);box-shadow:0 4px 12px rgba(0,0,0,0.08)}.single-content{max-width:720px;margin:0 auto;padding:56px 24px 80px}.single-content .post-meta{font-family:var(--font-mono);color:var(--muted);font-size:0.8rem;margin-bottom:20px;text-transform:uppercase}.single-content h1{font-size:2.15rem;margin-bottom:16px}.single-thumb{border-radius:var(--radius);overflow:hidden;margin:20px 0 28px;aspect-ratio:16/9}.single-thumb img{width:100%;height:100%;object-fit:cover}.single-body{font-size:1.06rem}.single-body img{border-radius:var(--radius);margin:24px 0}.single-body h2{margin-top:1.6em}@media (max-width:720px){.single-content{padding:20px 24px 80px}.badge{margin-bottom:0px}.single-content .post-meta{font-size:12px}.container{padding:0 15px}}.site-footer{border-top:1px solid var(--border);padding:32px 0;color:var(--muted);font-size:0.88rem}.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.footer-nav{display:flex;gap:18px}.footer-nav a{color:var(--muted)}.footer-nav a:hover{color:var(--accent)}.screen-reader-text{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:12px 20px;z-index:3000;border-radius:0 0 8px 0;font-weight:600;font-size:0.9rem}.skip-link:focus{left:0;top:0}@keyframes farhan-bounce{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}.cart-count.bounce{animation:farhan-bounce 0.4s ease}.add-to-cart-btn.processing,.buy-now-btn.processing{opacity:0.7;cursor:not-allowed}.add-to-cart-btn.in-cart{background:var(--success-tint);border-color:var(--success);color:var(--success)}@media (max-width:900px){.hero-top{grid-template-columns:1fr;gap:20px;margin-bottom:24px}.hero-visual{align-items:center}.hero-photo-link,.hero-photo-cta{max-width:280px}.hero{padding:96px 20px 72px}.hero-name{max-width:100%}.hero-content{display:flex;flex-direction:column}.hero-name{order:1;margin-bottom:10px}.hero-eyebrow{order:2;margin-bottom:18px}.hero-content .hero-sub{order:3;margin-bottom:24px}.hero-ctas{order:4}.home-bento{grid-template-columns:1fr;grid-template-areas:"proj" "art" "jour" "crs" "bk";margin-top:-40px}.bento-tile{padding:28px 22px 24px}.featured-article,.project-row,.single-course .course-content,.single-book .book-content,.about-hero{grid-template-columns:1fr !important}.single-course .course-sidebar,.single-book .book-sidebar{position:static}.about-hero-image{max-width:220px;justify-self:center}.about-hero{text-align:center;gap:30px}}@media (max-width:720px){.archive-header{padding:40px 24px 8px}.journal-day-heading{top:var(--header-h)}.journal-entry{padding:18px}.single-course .course-header h1,.single-book .book-header h1,.single-project .project-header h1{font-size:2rem}}@media (max-width:640px){.hero-photo-glow{width:220px;height:220px;filter:blur(70px)}.hero-photo-link::before{inset:-10px;border-radius:26px}.hero-photo-frame{border-radius:22px}.hero{padding:10px 20px 56px}.hero-stats{flex-wrap:wrap;row-gap:20px}.hero-stat{min-width:0;padding-right:12px}.hero-ctas{flex-direction:column;align-items:flex-start;gap:18px;margin:10px 0px}.hero-stat-count{font-size:20px}.hero-content .hero-sub{font-size:16px;margin-bottom:0}}@media (max-width:560px){.bento-projects-grid,.bento-mini-grid{grid-template-columns:1fr}.bento-tile{padding:22px 20px 20px}.card-actions{flex-direction:column}.card-actions .btn{min-width:100%}.about-actions .btn{width:100%}.bento-head .section-title{font-size:1rem}.bento-viewall,.bento-list-meta{font-size:0.55rem}.bento-list-title{font-size:0.90rem}.bento-tile--books .bento-mini-grid{grid-template-columns:repeat(2,1fr)}}.error-404{min-height:60vh;display:flex;align-items:center;justify-content:center;padding:80px 24px}.error-404-inner{max-width:560px;text-align:center}.error-404-eyebrow{justify-content:center}.error-404-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.error-404-code{font-family:var(--font-display);font-size:clamp(2.6rem,6vw,3.8rem);font-weight:700;letter-spacing:-0.03em;line-height:1.05;margin-bottom:16px;color:var(--ink)}.error-404-code .name-accent{color:var(--coral)}.error-404-sub{font-size:1.05rem;line-height:1.6;color:var(--muted);margin-bottom:36px}.error-404-actions{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin-bottom:36px}.error-404-links{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;padding-top:24px;border-top:1px solid var(--border-soft);font-size:0.85rem}.error-404-links a{color:var(--muted)}.error-404-links a:hover{color:var(--accent)}@media (max-width:640px){.error-404{padding:56px 20px;min-height:50vh}.error-404-actions{flex-direction:column;width:100%}.error-404-actions .btn{width:100%}}.achievement-badge{display:flex;align-items:center;gap:20px}.achievement-left{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:52px}.achievement-year{display:block;font-family:var(--font-mono);font-size:0.72rem;font-weight:700;color:var(--violet);text-align:center}.achievement-content{flex:1}.achievement-title{margin:0}:root{--bg:#F6F1E7;--ink:#1B1714;--muted:#675F54;--border:#E2D9C8;--border-soft:#EAE2D3;--paper-2:#EBE2D0;--chinar:#B5341F;--chinar-ink:#8F2716;--font-serif:'Fraunces',Georgia,'Times New Roman',serif}.site-header{background:transparent;border-bottom:1px solid transparent;transition:border-color 0.25s ease}.site-header::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(246,241,231,0.88);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px)}.site-header.is-scrolled{border-bottom-color:var(--border)}.header-left{gap:10px}.site-header .custom-logo{mix-blend-mode:multiply}.brand-name{font-family:var(--font-serif);font-weight:600;font-size:1.2rem;letter-spacing:-0.01em;color:var(--ink);text-decoration:none;white-space:nowrap}.nav-account{align-items:center;gap:8px}.nav-account-label{font-size:0.9rem;font-weight:500}.nav-avatar{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--bg);font-family:var(--font-serif);font-weight:600;font-size:0.95rem;line-height:1}.header-cart:hover{background:var(--paper-2);color:var(--chinar-ink)}.cart-count{background:var(--chinar)}@media (min-width:861px){.main-nav ul li a{position:relative;background:none;border-radius:0;padding:8px 12px;color:var(--ink)}.main-nav ul li a::after{content:"";position:absolute;left:12px;right:12px;bottom:3px;height:2px;background:var(--chinar);transform:scaleX(0);transform-origin:left;transition:transform 0.25s ease}.main-nav ul li a:hover{background:none;color:var(--chinar-ink)}.main-nav ul li a:hover::after,.main-nav .current-menu-item > a::after,.main-nav .current_page_item > a::after{transform:scaleX(1)}.main-nav .current-menu-item > a,.main-nav .current_page_item > a{background:none;color:var(--ink)}.main-nav ul li a.nav-account::after{display:none}.nav-account:not(.is-user){border:1.5px solid var(--ink);border-radius:999px;padding:7px 18px;margin-left:6px}.nav-account:not(.is-user) svg{display:none}.nav-account:not(.is-user):hover{background:var(--ink);color:var(--bg)}.nav-account.is-user{padding:5px;margin-left:6px}.nav-account.is-user .nav-account-label{display:none}}@media (max-width:860px){.main-nav{background:var(--bg) !important}.main-nav ul li a:hover{background:var(--paper-2);color:var(--chinar-ink)}.nav-account .nav-avatar{width:28px;height:28px}.nav-account-label{font-size:inherit;font-weight:inherit}.main-nav:not(.is-open){box-shadow:none}}body.menu-open .ask-farhan-widget{display:none}.hx{position:relative;isolation:isolate;overflow:hidden}.hx::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0.55;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .1 0 0 0 0 .08 0 0 0 0 .05 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.hx-inner{max-width:var(--max-width);margin:0 auto;padding:clamp(40px,7vw,88px) 24px clamp(32px,5vw,56px);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,0.8fr);gap:clamp(32px,6vw,80px);align-items:center}.hx-eyebrow{display:flex;flex-wrap:wrap;gap:0.4em 0.8em;margin:0 0 20px;font-family:var(--font-mono);font-size:0.74rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted)}.hx-sep{color:var(--chinar)}.hx-name{margin:0 0 28px;font-family:var(--font-serif);font-weight:500;font-size:clamp(3.5rem,9.2vw,7.4rem);line-height:0.92;letter-spacing:-0.035em;color:var(--ink);font-variation-settings:"opsz" 144}.hx-dot{color:var(--chinar)}.hx-lead{max-width:28em;margin:0 0 16px;font-family:var(--font-serif);font-weight:400;font-size:clamp(1.3rem,2.3vw,1.7rem);line-height:1.35;letter-spacing:-0.01em;color:var(--ink)}.hx-lead em{font-style:italic;color:var(--chinar)}.hx-sub{max-width:34em;margin:0 0 32px;color:var(--muted)}.hx-ctas{display:flex;flex-wrap:wrap;gap:12px}.hx-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border:1.5px solid var(--ink);border-radius:999px;font-weight:600;font-size:0.98rem;text-decoration:none;transition:background 0.2s ease,color 0.2s ease,border-color 0.2s ease}.hx-btn svg{width:18px;height:18px;transition:transform 0.2s ease}.hx-btn:hover svg{transform:translateX(3px)}.hx-btn--solid{background:var(--ink);color:var(--bg)}.hx-btn--solid:hover{background:var(--chinar);border-color:var(--chinar);color:#fff}.hx-btn--line{background:transparent;color:var(--ink)}.hx-btn--line:hover{background:var(--ink);color:var(--bg)}.hx-btn:focus-visible,.hx-card:focus-visible{outline:2px solid var(--chinar);outline-offset:3px}.hx-figure{margin:0;justify-self:end;width:min(100%,414px);padding:0 14px 14px 0}.hx-frame{position:relative;isolation:isolate}.hx-frame::before{content:"";position:absolute;inset:0;z-index:-1;border:1.5px solid var(--ink);border-radius:999px 999px 28px 28px;transform:translate(14px,14px)}.hx-arch{aspect-ratio:4 / 5;border-radius:999px 999px 28px 28px;background:#F2E9D8;overflow:hidden}.hx-arch img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 30%;mix-blend-mode:multiply;filter:sepia(0.2)}.hx-caption{display:flex;justify-content:flex-start;gap:12px;margin-top:30px;white-space:nowrap;font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted)}.hx-latest{max-width:var(--max-width);margin:0 auto;padding:0 24px clamp(40px,6vw,72px)}.hx-latest-head{display:flex;align-items:center;gap:16px;margin:0 0 22px;font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted)}.hx-latest-head::after{content:"";flex:1;height:1px;background:var(--border)}.hx-latest-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}@media (max-width:700px){.hx-latest-grid{grid-template-columns:1fr}}.hx-card{display:flex;flex-direction:column;gap:8px;padding-top:16px;border-top:2px solid var(--ink);color:var(--ink);text-decoration:none}.hx-card-kind{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted)}.hx-kind-dot{width:8px;height:8px;border-radius:50%;background:var(--k,var(--chinar))}.hx-card-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-family:var(--font-serif);font-weight:500;font-size:1.3rem;line-height:1.25;letter-spacing:-0.01em}.hx-card:hover .hx-card-title{color:var(--chinar-ink);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}.hx-card-meta{font-size:0.85rem;color:var(--muted)}@keyframes hx-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.hx-eyebrow,.hx-name,.hx-lead,.hx-sub,.hx-ctas,.hx-figure,.hx-latest{animation:hx-rise 0.8s cubic-bezier(0.2,0.7,0.2,1) both}.hx-name{animation-delay:0.06s}.hx-lead{animation-delay:0.14s}.hx-sub{animation-delay:0.2s}.hx-ctas{animation-delay:0.26s}.hx-figure{animation-delay:0.18s}.hx-latest{animation-delay:0.34s}@media (max-width:860px){.hx-inner{grid-template-columns:1fr;gap:40px}.hx-figure{justify-self:center;width:min(86%,340px)}.hx-name{margin-bottom:22px}}@media (max-width:480px){.hx-inner{padding-left:20px;padding-right:20px}.hx-latest{padding-left:20px;padding-right:20px}.hx-ctas{flex-direction:column}.hx-btn{justify-content:center;width:100%}.hx-latest-grid{gap:22px}}.ask-farhan-widget .ask-farhan-toggle{width:auto;height:52px;padding:0 20px 0 8px;gap:10px;border-radius:999px;background:var(--ink);color:var(--bg);box-shadow:0 12px 30px -10px rgba(27,23,20,0.45)}.ask-farhan-widget .ask-farhan-toggle:not(.is-open) svg{display:none}.ask-farhan-widget .ask-farhan-toggle:not(.is-open)::before{content:"FP";display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--chinar);color:#fff;font-family:var(--font-serif);font-weight:600;font-size:0.9rem;letter-spacing:-0.02em}.ask-farhan-widget .ask-farhan-toggle:not(.is-open)::after{content:"Ask Farhan";font-family:var(--font-body);font-weight:600;font-size:0.92rem}.ask-farhan-widget .ask-farhan-toggle.is-open{width:52px;padding:0;background:var(--chinar)}.ask-farhan-widget .ask-farhan-toggle.is-open svg{width:22px;height:22px}@media (max-width:600px){body .ask-farhan-widget{right:14px;bottom:14px}body .ask-farhan-widget .ask-farhan-toggle:not(.is-open){width:46px;height:46px;padding:0;gap:0;justify-content:center;box-shadow:0 8px 20px -8px rgba(27,23,20,0.5)}body .ask-farhan-widget .ask-farhan-toggle:not(.is-open)::after{display:none}body .ask-farhan-widget .ask-farhan-toggle:not(.is-open)::before{width:38px;height:38px;font-size:0.82rem}}:root{--font-display:var(--font-serif);--accent:#B5341F;--accent-ink:#8F2716;--violet:#B5341F;--violet-tint:#F4E4DD;--coral:#8E4A6B;--coral-tint:#F1E6EC;--teal:#2F6B66;--teal-tint:#E3EFED;--amber:#8F5F10;--amber-tint:#F6EBD5;--indigo:#1B1714;--indigo-tint:#EDE6D8;--success:#2A7345;--success-tint:#E3F1E8;--danger:#B3362B;--danger-tint:#F8E3E0;--shadow-card:0 14px 28px -16px rgba(27,23,20,0.2)}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:500;letter-spacing:-0.02em}code,kbd,samp,pre,.article-content pre,.ask-farhan-msg code{font-family:var(--font-mono)}body .code-copy-btn{font-family:var(--font-body) !important}.btn-buy{background:var(--chinar);border-color:var(--chinar);color:#fff}.btn-buy:hover{background:var(--chinar-ink);border-color:var(--chinar-ink);color:#fff}.ask-farhan-widget .ask-farhan-header{background:var(--ink)}.ask-farhan-widget .ask-farhan-msg.user{background:var(--ink)}.ask-farhan-widget .ask-farhan-input-row input:focus{border-color:var(--chinar)}.ask-farhan-widget .ask-farhan-send{background:var(--ink)}.ask-farhan-widget .ask-farhan-send:hover{background:var(--chinar)}button,input,select,textarea{font-family:inherit}.header-cart-wrapper.is-empty,.mobile-cart-link.is-empty{display:none}@media (max-width:860px){.hx-eyebrow,.hx-name,.hx-lead,.hx-sub,.hx-ctas,.hx-figure,.hx-latest{animation:none}.site-header::before{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(246,241,231,0.97)}}.home-bento .bento-tile.reveal{opacity:1;transform:none}.newsletter-box{position:relative;overflow:hidden;width:min(var(--max-width),calc(100% - 48px));margin:clamp(40px,6vw,72px) auto 32px;background:var(--ink);color:var(--bg);border-radius:28px}.newsletter-box::before{content:"";position:absolute;right:-120px;top:-140px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(181,52,31,0.45),rgba(181,52,31,0) 70%);pointer-events:none}.newsletter-box-inner{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,0.85fr);gap:clamp(28px,5vw,64px);align-items:center;padding:clamp(24px,4vw,44px)}.newsletter-eyebrow{margin:0 0 14px;font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:rgba(246,241,231,0.6)}.newsletter-box-text h3{margin:0 0 10px;font-family:var(--font-serif);font-weight:500;font-size:clamp(1.45rem,3vw,2.1rem);line-height:1.1;letter-spacing:-0.025em;color:var(--bg)}.newsletter-box-text h3 em{font-style:italic;color:#E8806B}.newsletter-lede{max-width:34em;margin:0;font-size:0.95rem;line-height:1.6;color:rgba(246,241,231,0.74)}.newsletter-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.newsletter-tags li{margin:0;padding:5px 12px;border:1px solid rgba(246,241,231,0.22);border-radius:999px;font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;color:rgba(246,241,231,0.8)}.newsletter-form{display:flex;gap:10px;max-width:none;margin:0}.newsletter-label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.newsletter-input{flex:1;min-width:0;height:52px;padding:0 20px;border-radius:999px;border:1px solid rgba(246,241,231,0.25);background:rgba(246,241,231,0.07);color:var(--bg);font-family:var(--font-body);font-size:0.98rem}.newsletter-input::placeholder{color:rgba(246,241,231,0.5)}.newsletter-input:hover{border-color:rgba(246,241,231,0.4)}.newsletter-input:focus{outline:none;border-color:#E8806B;background:rgba(246,241,231,0.1);box-shadow:0 0 0 3px rgba(232,128,107,0.25)}.newsletter-submit{flex:none;height:52px;padding:0 26px;border:0;border-radius:999px;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-weight:600;font-size:0.96rem;white-space:nowrap;cursor:pointer;transition:background 0.2s ease,color 0.2s ease}.newsletter-submit:hover{background:var(--chinar);color:#fff;filter:none}.newsletter-submit:focus-visible{outline:2px solid #E8806B;outline-offset:3px}.newsletter-submit:disabled{opacity:0.65;cursor:not-allowed}.newsletter-note{margin:10px 4px 0;font-size:0.8rem;color:rgba(246,241,231,0.55)}@media (max-width:860px){.newsletter-box-inner{grid-template-columns:minmax(0,1fr)}}@media (max-width:560px){.newsletter-box{width:calc(100% - 32px);margin:36px auto 24px;border-radius:18px}.newsletter-box::before{width:220px;height:220px;right:-90px;top:-100px}.newsletter-box-inner{padding:22px 18px 20px;gap:16px}.newsletter-box-text h3{font-size:1.35rem;margin-bottom:6px}.newsletter-lede{font-size:0.9rem;line-height:1.5}.newsletter-form{flex-direction:column;gap:8px}.newsletter-input,.newsletter-submit{width:100%;flex:none;height:46px;font-size:0.92rem}.newsletter-note{margin:8px 2px 0;font-size:0.76rem}}.newsletter-honeypot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.newsletter-popup-overlay{position:fixed;inset:0;z-index:8000;background:rgba(18,22,43,0.5);display:none;align-items:center;justify-content:center;padding:20px}.newsletter-popup-overlay.is-visible{display:flex}.newsletter-popup{width:fit-content;max-width:calc(100vw - 40px);display:flex;align-items:center;justify-content:center;gap:14px;padding:14px 18px 14px 20px;background:var(--ink);color:#fff;border-radius:999px;box-shadow:0 16px 40px rgba(18,22,43,0.3);font-size:0.9rem;opacity:0;transform:scale(0.95);transition:opacity 0.25s ease,transform 0.25s ease}.newsletter-popup-overlay.is-visible .newsletter-popup{opacity:1;transform:scale(1);width:fit-content}.newsletter-popup-success{border:1px solid var(--teal)}.newsletter-popup-error{border:1px solid var(--coral)}.newsletter-popup-info{border:1px solid var(--border)}.newsletter-popup-icon{flex:0 0 52px;width:52px;height:52px;margin:0;display:flex;align-items:center;justify-content:center;border-radius:50%}.newsletter-popup-success .newsletter-popup-icon{background:var(--success-tint);color:var(--success)}.newsletter-popup-error .newsletter-popup-icon{background:var(--danger-tint);color:var(--danger)}.newsletter-popup-info .newsletter-popup-icon{background:var(--violet-tint);color:var(--violet)}.newsletter-popup-icon .icon{display:block;width:24px;height:24px}.newsletter-popup-text{margin:0;line-height:1.4}.newsletter-popup-close-btn{flex-shrink:0;padding:10px 12px;background:none;color:#fff;border:none;border-radius:999px;font-weight:600;font-size:0.9rem;cursor:pointer}.newsletter-popup-close-btn:hover{background:rgba(255,255,255,0.08)}@media (max-width:560px){.newsletter-popup{max-width:calc(100vw - 32px);gap:10px;padding:10px 12px 10px 14px;font-size:0.85rem}.newsletter-popup-icon{flex:0 0 44px;width:44px;height:44px}.newsletter-popup-icon .icon{width:21px;height:21px}.newsletter-popup-text{font-size:0.8rem}.newsletter-popup-close-btn{padding:8px;font-size:0.8rem}}.ask-farhan-widget{position:fixed;bottom:24px;right:24px;z-index:9999;font-family:'Inter',system-ui,sans-serif}.ask-farhan-toggle{width:60px;height:60px;border-radius:50%;background:#12162B;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(18,22,43,0.3);transition:transform 0.2s ease}.ask-farhan-toggle:hover{transform:translateY(-2px)}.ask-farhan-toggle svg{width:26px;height:26px}.ask-farhan-window{position:absolute;bottom:76px;right:0;width:360px;max-width:calc(100vw - 32px);height:520px;max-height:calc(100vh - 120px);background:#fff;border-radius:18px;box-shadow:0 20px 60px rgba(18,22,43,0.25);display:none;flex-direction:column;overflow:hidden;border:1px solid #E4E6EF}.ask-farhan-window.is-open{display:flex}.ask-farhan-header{background:#12162B;color:#fff;padding:16px 18px;display:flex;align-items:center;justify-content:space-between}.ask-farhan-header-text h3{margin:0;font-size:1.02rem;font-weight:700}.ask-farhan-header-text p{margin:2px 0 0;font-size:0.78rem;color:rgba(255,255,255,0.65)}.ask-farhan-close{background:none;border:none;color:#fff;cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:0.85}.ask-farhan-close:hover{background:rgba(255,255,255,0.12);opacity:1}.ask-farhan-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:#F7F8FB}.ask-farhan-msg{max-width:85%;padding:10px 14px;border-radius:14px;font-size:0.9rem;line-height:1.5;white-space:pre-wrap}.ask-farhan-msg.bot{background:#fff;border:1px solid #E4E6EF;align-self:flex-start;border-bottom-left-radius:4px}.ask-farhan-msg.user{background:#6C5CE7;color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.ask-farhan-msg.thinking{background:#fff;border:1px solid #E4E6EF;align-self:flex-start;color:#5B6178;font-style:italic;border-bottom-left-radius:4px}.ask-farhan-input-row{display:flex;gap:8px;padding:12px;border-top:1px solid #E4E6EF;background:#fff}.ask-farhan-input-row input{flex:1;border:1px solid #E4E6EF;border-radius:999px;padding:10px 16px;font-size:0.9rem;outline:none;font-family:inherit}.ask-farhan-input-row input:focus{border-color:#6C5CE7}.ask-farhan-send{width:40px;height:40px;border-radius:50%;background:#6C5CE7;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ask-farhan-send:hover{background:#4B3FC4}.ask-farhan-send:disabled{opacity:0.5;cursor:not-allowed}@media (max-width:480px){.ask-farhan-widget{bottom:16px;right:16px}.ask-farhan-window{width:calc(100vw - 24px);height:calc(100vh - 140px)}}.ask-farhan-toggle{transition:transform 0.2s ease,background 0.2s ease}.ask-farhan-toggle.is-open{background:#6C5CE7}.ask-farhan-toggle svg{width:26px;height:26px}.ask-farhan-msg strong{font-weight:700}.ask-farhan-msg code{background:#F0F1F5;padding:2px 5px;border-radius:4px;font-family:monospace;font-size:0.85em}.ask-farhan-link{display:inline-flex;align-items:center;margin-top:6px;border-radius:8px;font-weight:600;text-decoration:none;cursor:pointer;transition:opacity 0.2s ease,transform 0.2s ease}.ask-farhan-link:hover{opacity:0.9;transform:translateY(-1px);text-decoration:none}.ask-farhan-widget .ask-farhan-header{gap:10px}.ask-farhan-widget .ask-farhan-header .ask-farhan-header-text h3{color:#fff;margin:0;font-family:var(--font-serif,'Fraunces',Georgia,serif);font-size:1.1rem;font-weight:600;line-height:1.2}.ask-farhan-widget .ask-farhan-header .ask-farhan-header-text p{margin:2px 0 0;font-size:0.76rem;color:rgba(255,255,255,0.68)}.ask-farhan-header-actions{display:flex;align-items:center;gap:4px}.ask-farhan-new{background:none;border:none;color:#fff;cursor:pointer;height:30px;padding:0 10px;display:inline-flex;align-items:center;gap:5px;border-radius:999px;opacity:0.85;font:inherit;font-size:0.76rem;font-weight:600}.ask-farhan-new[hidden]{display:none}.ask-farhan-new svg{width:14px;height:14px}.ask-farhan-new:hover{background:rgba(255,255,255,0.12);opacity:1}.ask-farhan-widget .ask-farhan-messages{background:var(--bg,#F7F8FB)}.ask-farhan-widget .ask-farhan-msg.bot,.ask-farhan-widget .ask-farhan-msg.thinking{border-color:var(--border,#E4E6EF);position:relative}.ask-farhan-widget .ask-farhan-msg.bot{white-space:normal;padding-right:34px}.ask-farhan-msg.bot p{margin:0 0 8px}.ask-farhan-msg.bot p:last-child,.ask-farhan-msg.bot ul:last-child,.ask-farhan-msg.bot ol:last-child{margin-bottom:0}.ask-farhan-msg.bot ul,.ask-farhan-msg.bot ol{margin:0 0 8px;padding-left:20px}.ask-farhan-msg.bot li{margin:0 0 4px;padding:0}.ask-farhan-msg.bot li:last-child{margin-bottom:0}.ask-farhan-msg.bot a.ask-farhan-link{color:var(--chinar,#B5341F);text-decoration:underline;text-underline-offset:2px;margin:0;display:inline}.ask-farhan-msg.bot a.ask-farhan-link:hover{transform:none}.ask-farhan-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.ask-farhan-chip{background:#fff;color:var(--ink,#12162B);border:1px solid var(--border,#E4E6EF);border-radius:999px;padding:7px 13px;font:inherit;font-size:0.82rem;line-height:1.2;cursor:pointer;transition:border-color .15s ease,color .15s ease,transform .15s ease}.ask-farhan-chip:hover,.ask-farhan-chip:focus-visible{border-color:var(--chinar,#B5341F);color:var(--chinar,#B5341F);transform:translateY(-1px);outline:none}.ask-farhan-copy{position:absolute;top:6px;right:6px;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;padding:0;color:var(--muted,#5B6178);cursor:pointer;opacity:0;transition:opacity .15s ease,background .15s ease}.ask-farhan-copy svg{width:14px;height:14px}.ask-farhan-msg.bot:hover .ask-farhan-copy,.ask-farhan-copy:focus-visible,.ask-farhan-copy.is-copied{opacity:1}.ask-farhan-copy:hover{background:rgba(0,0,0,0.06)}.ask-farhan-copy.is-copied{color:#2e7d32}@media (hover:none){.ask-farhan-copy{opacity:.7}}.ask-farhan-widget .ask-farhan-msg.thinking{font-style:normal;padding:12px 16px}.ask-farhan-dots{display:inline-flex;gap:4px;align-items:center}.ask-farhan-dots i{width:6px;height:6px;border-radius:50%;background:var(--muted,#5B6178);animation:askFarhanDot 1.2s infinite ease-in-out both}.ask-farhan-dots i:nth-child(2){animation-delay:.15s}.ask-farhan-dots i:nth-child(3){animation-delay:.3s}@keyframes askFarhanDot{0%,80%,100%{transform:translateY(0);opacity:.35}40%{transform:translateY(-4px);opacity:1}}.ask-farhan-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media (prefers-reduced-motion:reduce){.ask-farhan-dots i{animation:none;opacity:.6}}.ask-farhan-foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 6px;margin-top:-4px;align-self:flex-start;max-width:92%}.ask-farhan-rate{display:inline-flex;align-items:center;gap:2px;font-size:0.74rem;color:var(--muted,#5B6178);margin-right:2px}.ask-farhan-thumb{width:28px;height:28px;padding:0;border:none;background:transparent;border-radius:50%;color:var(--muted,#5B6178);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;opacity:.7;transition:background .15s ease,opacity .15s ease,color .15s ease}.ask-farhan-thumb svg{width:15px;height:15px}.ask-farhan-thumb:hover,.ask-farhan-thumb:focus-visible{opacity:1;background:rgba(0,0,0,.06);color:var(--ink,#12162B);outline:none}.ask-farhan-chip-sm{padding:5px 11px;font-size:0.78rem;text-decoration:none;display:inline-block}.ask-farhan-chip-contact{border-color:var(--chinar,#B5341F);color:var(--chinar,#B5341F);font-weight:600}.ask-farhan-mic{width:40px;height:40px;border-radius:50%;flex-shrink:0;padding:0;background:#fff;color:var(--ink,#12162B);border:1px solid var(--border,#E4E6EF);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease,border-color .15s ease}.ask-farhan-mic svg{width:18px;height:18px}.ask-farhan-mic:hover,.ask-farhan-mic:focus-visible{border-color:var(--chinar,#B5341F);color:var(--chinar,#B5341F);outline:none}.ask-farhan-mic.is-listening{background:var(--chinar,#B5341F);border-color:var(--chinar,#B5341F);color:#fff;animation:askFarhanPulse 1.3s infinite ease-out}@keyframes askFarhanPulse{0%{box-shadow:0 0 0 0 rgba(181,52,31,.45)}100%{box-shadow:0 0 0 12px rgba(181,52,31,0)}}@media (prefers-reduced-motion:reduce){.ask-farhan-mic.is-listening{animation:none}}.ask-farhan-input-row{align-items:center}.ask-farhan-input-row input{min-width:0}.home-bento{max-width:var(--max-width);margin:0 auto;padding:8px 24px clamp(56px,8vw,96px);grid-template-columns:minmax(0,1fr);grid-template-areas:"topics" "bk";gap:64px}.home-bento .bento-tile{background:none;border:0;border-radius:0;box-shadow:none;padding:0}.home-bento .bento-tile:hover{transform:none}.home-bento .bento-head{align-items:baseline;margin:0 0 22px;padding-top:16px;border-top:2px solid var(--ink)}.home-bento .bento-head .section-title{font-family:var(--font-serif);font-weight:500;font-size:1.6rem;line-height:1.2;letter-spacing:-0.02em;margin:0}.home-bento .bento-head .section-title a{color:var(--ink)}.home-bento .bento-head .section-title a:hover{color:var(--chinar-ink)}.home-bento .bento-viewall{font-family:var(--font-mono);font-size:0.68rem;font-weight:400;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);padding-top:0}.home-bento .bento-viewall:hover{color:var(--chinar)}.home-bento .bento-empty{font-family:var(--font-serif);font-style:italic;color:var(--muted)}.home-bento .bento-tile--topics{grid-area:topics}.home-bento .topic-index{list-style:none;margin:0;padding:0}.home-bento .topic-index li{margin:0;border-bottom:1px solid var(--border)}.home-bento .topic-index li:first-child{border-top:0}.home-bento .topic-row{display:grid;grid-template-columns:40px minmax(150px,250px) minmax(0,1fr) auto 18px;column-gap:24px;align-items:baseline;padding:22px 0;color:var(--ink)}.home-bento .topic-row__num{font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.1em;color:var(--muted)}.home-bento .topic-row__name{font-family:var(--font-serif);font-weight:500;font-size:1.5rem;line-height:1.2;letter-spacing:-0.02em;transition:color 0.15s ease}.home-bento .topic-row__desc{font-family:var(--font-serif);font-size:1rem;line-height:1.55;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.home-bento .topic-row__count{font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.home-bento .topic-row__arrow{color:var(--muted);transition:transform 0.2s ease,color 0.15s ease}.home-bento .topic-row:hover .topic-row__name{color:var(--chinar-ink)}.home-bento .topic-row:hover .topic-row__arrow{color:var(--chinar);transform:translateX(4px)}:root{--panel:#FBF8F1;--panel-shadow:0 1px 2px rgba(27,23,20,.04),0 12px 28px -18px rgba(27,23,20,.28)}.home-bento .bento-project-cta,.home-bento .bento-mini-cta{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;margin-top:18px;padding:10px 18px;border:1px solid var(--ink);border-radius:4px;background:var(--ink);color:var(--bg);font-family:var(--font-body);font-size:0.82rem;font-weight:500;letter-spacing:0.01em;line-height:1;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.home-bento .bento-project-cta svg,.home-bento .bento-mini-cta svg{transition:transform .18s ease}.home-bento .bento-project-cta:hover,.home-bento .bento-tile--books .bento-mini-cta:hover,.home-bento .bento-tile--courses .bento-mini-cta:hover{background:var(--chinar);border-color:var(--chinar);color:#fff}.home-bento .bento-project-cta:hover svg,.home-bento .bento-mini-cta:hover svg{transform:translateX(3px)}.home-bento .bento-project-cta:focus-visible,.home-bento .bento-mini-cta:focus-visible{outline:2px solid var(--chinar);outline-offset:3px}.home-bento .bento-projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.home-bento .bento-project{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden;box-shadow:var(--panel-shadow);transition:border-color .2s ease,box-shadow .2s ease}.home-bento .bento-project:hover{transform:none;border-color:#CFC4AE;box-shadow:0 1px 2px rgba(27,23,20,.05),0 18px 34px -18px rgba(27,23,20,.34)}.home-bento .bento-project-thumb{display:block;aspect-ratio:16 / 9;background:var(--paper-2);border:0;border-bottom:1px solid var(--border);border-radius:0;overflow:hidden}.home-bento .bento-project-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.home-bento .bento-project:hover .bento-project-thumb img{transform:scale(1.025)}.home-bento .bento-project-body{display:flex;flex-direction:column;align-items:flex-start;padding:24px 26px 26px}.home-bento .bento-project-meta{margin:0 0 10px;font-family:var(--font-mono);font-size:0.66rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--chinar)}.home-bento .bento-project-title{margin:0 0 10px;font-family:var(--font-serif);font-weight:500;font-size:1.4rem;line-height:1.25;letter-spacing:-0.015em}.home-bento .bento-project-title a{color:var(--ink)}.home-bento .bento-project-title a:hover{color:var(--chinar-ink)}.home-bento .bento-project-excerpt{margin:0;font-family:var(--font-serif);font-size:1rem;line-height:1.65;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.home-bento .bento-projects-grid:has(.bento-project:only-child){grid-template-columns:minmax(0,1fr)}.home-bento .bento-project:only-child{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:stretch;gap:0}.home-bento .bento-project:only-child .bento-project-thumb{aspect-ratio:auto;min-height:280px;height:100%;border-bottom:0;border-right:1px solid var(--border)}.home-bento .bento-project:only-child .bento-project-body{justify-content:center;padding:36px 40px}.home-bento .bento-project:only-child .bento-project-title{font-size:1.7rem}.home-bento .bento-tile--books .bento-mini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,200px));gap:40px 32px}.home-bento .bento-tile--books .bento-mini-card{display:flex;flex-direction:column;gap:16px;min-width:0}.home-bento .bento-mini-thumb{position:relative;display:block;width:100%;aspect-ratio:2 / 3;background:var(--paper-2);border:0;border-radius:2px 5px 5px 2px;overflow:hidden;box-shadow:0 2px 4px rgba(27,23,20,.14),0 18px 28px -14px rgba(27,23,20,.5);transition:transform .25s ease,box-shadow .25s ease}.home-bento .bento-mini-thumb::after{content:"";position:absolute;inset:0 auto 0 0;width:9px;background:linear-gradient(90deg,rgba(0,0,0,.2),rgba(255,255,255,.14) 55%,rgba(0,0,0,0));pointer-events:none}.home-bento .bento-mini-card:hover .bento-mini-thumb{transform:translateY(-3px);box-shadow:0 3px 6px rgba(27,23,20,.16),0 24px 34px -14px rgba(27,23,20,.55)}.home-bento .bento-tile--books .bento-mini-thumb img{width:100%;height:100%;object-fit:cover}.home-bento .bento-mini-body{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.home-bento .bento-mini-title,.home-bento .bento-tile--books .bento-mini-card:only-child .bento-mini-title{margin:0;font-family:var(--font-serif);font-weight:500;font-size:1.1rem;line-height:1.3;letter-spacing:-0.01em}.home-bento .bento-tile--books .bento-mini-title a{color:var(--ink)}.home-bento .bento-tile--books .bento-mini-title a:hover{color:var(--chinar-ink)}.home-bento .bento-mini-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:8px 0 0;font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.06em;color:var(--muted)}.home-bento .bento-mini-format{text-transform:uppercase;letter-spacing:0.1em;font-size:0.66rem}.home-bento .bento-mini-format + .bento-mini-price::before{content:"·";margin-right:10px;color:var(--border)}.home-bento .bento-tile--books .bento-mini-price,.home-bento .bento-tile--books .bento-mini-card:only-child .bento-mini-price{font-family:var(--font-mono);font-size:0.78rem;font-weight:500;letter-spacing:0.04em;color:var(--ink)}.home-bento .bento-mini-excerpt{display:none}.home-bento .bento-tile--books .bento-mini-cta{margin-top:14px;padding:9px 15px;font-size:0.78rem}.home-bento .bento-tile--books .bento-mini-grid:has(.bento-mini-card:only-child){grid-template-columns:minmax(0,1fr)}.home-bento .bento-tile--books .bento-mini-card:only-child{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:40px;padding:32px 40px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:var(--panel-shadow)}.home-bento .bento-tile--books .bento-mini-card:only-child .bento-mini-title{font-size:1.7rem}.home-bento .bento-tile--books .bento-mini-card:only-child .bento-mini-meta{margin-top:12px}.home-bento .bento-tile--books .bento-mini-card:only-child .bento-mini-excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:14px 0 0;max-width:52ch;font-family:var(--font-serif);font-size:1rem;line-height:1.65;color:var(--muted)}.home-bento .bento-tile--books .bento-mini-card:only-child .bento-mini-cta{margin-top:20px;padding:10px 18px;font-size:0.82rem}@media (max-width:860px){.home-bento{grid-template-columns:minmax(0,1fr);grid-template-areas:"topics" "bk";gap:48px;margin-top:0;padding-left:20px;padding-right:20px}.home-bento .bento-project:only-child .bento-project-body{padding:28px 28px}.home-bento .bento-tile--books .bento-mini-card:only-child{gap:28px;padding:26px 28px;grid-template-columns:150px minmax(0,1fr)}}@media (max-width:760px){.home-bento .topic-row{grid-template-columns:32px minmax(0,1fr) 18px;grid-template-areas:"num name arrow" ".   desc desc" ".   count count";row-gap:6px;padding:18px 0}.home-bento .topic-row__num{grid-area:num}.home-bento .topic-row__name{grid-area:name;font-size:1.35rem}.home-bento .topic-row__desc{grid-area:desc;font-size:0.95rem}.home-bento .topic-row__count{grid-area:count}.home-bento .topic-row__arrow{grid-area:arrow}.home-bento .bento-projects-grid{grid-template-columns:minmax(0,1fr);gap:22px}.home-bento .bento-project:only-child{display:flex;flex-direction:column}.home-bento .bento-project:only-child .bento-project-thumb{aspect-ratio:16 / 9;min-height:0;height:auto;border-right:0;border-bottom:1px solid var(--border)}.home-bento .bento-project-body,.home-bento .bento-project:only-child .bento-project-body{padding:20px 20px 22px}.home-bento .bento-project-title,.home-bento .bento-project:only-child .bento-project-title{font-size:1.3rem}.home-bento .bento-project-excerpt{font-size:0.96rem;-webkit-line-clamp:4}.home-bento .bento-project-cta{margin-top:16px}.home-bento .bento-tile--books .bento-mini-card:only-child{grid-template-columns:112px minmax(0,1fr);align-items:start;gap:20px;padding:18px}.home-bento .bento-tile--books .bento-mini-card:only-child .bento-mini-title{font-size:1.2rem}.home-bento .bento-tile--books .bento-mini-card:only-child .bento-mini-excerpt{font-size:0.92rem;-webkit-line-clamp:3;margin-top:10px}.home-bento .bento-tile--books .bento-mini-card:only-child .bento-mini-cta{margin-top:14px;padding:10px 16px}}@media (max-width:560px){.home-bento .bento-head .section-title{font-size:1.35rem}.home-bento .bento-viewall{font-size:0.64rem}.home-bento .bento-tile--books .bento-mini-grid:not(:has(.bento-mini-card:only-child)){grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 18px}}@media (max-width:359px){.home-bento .bento-tile--books .bento-mini-card:only-child{grid-template-columns:minmax(0,1fr);justify-items:start;gap:18px}.home-bento .bento-tile--books .bento-mini-card:only-child .bento-mini-thumb{width:140px}}