/* DORFic: sculpted porcelain, orange rails, chrome inlays, original oranges.
   Appearance only. All layout, type sizes, and line heights stay in styles.css. */
@import url("../fonts/oxanium/font.css");
:root {
  --font-body: "Oxanium", "Trebuchet MS", sans-serif;
  --font-display: "Oxanium", "Trebuchet MS", sans-serif;
  --font-pixel: "Oxanium", "Trebuchet MS", sans-serif;
  --cream: #f4f5f6; --cream-light: #fff; --cream-deep: #dce0e4;
  --peach: #fff; --peach-strong: #e6e9ed; --amber: #ff8e14;
  --amber-light: #ffd69e; --burnt: #e66200; --burnt-dark: #8f3100;
  --brown: #303338; --brown-soft: #60656b; --blue: #a13900;
  --visited: #735544; --line: #aeb4bc; --shadow: #30343a38;
  --df-ink: #303338; --df-muted: #60656b; --df-link: #a13900;
  --df-edge: #aeb4bc;
  --df-glass: linear-gradient(145deg, #fffffff7, #ffffffef 48%, #e8edf2f2);
  --df-reading: linear-gradient(150deg, #fffffff5, #f7f8faf2);
  --df-control: linear-gradient(180deg, #fff6e6 0%, #ffcc88 43%, #ff9d27 45%, #ed6900 82%, #ffa329 100%);
  --df-metal: linear-gradient(180deg, #fff 0%, #f3f5f7 45%, #c9cdd3 48%, #edf0f3 100%);
  --df-depth: inset 0 3px #fff, inset 3px 0 #f78a22, inset -3px -3px #bcc3cb, inset -4px -4px #fff, 0 0 0 1px #878e96, 0 0 0 2px #ffffffbf, 0 5px 9px #30343a55;
  --df-shine: inset 0 1px #fff, inset 2px 0 #ffd29b, inset 0 -3px #a13d00, inset -2px 0 #c95100, 0 0 0 1px #8c969f, 0 0 0 2px #fff, 0 3px 5px #35393f55;
}
html:has(.page-shell), body:has(.page-shell) { background-color: #d5d8dc; color: var(--df-ink); }
/* The user's orange fruit pattern remains the actual repeating page wallpaper. */
body:has(.page-shell)::before {
  background-image: url("../background.jpg");
  background-position: center top; background-repeat: repeat; background-size: 512px 512px;
}
.page-shell {
  border-color: #fff; border-radius: 0;
  background: linear-gradient(120deg, #ffffff38, #ffffff12 60%, #dce1e52e);
  box-shadow: inset 0 0 0 1px #a6adb5, 0 0 0 1px #8b929b, 0 10px 32px #30343a55;
}
.site-header {
  border-color: #fff; border-radius: 0;
  background: linear-gradient(90deg, #ff850012, #a43d0073 35%, #b6480059 62%, #ff850012), url("dorfic-scene.webp") center 42% / cover;
  box-shadow: inset 0 1px #fff, inset 0 -2px #a53200, 0 1px #858b93;
}
.site-header::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: 0;
  background: url("sculpted-header.svg") center / 100% 100% no-repeat;
}
.header-title-block h1 {
  color: #fff;
  text-shadow: 0 1px 0 #f6f6f6, 0 2px 0 #acacac, 0 3px 0 #737373, 0 4px 0 #fafafa, 0 5px 1px #3d3d3d, 0 7px 9px #652400b3;
}
.top-nav {
  border-color: #aeb4bc; background: var(--df-metal); border-radius: 0;
  box-shadow: inset 0 1px #fff, inset 0 -1px #fff, 0 2px 4px #52596155;
}
.top-nav li { border-radius: 0; background: linear-gradient(#fff, #eceff3 45%, #c5cbd1 49%, #eef1f5); box-shadow: inset 0 0 0 1px #8d969f, inset 0 1px #fff; }
.top-nav li:has(a[aria-current="page"]) { background: var(--df-control); box-shadow: var(--df-shine); }
.top-nav :is(a,a:visited) { color: #34383e; background: transparent; text-shadow: 0 1px #fff8; }
.top-nav li:hover { background: linear-gradient(#fff7ec, #ffd9a5 44%, #ffa941 48%, #ffc578); }
.top-nav a[aria-current="page"] { color: #532000; background: transparent; }
.top-nav li::before, .icon-list li::before { border-radius: 0; border-color: #e77a06; background: radial-gradient(circle at 30% 22%, #fff 0%, #ffe8c2 16%, #ff970e 45%, #bf4200 83%, #ffbe55 100%); box-shadow: 0 0 0 1px #fff7, 0 1px 2px #5558; }
.stamp-top-strip { border-color: #aeb4bc; background: linear-gradient(#fff8, #e2e7edbc); box-shadow: inset 0 1px #fff, inset 0 -1px #fff; }
.sidebar { border-color: #b6bcc3; background: linear-gradient(90deg, #ffffff63, #dce1e51c); }
.main-content { background-color: transparent !important; }
:is(.side-box,.content-box,.research-strip,.welcome-panel,.page-panel,.course-card,.note-card,.single-publication,.pub-entry,.journal-entry,.link-tile,.audio-card,.song-video,.contact-card,.about-topic-widget) {
  color: var(--df-ink); border-color: #fff !important; border-radius: 0;
  background: var(--df-glass) !important; background-clip: padding-box;
  box-shadow: var(--df-depth) !important;
}
:is(.side-box,.content-box) {
  background: radial-gradient(ellipse at 100% 0%, #fff 0%, #fff0 52%), linear-gradient(135deg, #fff0 64%, #fff9 65%, #fff0 68%), var(--df-glass) !important;
}
.welcome-panel, .page-panel {
  border-radius: 0;
  background: radial-gradient(ellipse at 0% 0%, #fff, #fff0 58%), linear-gradient(135deg, #fffffff5, #ffffffeb 75%, #e2e7eee6) !important;
}
.research-strip { border-radius: 0; }
:is(.side-box h2,.content-box > h2,.research-strip > h2,.page-panel > h2,.link-tile h3,.audio-card h3) {
  color: #3f2c1e !important; border-color: #e17112 !important; border-radius: 0;
  background: radial-gradient(ellipse at 50% -60%, #fff, #fff0 70%), linear-gradient(180deg, #fff2d9, #ffc880 44%, #ff951c 47%, #ffa94b 85%, #ffe1b5) !important;
  text-shadow: 0 1px 0 #fff9;
  box-shadow: inset 0 1px #fff, inset 0 -1px #ffffffab, 0 1px 3px #7c380b4d;
}
.page-panel > h2 { border-radius: 0; }
:is(.welcome-copy h2,.page-panel h3,.page-intro h2,.entry-title,.course-card h3,.note-card h3) { color: #9d3900 !important; text-shadow: 0 1px #fff; }
:is(.welcome-copy p,.page-panel p,.page-panel li,.counter-note,.authors,.course-term,.note-card p,.news-list a,.office-address) { color: var(--df-ink) !important; }
.interest-card { border-color: #b7bdc4; background: linear-gradient(160deg, #fffffff5, #f5f6f8ed) !important; box-shadow: inset 0 1px #fff, inset 0 -2px #d4d8df; }
:is(.about-topic-display,.publication-abstract,.asset-grid,.note-list,.about-topic-panel,.cv-content-only) { color: var(--df-ink); border-color: #b7bdc4; background: var(--df-reading) !important; background-clip: padding-box; }
.publication-abstract { border-radius: 0; box-shadow: inset 0 2px 5px #595f6a26, 0 1px #fff; }
:is(.portrait-frame,.small-portrait) {
  border-color: #fff; border-radius: 0;
  background: linear-gradient(135deg, #fff 0%, #d7dbe0 28%, #fff 32%, #a3a9b1 51%, #f8faff 56%, #d7dce1 80%, #fff 100%);
  box-shadow: inset 0 0 0 1px #8c939c, 0 0 0 1px #858c95, 0 0 0 3px #fff8, 0 7px 14px #3d444b66;
}
.portrait-frame img { border-color: #8f959d; border-radius: 0; }
:is(.project-preview img,.home-project-thumbnail img,.song-video,.cv-pdf-viewer) { border-color: #fff; border-radius: 0; background-color: #fff; background-clip: padding-box; box-shadow: 0 0 0 1px #969ea8, 0 3px 8px #3b414950; }
.song-video iframe { border-radius: 0; }
.song-video figcaption { border-color: #d0d5db; color: var(--df-ink); background: var(--df-metal); border-radius: 0; }
.audio-card audio { color-scheme: light; border-radius: 0; background: #eef0f3; box-shadow: 0 0 0 1px #a6aeb7, 0 2px 5px #4b525a40; }
:is(.old-button,.music-button,.course-open-link,.note-open-link,.theme-toggle,.about-topic-button,button,input[type="submit"],input[type="button"]) {
  color: #4f2100 !important; border-color: #fff5 !important; border-radius: 0;
  background: var(--df-control) !important; box-shadow: var(--df-shine) !important;
  text-shadow: 0 1px #ffe4be;
}
.about-topic-widget { border-radius: 0; }
.about-topic-button { border-radius: 0; }
.about-topic-button:first-child { border-radius: 0; }
.about-topic-button:last-child { border-radius: 0; }
.about-topic-display { border-radius: 0; }
:is(.old-button,.music-button,.course-open-link,.note-open-link,.theme-toggle,button):hover {
  background: linear-gradient(#fff9ee, #ffdaa5 43%, #ffb646 45%, #ff8a00 84%, #ffca74) !important;
  box-shadow: inset 0 1px #fff, inset 0 0 0 1px #fff8, 0 0 0 1px #f4870a, 0 0 13px #ffb75db3 !important;
}
button[aria-pressed="true"], .about-topic-button[aria-pressed="true"], button:active {
  background: linear-gradient(#d55700, #ffae47 42%, #ffbf70 45%, #fff0db) !important;
  box-shadow: inset 0 2px 5px #71320e66, inset 0 -1px #fff !important;
}
:is(button,input,select,textarea):disabled { color: #777d84 !important; background: var(--df-metal) !important; box-shadow: inset 0 1px #fff !important; }
:is(input,select,textarea) { font-family: var(--font-body); color: var(--df-ink); border-color: #aab2bc; border-radius: 0; background: linear-gradient(#edf0f3, #fff 28%); box-shadow: inset 0 2px 5px #444c5433, 0 1px #fff; }
:is(input,textarea)::placeholder { color: #687079; }
:is(.tag,.skill-tag-cloud span,.about-pill-row span,.course-term) { color: #3d4146; border-color: #a2aab4; border-radius: 0; background: var(--df-metal); box-shadow: inset 0 1px #fff, 0 1px 3px #5b626d33; }
.visitor-count { color: #ffd8a2; border-color: #aab0b8; border-radius: 0; background: linear-gradient(#60656c 0%, #292c31 40%, #16191d 44%, #353a40); box-shadow: inset 0 1px #fff8, inset 0 -1px #fff3, 0 0 0 1px #fff; text-shadow: 0 0 8px #ff9800; }
.visitor-count[data-state="unavailable"] { color: #ffd8a2; }
.entry-summary { border-radius: 0; }
.entry-summary:hover { background: linear-gradient(#fff3e3, #ffdcaab3); }
.entry-accordion[open] > .entry-summary { background: linear-gradient(#fff5e5, #ffe0b9); border-radius: 0; box-shadow: inset 0 1px #fff, inset 0 -1px #e98632; }
.entry-summary::after { color: #ce5b00; text-shadow: 0 1px #fff; }
.entry-meta { color: var(--df-muted) !important; }
.old-table :is(th,td) { color: var(--df-ink); border-color: #b7bdc4; background: #fafbfc; }
.old-table th { background: var(--df-metal); }
.old-table tr:nth-child(even) td { background: #edf0f3; }
.site-footer { border-color: #b0b7bf; border-radius: 0; background: linear-gradient(#ffffffeb, #d4dae2eb 48%, #f9fbfce8) !important; box-shadow: inset 0 1px #fff, inset 0 -1px #fff; }
.footer-top { border-color: #b7bdc4; }
.asset-grid { border-radius: 0; }
:is(.asset-grid img,.stamp-track img,.footer-button img) { border-color: #fff; box-shadow: 0 0 0 1px #a8afb7, 0 2px 4px #3d454c40; }
.asset-grid img:hover { filter: none; }
a { color: var(--df-link); }
a:visited { color: #735544; }
a:hover { color: #8d2a00; background-color: #ffe0b5; }
.site-menu a { border-radius: 0; }
.site-menu a[aria-current="page"] { color: #532000; background: var(--df-control); box-shadow: var(--df-shine); text-shadow: 0 1px #ffe4be; }
:is(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline: 2px solid #aa3c00 !important; outline-offset: 2px; box-shadow: 0 0 0 4px #fff9 !important; }
::selection { color: #fff; background: #a23a00; }
:is(.changelog-list,.about-topic-display) { scrollbar-color: #f58715 #e1e5e9; }
@supports (backdrop-filter: blur(1px)) { .top-nav { backdrop-filter: blur(5px); } }
html.dark-mode {
  --df-ink: #f0f2f4; --df-muted: #c8cdd3; --df-link: #ffbc71;
  --df-glass: linear-gradient(145deg, #525860f5, #242930f5 55%, #343a43ef);
  --df-reading: linear-gradient(145deg, #363c44f7, #20262df7);
  --df-depth: inset 0 1px #ffffff88, inset 0 -1px #a4aab34d, 0 0 0 1px #727a84, 0 6px 13px #13171cb3;
}
html.dark-mode .page-shell { background: linear-gradient(120deg, #252a3066, #171c2238); }
html.dark-mode .site-header { background: linear-gradient(90deg, #25292f55, #25292f9c 35%, #25292f77 65%, #30343a44), url("dorfic-scene.webp") center 42% / cover; }
html.dark-mode .site-header::after { background: url("sculpted-header.svg") center / 100% 100% no-repeat; opacity: .7; }
html.dark-mode .header-title-block h1 { color: #fff; }
html.dark-mode :is(.side-box,.content-box) { background: radial-gradient(ellipse at 100% 0%, #ffffff1c, #fff0 52%), linear-gradient(135deg, #fff0 64%, #ffffff1f 65%, #fff0 68%), var(--df-glass) !important; }
html.dark-mode .course-term { color: #303338 !important; }
html.dark-mode .sidebar { background: #30363e55; }
html.dark-mode :is(.page-panel,.welcome-panel,.interest-card) { background: var(--df-reading) !important; }
html.dark-mode :is(.welcome-copy h2,.page-panel h3,.page-intro h2,.entry-title,.course-card h3,.note-card h3) { color: #ffbc71 !important; text-shadow: 0 1px #171b21; }
html.dark-mode :is(.top-nav,.stamp-top-strip,.site-footer) { background: linear-gradient(#6a727c, #303740 45%, #20262e 48%, #424a54) !important; }
html.dark-mode .top-nav :is(a,a:visited) { color: #34383e; }
html.dark-mode a { color: var(--df-link); }
html.dark-mode a:visited { color: #ffcc93; }
html.dark-mode a:hover { color: #fff; background-color: #9e4b10; }
html.dark-mode :is(.top-nav,.site-menu) a[aria-current="page"] { color: #532000; }
html.dark-mode :is(input,textarea,select) { color: var(--df-ink); background: #242a32; border-color: #8d98a5; }
html.dark-mode .entry-summary:hover, html.dark-mode .entry-accordion[open] > .entry-summary { background: linear-gradient(#5f5346, #343a43); }
html.dark-mode .old-table :is(th,td) { color: var(--df-ink); background: #353d47; }
html.dark-mode .old-table th { color: #303338; background: var(--df-metal); }
html.dark-mode .old-table tr:nth-child(even) td { background: #262e38; }
html.dark-mode :is(.tag,.course-term) { color: #3d4146; background: var(--df-metal); }
html.dark-mode :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline-color: #ffc47b !important; box-shadow: 0 0 0 4px #222831b3 !important; }

/* Porcelain slabs and mechanical frames: square edges, layered rails, inset gloss. */
.page-shell {
  background: linear-gradient(120deg, #ffffff59, #ffffff1a 60%, #dce1e538);
  box-shadow: inset 0 0 0 1px #8b929a, 0 0 0 1px #656c74, 0 0 0 3px #ffffffb3, 0 10px 24px #30343a66;
}
.site-header { box-shadow: inset 0 3px #fff, inset 0 -4px #f77312, inset 0 -5px #ffddba, 0 1px #626b76; }
.header-title-block h1 {
  color: #fff;
  text-shadow: 0 1px #fff, 1px 2px #c4c9ce, 2px 3px #fff, 3px 4px #737b85, 4px 5px #424b56, 6px 7px 0 #8e3700, 8px 9px 12px #5b270099;
}
.top-nav {
  background: linear-gradient(#fff 0 44%, #c8cfd6 45% 51%, #f9fbfc 52% 83%, #ed7b22 84% 100%);
  box-shadow: inset 0 1px #fff, inset 0 -1px #d95300, 0 3px 7px #3b424959;
}
.top-nav li {
  background: linear-gradient(135deg, #ffffffa6 0 7%, #fff0 7% 91%, #8c949e40 91%), var(--df-metal);
  box-shadow: inset 0 1px #fff, inset 1px 0 #fff, inset -1px 0 #8e969f, inset 0 -2px #7d8792;
}
.top-nav li:has(a[aria-current="page"]) { background: var(--df-control); box-shadow: inset 0 1px #fff, inset 0 -3px #ad4300, inset 1px 0 #fff, inset -1px 0 #934a13; }
.top-nav li::before, .icon-list li::before {
  border-radius: 0;
  background: linear-gradient(135deg, #fff 0 25%, #ffd9a7 26% 48%, #ff8917 49% 75%, #b44400 76%);
}
.stamp-top-strip { background: linear-gradient(#f8fafcbb, #adb6c193 50%, #ffffffe6); box-shadow: inset 0 1px #fff, inset 0 -2px #8d97a1; }
.sidebar { background: linear-gradient(90deg, #e1e6ebb3, #ffffff33 18% 93%, #fa7b22 94% 96%, #fff 97%); }
:is(.side-box,.content-box,.page-panel,.welcome-panel,.research-strip) {
  background: url("chrome-inlays.svg") right bottom / 360px 180px no-repeat, var(--df-glass) !important;
}
:is(.welcome-panel,.page-panel) { box-shadow: inset 0 3px #fff, inset 3px 0 #ff851c, inset -3px -3px #b2bbc5, inset -4px -4px #fff, 0 0 0 1px #8b949f, 0 0 0 2px #ffffffb3, 0 5px 10px #30343a4d !important; }
:is(.side-box h2,.content-box > h2,.research-strip > h2,.page-panel > h2,.link-tile h3,.audio-card h3) {
  background: linear-gradient(135deg, #ffffff9c 0 2%, transparent 2% 93%, #bd4e06aa 93% 94%, #fff7 94% 95%, transparent 95%), linear-gradient(#ffd49f 0%, #ffad55 44%, #f47715 45%, #ff9a38 86%, #ffc285 87% 100%) !important;
  color: #35291f !important;
  box-shadow: inset 0 2px #fff2d9, inset 0 -2px #c6560c, inset -1px 0 #bb5b17, 0 1px #fff, 0 2px 3px #454b5140;
}
.interest-card { background: linear-gradient(135deg, #fff 0 88%, #e2e7ed 88% 93%, #fafbfd 93%) !important; box-shadow: inset 0 2px #fff, inset 0 -2px #c4cbd3, inset 1px 0 #fff; }
:is(.course-card,.note-card,.single-publication,.pub-entry,.journal-entry,.link-tile,.audio-card,.contact-card) {
  background: linear-gradient(135deg, #fffffff5 0 88%, #e3e8ee 88% 93%, #fff 93%) !important;
}
:is(.portrait-frame,.small-portrait) {
  background: linear-gradient(135deg, #fff 0 13%, #a4adb8 14%, #fff 15% 35%, #c2cad2 38%, #69737f 48%, #fff 53% 84%, #bcc5ce 85% 92%, #fff 94%);
  box-shadow: inset 0 0 0 1px #8793a0, inset 0 3px #fff, inset 0 -3px #929da9, 0 0 0 1px #87909b, 0 0 0 3px #fff, 0 7px 12px #333c4855;
}
.portrait-frame img { box-shadow: 0 0 0 1px #fff, 0 0 0 2px #7b8795; }
:is(.old-button,.music-button,.course-open-link,.note-open-link,.theme-toggle,.about-topic-button,button,input[type="submit"],input[type="button"]) {
  background: linear-gradient(135deg, #fff9 0 4%, #fff0 4% 94%, #98380080 94%), var(--df-control) !important;
}
:is(.tag,.skill-tag-cloud span,.about-pill-row span,.course-term) { box-shadow: inset 0 1px #fff, inset 0 -2px #98a3ae, 0 0 0 1px #fff, 0 2px 3px #434b5340; }
.site-menu a[aria-current="page"] { background: linear-gradient(135deg, #fff7 0 5%, #fff0 5%), var(--df-control); box-shadow: inset 3px 0 #a24200, inset 0 1px #fff, inset 0 -2px #d7670d, 0 1px 2px #535b6366; }
.entry-summary { background: linear-gradient(135deg, #fff0 0 94%, #dfe5eb 94% 97%, #fff0 97%); }
.entry-accordion[open] > .entry-summary { box-shadow: inset 3px 0 #f87d20, inset 0 1px #fff, inset 0 -2px #d0844a; }
.visitor-count { box-shadow: inset 0 2px #9eabb8, inset 2px 0 #8995a2, inset 0 -2px #080c11, 0 0 0 1px #fff, 0 0 0 2px #778391; }
.site-footer { background: linear-gradient(#fff 0 47%, #c1c9d2 48% 51%, #eef2f6 52% 92%, #f58930 93%) !important; box-shadow: inset 0 3px #fff, inset 0 -1px #bc5105; }
html.dark-mode :is(.side-box,.content-box,.page-panel,.welcome-panel,.research-strip) { background: url("chrome-inlays.svg") right bottom / 360px 180px no-repeat, var(--df-reading) !important; }
html.dark-mode :is(.course-card,.note-card,.single-publication,.pub-entry,.journal-entry,.link-tile,.audio-card,.contact-card,.interest-card) { background: linear-gradient(135deg, #30363df7 0 88%, #414a55 88% 93%, #262c34 93%) !important; }


/* Citrus banner surfaces; supplied artwork is defined in branding/frame.css. */
.site-header {
  background: linear-gradient(90deg, #ffffff73, #fffffff2 35% 65%, #ffffff73), url("../background.jpg") center / 512px 512px;
  box-shadow: inset 0 2px #fff, inset 0 -3px #ff9b35, inset 0 -4px #fff, 0 1px #aab1b9;
}
.site-header::after { background: linear-gradient(160deg, #fff0 28%, #ffffff73 28.5% 29%, #fff0 29.5%), linear-gradient(#ffffff80, #ffffff00 50%); }
.header-title-block h1 { color: transparent !important; text-shadow: none !important; }
html.dark-mode .site-header { background: linear-gradient(90deg, #30353bb3, #343b43ed 35% 65%, #30353bb3), url("../background.jpg") center / 512px 512px; }
html.dark-mode .site-header::after { background: linear-gradient(#ffffff30, #ffffff00 50%); opacity: 1; }

/* Keep the approved Oxanium metrics and baseline wrapping unchanged. */
.entry-title { letter-spacing: .12em; }
@media (max-width: 760px) { .welcome-copy p { letter-spacing: -.044em; } .interest-card p { letter-spacing: -.012em; } }

/* Preference overrides must come after all decorative surfaces. */
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
@media (prefers-reduced-transparency: reduce) { .top-nav { backdrop-filter: none; } .page-shell { background-color: #f0f2f4; } html.dark-mode .page-shell { background-color: #252b33; } }
@media (forced-colors: active) { .page-shell,.site-header,.side-box,.page-panel,.content-box,button { background: Canvas !important; color: CanvasText !important; box-shadow: none !important; } a { color: LinkText !important; } :focus-visible { outline-color: Highlight !important; } }

/* Text fallback for printing and OS-controlled contrast modes. */
@media print, (forced-colors: active) {
  .header-title-block::after, .side-box h2::after { display: none !important; }
  .header-title-block h1, .side-box:is(.site-menu,.love-box) > h2, .side-box:has(> .logo-list) > h2 { color: CanvasText !important; text-shadow: none !important; }
}
