@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');

:root{--paper:#fbf8f5;--ink:#262026;--muted:#6e6268;--wine:#741d38;--red:#aa183d;--gold:#b48b58;--line:#e5d8d6;font-family:'DM Sans',Arial,sans-serif;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--paper);color:var(--ink);font-size:16px;line-height:1.65}
a{color:inherit;text-decoration:none}
a:hover{color:var(--red)}
a:focus-visible{outline:2px solid var(--red);outline-offset:4px}
.skip-link{position:absolute;left:12px;top:-80px;z-index:20;background:var(--ink);color:#fff;padding:8px 14px}
.skip-link:focus{top:12px}
.site-shell{position:relative;z-index:1;width:min(calc(100% - 72px),1160px);min-height:100vh;margin:auto;display:flex;flex-direction:column}
.site-header{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:22px;font-size:14px}
.wordmark{font:700 16px 'Playfair Display',Georgia,serif;white-space:nowrap}
nav{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:12px 25px;font-weight:600}
nav a{transition:color .2s ease}
nav a[aria-current="page"]{color:var(--red)}
.nav-icon{font-size:21px;color:var(--red)}
.nav-academic{border:1px solid var(--line);padding:8px 13px;border-radius:5px}
.nav-academic span{color:var(--red);margin-left:5px}

/* Crimson flower and gold detailing echo Hiro's hair ornament and uniform. */
.home-page{overflow-x:hidden;background:radial-gradient(circle at 50% 35%,rgba(170,24,61,.13),transparent 35%),radial-gradient(circle at 3% 96%,rgba(38,32,38,.09),transparent 26%),linear-gradient(155deg,#fffcf9 10%,#f7ebe9 55%,#fbf8f5 100%)}
.home-page::before{content:"";position:fixed;right:-4vw;top:7vh;width:min(43vw,500px);aspect-ratio:1;background:url('hiro-flower.svg') center/contain no-repeat;opacity:.43;pointer-events:none}
.home-page::after{content:"";position:fixed;left:-130px;bottom:-170px;width:370px;height:370px;border:1px solid rgba(180,139,88,.45);border-radius:50%;box-shadow:0 0 0 40px rgba(180,139,88,.055),0 0 0 110px rgba(116,29,56,.035);pointer-events:none}
.hiro-signature{position:absolute;right:10px;top:67%;color:rgba(116,29,56,.5);font-size:12px;font-weight:700;letter-spacing:.27em;text-transform:uppercase;writing-mode:vertical-rl}
.home-page .site-header{border-bottom:1px solid rgba(116,29,56,.17)}
.home-main{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:clamp(95px,15vh,170px) 16px 92px}
.profile-avatar{display:block;width:150px;height:150px;object-fit:cover;border-radius:50%;border:6px solid #fffaf6;outline:2px solid var(--gold);box-shadow:0 12px 34px rgba(85,24,47,.22)}
.home-main h1{font:600 clamp(2.6rem,4.4vw,3.5rem)/1.2 'Playfair Display',Georgia,serif;letter-spacing:-.04em;margin:22px 0 12px}
.home-tagline{max-width:640px;font:600 clamp(1rem,1.7vw,1.17rem)/1.7 'Playfair Display',Georgia,serif;margin:0}
.social-links{display:flex;gap:11px;margin-top:23px}
.social-links a{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--wine);color:#fff;border:1px solid rgba(180,139,88,.6);box-shadow:0 3px 8px rgba(85,24,47,.14);transition:transform .2s ease,background .2s ease}
.social-links a:hover{background:var(--red);color:#fff;transform:translateY(-3px)}
.social-links svg{display:block;width:21px;height:21px}

.site-footer{padding:28px 0 32px;color:var(--muted);font-size:13px}
.footer-links{display:flex;gap:25px;margin-bottom:20px}
.footer-bottom{display:flex;justify-content:space-between;gap:18px}
.blog-footer{margin-top:auto;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px}

.inner-main{flex:1;width:min(100%,780px);margin:0 auto;padding:76px 0 95px}
.blog-heading{border-bottom:2px solid var(--wine);padding-bottom:20px;margin-bottom:26px}
.blog-heading h1{font:600 clamp(2.5rem,5vw,3.2rem)/1.2 'Playfair Display',Georgia,serif;margin:0;letter-spacing:-.035em}
.post-list{display:grid;gap:14px}
.blog-entry{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px 20px;padding:22px 26px;background:#fffdfb;border:1px solid var(--line);border-radius:10px;box-shadow:0 7px 26px rgba(69,35,44,.035);transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}
.blog-entry:hover{border-color:rgba(170,24,61,.48);transform:translateY(-2px);box-shadow:0 10px 28px rgba(69,35,44,.08)}
.post-date{grid-column:1/-1;color:var(--muted);font-size:13px;line-height:1.4}
.blog-entry-content{display:flex;flex-direction:column;gap:4px}
.blog-entry strong{font-size:1.26rem;line-height:1.35;color:var(--ink)}
.blog-entry-content>span{font-size:15px;color:var(--muted)}
.blog-entry-arrow{font-size:22px;color:var(--red);align-self:center}

.article{max-width:720px;margin:auto}
.back-link{font-size:14px;color:var(--red);font-weight:600}
.article-header{padding:48px 0 28px;border-bottom:1px solid var(--line)}
.article-date{display:block;color:var(--muted);font-size:14px;margin-bottom:11px}
.article-header h1{font:600 clamp(2.2rem,4.2vw,3.2rem)/1.2 'Playfair Display',Georgia,serif;letter-spacing:-.03em;margin:0}
.article-body{font-size:1.07rem;line-height:1.9;padding:19px 0 40px}
.article-body p{margin:1.25em 0}
.article-body h2,.article-body h3{line-height:1.35;margin:1.8em 0 .6em}
.article-body h2{font-size:1.6rem}.article-body h3{font-size:1.28rem}
.article-body a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.article-body img{max-width:100%;height:auto}
.post-figure{margin:32px 0 40px}
.post-figure img{display:block;width:min(100%,560px);height:auto;border-radius:12px;border:1px solid var(--line)}
.post-figure figcaption{margin-top:9px;color:var(--muted);font-size:13px}
.article-body pre{overflow-x:auto;padding:18px;background:#f0e9e7;border-radius:5px;font-size:.9rem;line-height:1.55}
.article-body :not(pre)>code{padding:.12em .3em;background:#f0e9e7;border-radius:3px;font-size:.9em}
.article-body blockquote{margin:1.5em 0;padding-left:1.2em;border-left:3px solid var(--red);color:var(--muted)}
.article-body li{margin:.4em 0}
.article-body table{display:block;overflow-x:auto;border-collapse:collapse;max-width:100%}
.article-body th,.article-body td{border:1px solid var(--line);padding:.45em .7em}
.article-end{border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;font-size:14px;color:var(--red);font-weight:600}

.media-embed{max-width:720px;margin:20px 0 32px}
.media-embed iframe{display:block;width:100%;border:0;border-radius:12px;background:#f0e9e7}
.video-embed iframe{aspect-ratio:16/9;height:auto;min-height:200px}
.embed-source{display:inline-block;margin-top:9px;font-size:13px;font-weight:600}
.article-body .embed-source{color:var(--red);text-decoration:none}
.article-body .embed-source:hover{text-decoration:underline}
.amazon-embed{display:flex;align-items:center;gap:15px;padding:17px 20px;border:1px solid var(--line);border-radius:12px;background:#fffdfb;text-decoration:none!important;box-shadow:0 7px 26px rgba(69,35,44,.035)}
.amazon-embed:hover{border-color:var(--red)}
.amazon-open{width:42px;height:42px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--wine);color:#fff;font-size:22px}
.amazon-embed span:last-child{display:flex;flex-direction:column;gap:2px}
.amazon-embed strong{color:var(--ink);font-size:15px}
.amazon-embed small{color:var(--muted);font-size:12px}
.x-embed{max-width:550px}
.x-embed .twitter-tweet{margin:0!important}
.x-embed blockquote{padding:18px;border:1px solid var(--line);border-radius:12px;background:#fffdfb}

@media(max-width:760px){.site-shell{width:min(calc(100% - 36px),1160px)}.site-header{min-height:75px;flex-wrap:wrap;padding:14px 0;gap:10px}nav{gap:16px;font-size:13px}.home-page::before{right:-85px;top:120px;width:330px;opacity:.25}.hiro-signature{display:none}.home-main{padding-top:105px}.inner-main{padding:58px 0 75px}}
@media(max-width:480px){.site-header{align-items:flex-start;flex-direction:column}nav{width:100%;justify-content:space-between;gap:8px}.nav-academic{padding:5px 8px}.home-main{padding-top:80px}.profile-avatar{width:126px;height:126px}.footer-links{flex-wrap:wrap;gap:8px 18px}.footer-bottom,.blog-footer{flex-direction:column;align-items:flex-start;gap:8px}.blog-entry{padding:18px 19px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
