:root {
  color-scheme: dark;
  --ink: #101312;
  --ink-soft: #191d1b;
  --paper: #e9e0cf;
  --paper-muted: #aaa99c;
  --wine: #74263c;
  --wine-light: #d18b98;
  --teal: #30c4a0;
  --photo-blue: #267e94;
  --rule: rgba(236, 228, 210, .2);
  --grain-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E");
  --display: "Roboto Slab", Georgia, serif;
  --body: "Barlow Condensed", "Arial Narrow", sans-serif;
  --mono: "IBM Plex Mono", Consolas, monospace;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  scroll-behavior: smooth;
}

* { box-sizing: border-box; }
img,svg,video { max-width: 100%; }
body { margin: 0; background: #101514; background-image: radial-gradient(ellipse at 12% 21%,rgba(20,106,89,.15),transparent 38%),radial-gradient(ellipse at 88% 50%,rgba(106,30,54,.15),transparent 35%),radial-gradient(ellipse at 38% 88%,rgba(15,83,70,.12),transparent 38%); background-attachment: fixed; color: var(--paper); font-family: var(--body); font-size: clamp(15px,.9vw,17px); line-height: 1.65; }
a { color: inherit; }
a:focus-visible { outline: 2px solid var(--teal); outline-offset: 5px; }
::selection { background: var(--wine); color: var(--paper); }
.skip-link { position: fixed; z-index: 60; top: 8px; left: 8px; padding: 10px 14px; color: var(--ink); background: var(--paper); transform: translateY(-160%); font: 500 12px var(--mono); }
.skip-link:focus { transform: translateY(0); }
.progress-track { height: 3px; position: fixed; z-index: 50; inset: 0 0 auto 0; background: transparent; }
.progress-track span { display: block; height: 100%; width: 0; background: var(--wine-light); }
.topline { height: 72px; position: relative; z-index: 30; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(24px,4vw,72px) 0 calc(68px + clamp(20px,3vw,56px)); background: #0b0b0a; border-bottom: 1px solid rgba(236,228,210,.12); }
.brand { min-width: 235px; display: flex; gap: 11px; align-items: center; text-decoration: none; }
.portrait-frame { display: block; width: 43px; height: 43px; flex: none; overflow: hidden; border: 2px solid var(--wine-light); border-radius: 50%; box-shadow: 0 0 0 3px rgba(116,38,60,.38); }
.topline .portrait-frame { display:none; }
.portrait { display: block; width: 100%; height: 100%; object-fit: cover; }
.brand-name { color: var(--paper); font: 600 10px/1.13 var(--mono); letter-spacing: .04em; }
.full-name { white-space: nowrap; }
.name-highlight { display: inline-block; position:relative; padding: 0 .09em .055em; border-radius: 2px; color: var(--paper); background: linear-gradient(135deg,rgba(132,46,68,.98),rgba(103,29,49,.96)); box-shadow: .045em .05em 0 rgba(116,38,60,.9),.09em .095em 0 rgba(48,196,160,.52); box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.topline-note, .topline-contact { font: 500 9px var(--mono); letter-spacing: .12em; }
.topline-note { color: var(--paper-muted); }
.signal-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; margin: 0 9px 1px 0; background: var(--teal); box-shadow: 0 0 10px var(--teal); }
.topline-divider { padding: 0 10px; color: var(--wine-light); }
.topline-contact { color: var(--paper); text-decoration: none; border: 1px solid rgba(236,228,210,.24); padding: 10px 12px; transition: background .2s,color .2s; }
.topline-contact:hover { color: var(--paper); background: var(--wine); border-color: var(--wine); }
.topline-contact span { color: var(--wine-light); padding-left: 9px; font-size: 14px; }

.side-rail { width: 68px; position: fixed; z-index: 35; inset: 0 auto 0 0; display: flex; flex-direction: column; align-items: center; gap: 8px; padding-top: 72px; background: #0b0b0a; border-right: 1px solid rgba(236,228,210,.12); }
.side-rail::before { content: ""; position: absolute; inset: 0 0 auto; height: 72px; background: #0b0b0a; border-bottom: 1px solid rgba(236,228,210,.12); pointer-events: none; }
.rail-logo { display: block; width: 39px; height: 39px; margin: 17px 0 12px; overflow: hidden; border: 1px solid var(--wine-light); border-radius: 50%; background: var(--wine); }
.rail-logo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rail-link { position: relative; width: 100%; min-height: 51px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; color: #857f73; text-decoration: none; font: 500 7px/1 var(--mono); letter-spacing: .05em; transition: color .2s; }
.rail-link:hover, .rail-link.active { color: var(--paper); }
.rail-link.active::before { content: ""; position: absolute; left: 0; width: 2px; height: 31px; background: var(--wine-light); }
.rail-icon { color: var(--teal); font: 19px/1 Georgia, serif; }
.rail-bottom { margin-top: auto; padding-bottom: 18px; display: grid; justify-items: center; gap: 10px; color: #7e796e; text-align: center; font: 400 7px/1.5 var(--mono); letter-spacing: .04em; }
.rail-rule { width: 20px; border-top: 1px solid var(--wine); }
main { margin-left: 68px; overflow: hidden; }
main > section[id] { scroll-margin-top: 84px; }

.hero { min-height: max(690px, calc(100svh - 72px)); position: relative; display: flex; align-items: center; padding: clamp(48px,6vh,92px) clamp(28px,7vw,116px); isolation: isolate; overflow: hidden; background: #121716; }
.hero-city, .hero-overlay, .contact-city, .contact-shade { position: absolute; z-index: -2; inset: 0; overflow: hidden; }
.hero-city img, .contact-city img { width: 100%; height: 100%; object-fit: cover; object-position: center 58%; filter: grayscale(.88) contrast(1.06) brightness(.75); opacity: .83; }
.hero-overlay { z-index: -1; background: linear-gradient(90deg, rgba(12,13,13,.9) 0%, rgba(12,13,13,.62) 48%, rgba(12,13,13,.18) 100%), linear-gradient(0deg, rgba(10,11,11,.9), transparent 55%, rgba(10,11,11,.2)); }
.hero::before, .detail-hero::after { content: ""; position: absolute; z-index: 0; inset: 0; pointer-events: none; opacity: .035; mix-blend-mode: soft-light; background: var(--grain-image) repeat; background-size: 180px 180px; }
.hero::after { content: ""; pointer-events: none; position: absolute; inset: 0; z-index: 2; opacity: .09; mix-blend-mode: soft-light; background-image: radial-gradient(ellipse at 73% 32%,rgba(21,139,112,.2),transparent 32%),radial-gradient(ellipse at 25% 85%,rgba(120,30,56,.28),transparent 48%); }
.hero-copy { width: min(100%, 1320px); position: relative; z-index: 3; margin-inline: auto; }
.hero-kicker, .section-marker, .overline, .hero-caption, .hero-tags, .profile-badge, .fact-label, .city-strip > div > span, .city-strip small, .card-meta, .text-link, .hobby-index, .piano-label, .chart-label, .design-stamp, .photo-card figcaption, .photo-tip, .footer, .contact-links > a > span { font-family: var(--mono); }
.hero-kicker { display: flex; align-items: center; gap: 13px; margin-bottom: 25px; color: var(--paper-muted); font-size: 9px; letter-spacing: .14em; }
.hero-kicker .index { color: var(--wine-light); }
.kicker-line { width: 44px; border-top: 1px solid var(--wine-light); }
.hero h1 { margin: 0; color: var(--paper); font: 800 clamp(4.2rem,9vw,10rem)/.78 var(--display); letter-spacing: -.035em; text-transform: uppercase; text-shadow: 7px 9px 0 rgba(12,8,7,.88), 10px 12px 0 rgba(116,38,60,.82); -webkit-text-stroke: .4px var(--paper); }
.title-line { display: block; white-space: nowrap; }
.title-line:first-child { transform: rotate(-1.5deg) translateX(-.02em); transform-origin: left center; }
.title-last { margin-left: .22em; font-size: .79em; transform: rotate(-1.5deg) translateY(.1em); text-shadow: 5px 7px 0 rgba(12,8,7,.88), 8px 10px 0 rgba(48,196,160,.5); }
.title-line .name-highlight { padding:0 .08em .05em;border-radius:2px; }
.hero-bottom { width: min(770px, 94%); display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 52px 0 0 5px; }
.hero-intro { max-width: 540px; margin: 0; color: #d2ccbe; font-size: clamp(1rem,1.5vw,1.2rem); line-height: 1.6; }
.round-link { width: 78px; height: 78px; flex: none; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 3px; border: 1px solid rgba(236,228,210,.42); border-radius: 50%; color: var(--paper); text-decoration: none; font: 400 7px/1.5 var(--mono); letter-spacing: .08em; text-align: center; transition: background .2s,color .2s,transform .2s; }
.round-link b { font: 400 18px/1 var(--body); color: var(--wine-light); }
.round-link:hover { background: var(--wine); color: var(--paper); transform: translateY(3px); border-color: var(--wine-light); }
.hero-tags { display: flex; flex-wrap: wrap; gap: 8px; max-width: 840px; margin: 33px 0 0 5px; }
.hero-tags a { display:inline-flex;align-items:center;padding:8px 11px;border:1px solid rgba(236,228,210,.24);border-radius:3px;color:var(--paper-muted);background:rgba(12,19,17,.35);text-decoration:none;font-size:clamp(7px,.58vw,9px);letter-spacing:.1em;transition:transform .2s,color .2s,background .2s,border-color .2s; }
.hero-tags a:first-child { color:var(--paper);background:rgba(116,38,60,.72);border-color:rgba(209,139,152,.38); }
.hero-tags a:hover,.hero-tags a:focus-visible { color:var(--paper);background:rgba(116,38,60,.82);border-color:var(--wine-light);transform:translateY(-2px); }
.hero-caption { position: absolute; z-index: 3; left: 50%; right: auto; bottom: 19px; width: min(1320px,calc(100% - 64px)); display: flex; justify-content: space-between; transform: translateX(-50%); color: rgba(236,228,210,.6); font-size: 7px; letter-spacing: .13em; }

.paper-section { position: relative; isolation: isolate; color: var(--paper); background-color: #111816; background-image: var(--grain-image),linear-gradient(125deg,rgba(15,80,68,.12),transparent 45%),linear-gradient(300deg,rgba(94,27,48,.12),transparent 42%); background-repeat: repeat,no-repeat,no-repeat; background-size: 180px 180px,auto,auto; background-blend-mode: soft-light,normal,normal; }
.paper-section::before, .work-section::before, .photos-section::before { content: ""; position: absolute; z-index: -1; inset: -10% -3%; pointer-events: none; background: radial-gradient(ellipse at 8% 23%,rgba(21,129,103,.18),transparent 36%),radial-gradient(ellipse at 91% 68%,rgba(122,31,56,.19),transparent 37%); filter: blur(8px); }
.section-marker { display: flex; justify-content: space-between; gap: 15px; color: rgba(236,228,210,.56); font-size: 8px; letter-spacing: .13em; padding-bottom: 15px; border-bottom: 1px solid rgba(236,228,210,.2); }
.section-marker-dark { color: rgba(236,228,210,.56); border-color: rgba(236,228,210,.2); }
.overline { margin: 0 0 15px; color: var(--wine-light); font-size: 9px; letter-spacing: .16em; }
.work-section .overline, .photos-section .overline, .contact-section .overline { color: var(--wine-light); }
.highlight-word { display:inline-block;position:relative;padding:0 .09em .055em;border-radius:2px;color:var(--paper);background:linear-gradient(135deg,rgba(132,46,68,.98),rgba(103,29,49,.96));box-shadow:.045em .05em 0 rgba(116,38,60,.9),.09em .095em 0 rgba(48,196,160,.52);box-decoration-break:clone;-webkit-box-decoration-break:clone; }
.about-section { padding: 27px clamp(24px,6vw,108px) 0; }
.about-section > .section-marker,.about-grid { max-width: 1320px; margin-inline: auto; }
.about-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(36px,6vw,96px); padding: clamp(54px,6vw,88px) 0 clamp(14px,1.5vw,20px); }
.about-heading h2, .work-heading h2, .hobbies-heading h2, .photos-heading h2, .contact-content h2 { margin: 0; font: 700 clamp(3.7rem,7vw,7rem)/.92 var(--display); letter-spacing: -.03em; }
.about-heading h2 { font-weight: 700; }
.about-heading h2 { font-size: clamp(2.2rem,4.1vw,4.5rem); }
.profile-badge { max-width: 335px; display: grid; gap: 8px; margin: 42px 0 0 8px; padding: 15px 17px; border: 1px solid rgba(209,139,152,.18); border-left: 2px solid rgba(209,139,152,.64); border-radius: 7px; background: linear-gradient(110deg,rgba(116,38,60,.18),rgba(16,25,22,.35)); transform: rotate(-.45deg); }
.profile-badge + .student-badge { margin-top:10px;border-color:rgba(48,196,160,.23);border-left-color:rgba(48,196,160,.72);background:linear-gradient(110deg,rgba(38,126,148,.28),rgba(16,25,22,.35));transform:rotate(.45deg); }
.badge-label { color: var(--wine-light); font-size: 8px; letter-spacing: .14em; }
.student-badge .badge-label { color:var(--teal); }
.badge-copy { color: var(--paper); font: 500 12px/1.55 var(--mono); }
.profile-shortcuts { max-width: 335px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin: 13px 0 0 8px; }
.profile-shortcuts a { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 5px; padding: 8px 9px; border: 1px solid rgba(236,228,210,.13); border-radius: 5px; color: #c7c3b7; background: rgba(12,19,17,.46); text-decoration: none; font: 600 7px/1.2 var(--mono); letter-spacing: .06em; transition: background .2s,border-color .2s,color .2s,transform .2s; }
.profile-shortcuts a:hover { color: var(--paper); border-color: rgba(209,139,152,.45); background: rgba(116,38,60,.24); transform: translateY(-2px); }
.profile-shortcuts b { flex: none; color: var(--wine-light); font: 13px/1 var(--body); }
.about-body { padding-top: 5px; }
.about-body p { max-width: 640px; margin: 0 0 17px; color: #c0c3b8; font-size: 14px; line-height: 1.85; }
.about-body p.lede { margin-bottom: 22px; color: var(--paper); font: 600 clamp(1.3rem,2vw,1.75rem)/1.45 var(--body); }
.about-body strong { color: var(--teal); font-weight: 700; }
.quick-facts { display: grid; grid-template-columns: repeat(3,1fr); max-width: 670px; margin-top: 35px; border-top: 1px solid rgba(236,228,210,.23); }
.quick-facts > div { min-height: 88px; display: flex; flex-direction: column; gap: 8px; padding: 14px 8px 0 0; border-right: 1px solid rgba(236,228,210,.17); }
.quick-facts > div:not(:first-child) { padding-left: 15px; }
.quick-facts > div:last-child { border: 0; }
.fact-label { color: var(--wine-light); font-size: 7px; letter-spacing: .1em; }
.fact-value { color: var(--paper); font: 600 12px/1.35 var(--body); }
.city-strip { display: grid; grid-template-columns: repeat(3,1fr); margin: 0 clamp(-108px,-6vw,-24px); padding: 26px clamp(24px,6vw,108px); background: var(--wine); color: var(--paper); }
.city-strip > div { display: flex; flex-direction: column; gap: 5px; padding-left: 20px; border-left: 1px solid rgba(236,228,210,.26); }
.city-strip > div:first-child { padding-left: 0; border-left: 0; }
.city-strip > div > span { color: #e3b6bf; font-size: 7px; letter-spacing: .13em; }
.city-strip b { font: 700 clamp(1.4rem,3vw,2.1rem)/1 var(--display); }
.city-strip small { color: rgba(236,228,210,.72); font-size: 7px; letter-spacing: .1em; }

.work-section { position: relative; isolation: isolate; overflow: hidden; padding: 18px clamp(24px,5vw,96px) clamp(76px,8vw,128px); background-color: #151a18; background-image: var(--grain-image),linear-gradient(rgba(236,228,210,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(236,228,210,.026) 1px,transparent 1px); background-repeat: repeat,repeat,repeat; background-size: 180px 180px,38px 38px,38px 38px; background-blend-mode: soft-light,normal,normal; }
.work-section > .section-marker,.work-heading,.work-grid { max-width: 1500px; margin-inline: auto; }
.work-section::after { content: ""; position: absolute; z-index: -1; inset: -5% 4% -4% auto; width: 43%; pointer-events: none; background: radial-gradient(ellipse,rgba(20,117,94,.2),transparent 66%); filter: blur(14px); }
.work-heading { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 25px; padding: clamp(52px,5vw,78px) clamp(4px,3vw,40px) 45px; }
.work-heading .overline { grid-column: 1/-1; margin: 0 0 -11px; }
.work-heading h2 { color: var(--paper); font-size: clamp(3.25rem,5.5vw,6.5rem); }
.work-heading h2 .highlight-word { font-size: .91em; }
.work-deck { max-width: 300px; justify-self: end; margin: 0 1vw 7px 0; color: var(--paper-muted); font-size: 15px; line-height: 1.7; }
.work-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(16px,2vw,30px) clamp(14px,1.6vw,26px); }
.work-card { min-width: 0; padding: 10px; background: #212220; border: 1px solid rgba(236,228,210,.1); border-radius: 3px; transition: transform .25s,border-color .25s; }
.work-card:hover { transform: translateY(-4px); border-color: rgba(48,196,160,.52); }
.work-link-card { display: block; color: inherit; text-decoration: none; cursor: pointer; }
.work-link-card .text-link { margin-top: auto; }
.work-card-feature { grid-column: 1/-1; display: grid; grid-template-columns: 1fr 1fr; column-gap: 28px; align-items: end; }
.work-card-feature .card-art { grid-row: span 5; min-height: 340px; }
.card-art { height: 256px; position: relative; overflow: hidden; background: #121413; }
.card-meta { display: flex; justify-content: space-between; gap: 9px; padding: 17px 9px 11px; color: #9f9b8d; font-size: 7px; letter-spacing: .08em; }
.work-card h3 { margin: 0; padding: 0 9px; color: var(--paper); font: 700 clamp(1.8rem,3vw,2.65rem)/1.02 var(--display); letter-spacing: .005em; }
.project-title { display: flex; align-items: center; gap: 16px; padding-left: 7px; }
.project-title h3 { padding: 0; }
.idrl-logo { width: 59px; height: 59px; flex: none; padding: 5px; border: 1px solid rgba(48,196,160,.46); border-radius: 50%; background: radial-gradient(circle at 50% 45%,rgba(48,196,160,.16),rgba(116,38,60,.18) 78%); }
.work-card > p { max-width: 490px; margin: 12px 9px 18px; color: #b8b4a8; font-size: 12px; line-height: 1.75; }
.text-link { display: flex; width: fit-content; align-items: center; gap: 17px; margin: 0 9px 12px; padding-bottom: 5px; color: var(--teal); text-decoration: none; border-bottom: 1px solid rgba(48,196,160,.6); font-size: 8px; letter-spacing: .08em; }
.text-link span { color: var(--wine-light); font-size: 14px; transition: transform .2s; }
a.text-link:hover span { transform: translate(3px,-3px); }
.work-link-card .work-card-action { min-height:38px;gap:13px;margin:16px 9px 12px;padding:5px 6px 5px 13px;border:1px solid rgba(209,139,152,.42);border-radius:4px;color:var(--paper);background:rgba(116,38,60,.82);font-size:8px;font-weight:700;letter-spacing:.07em; }
.work-link-card .work-card-action > span { width:26px;height:26px;display:grid;place-items:center;border-radius:50%;color:var(--ink);background:var(--paper);font-size:13px; }
.work-link-card:hover .work-card-action { color:var(--paper);background:#8d2c47;border-color:var(--wine-light); }
.work-link-card:hover .work-card-action > span { transform:translate(2px,-2px); }
.static-link { color: #9b9789; border-color: rgba(236,228,210,.35); }
.static-link span { color: var(--wine-light); }
.profile-cta, .show-more-button { min-height: 42px; width: fit-content; max-width: 100%; display: inline-flex; align-items: center; justify-content: space-between; gap: 16px; padding: 6px 7px 6px 15px; color: var(--paper); background: rgba(116,38,60,.8); border: 1px solid rgba(209,139,152,.42); border-radius: 4px; text-decoration: none; font-size: 9px; font-weight: 700; letter-spacing: .07em; transition: transform .2s,background .2s,border-color .2s; }
.profile-cta { margin: 0 9px 12px; }
.profile-cta b, .show-more-button b { width: 28px; height: 28px; display: grid; place-items: center; color: var(--ink); background: var(--paper); border-radius: 50%; font: 500 15px/1 var(--body); transition: transform .2s; }
.profile-cta:hover, .show-more-button:hover { transform: translateY(-2px); background: #8d2c47; border-color: var(--teal); }
.profile-cta:hover b, .show-more-button:hover b { transform: translate(2px,-2px); }
.identity-art { background: radial-gradient(ellipse at 70% 50%,rgba(16,132,104,.47),transparent 50%),linear-gradient(145deg,#15201d,#161817 67%); }
.identity-grid { position: absolute; inset: -20% -10%; transform: perspective(260px) rotateX(28deg) rotateZ(-7deg); background-image: linear-gradient(rgba(65,226,183,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(65,226,183,.18) 1px,transparent 1px); background-size: 35px 35px; opacity: .8; }
.identity-orbit { position: absolute; border: 1px solid rgba(55,219,177,.4); border-radius: 50%; transform: rotate(-24deg); }
.orbit-one { width: 390px; height: 215px; right: -13%; top: 9%; }.orbit-two { width: 330px; height: 190px; right: -3%; top: 18%; border-style: dashed; }
.identity-word { position: absolute; z-index: 2; top: 29%; left: 10%; color: var(--paper); font: 700 clamp(5.5rem,13vw,10rem)/.9 var(--display); letter-spacing: -.04em; text-shadow: 6px 7px 0 #123a30, 10px 11px 0 rgba(126,40,63,.8); }
.identity-logo-lockup { position:absolute;z-index:2;top:48%;left:50%;width:min(82%,620px);overflow:hidden;transform:translate(-50%,-52%) rotate(-1.4deg);border:1px solid rgba(236,228,210,.5);box-shadow:7px 8px 0 rgba(15,91,73,.8),11px 12px 0 rgba(126,40,63,.72),0 15px 30px rgba(0,0,0,.34); }
.identity-logo-lockup img { display:block;width:100%;height:auto; }
.identity-tag { position: absolute; right: 10%; bottom: 12%; padding: 10px 13px; border-radius: 3px; color: var(--paper); background: rgba(116,38,60,.78); transform: rotate(-3deg); font: 500 8px/1.55 var(--mono); letter-spacing: .11em; box-shadow: 4px 5px 0 rgba(0,0,0,.45); }
.art-cross { position: absolute; z-index: 2; color: var(--wine-light); font: 500 20px var(--mono); }
.cross-a { left: 7%; top: 13%; }.cross-b { right: 9%; top: 21%; }.cross-c { right: 12%; top: 17%; }
.research-art { display: flex; align-items: center; justify-content: center; background: radial-gradient(ellipse at center,#4b2934 0,#27201f 50%,#161514 100%); }
.research-orbit { position: absolute; width: 205px; height: 205px; border: 1px solid rgba(194,123,138,.57); border-radius: 50%; box-shadow: 0 0 0 22px rgba(116,38,60,.08),0 0 0 50px rgba(116,38,60,.045); }
.research-orbit::before,.research-orbit::after { content:""; position:absolute; background:rgba(194,123,138,.52); }
.research-orbit::before { left:50%; top:-13%; bottom:-13%; width:1px; }.research-orbit::after { top:50%; left:-13%; right:-13%; height:1px; }
.research-bars { position: absolute; z-index: 1; display:flex; align-items:end; gap:9px; height:108px; transform:rotate(-15deg); }
.research-bars i { display:block; width:16px; background:var(--wine-light); opacity:.96; box-shadow:0 0 18px rgba(116,38,60,.42); }
.research-bars i:nth-child(1){height:30%}.research-bars i:nth-child(2){height:48%}.research-bars i:nth-child(3){height:40%}.research-bars i:nth-child(4){height:71%}.research-bars i:nth-child(5){height:58%}.research-bars i:nth-child(6){height:87%}.research-bars i:nth-child(7){height:100%}
.research-word { position: relative; z-index:2; color:var(--paper); text-align:center; font:800 clamp(2.8rem,5vw,4.5rem)/.83 var(--display); letter-spacing:.02em; text-shadow:4px 4px 0 rgba(13,13,12,.9); transform:rotate(-15deg); }
.research-word b { display:block; color:var(--teal); font:400 .55em/1 var(--body); }
.research-caption { position:absolute; left:6%; bottom:6%; color:rgba(236,228,210,.72); font:400 7px/1.7 var(--mono); letter-spacing:.15em; }
.design-art { display:flex; align-items:center; justify-content:center; background:radial-gradient(ellipse at 60% 45%,#254d43,#18201d 60%,#111413); }
.design-window { position:absolute; inset:16% 18%; border:1px solid rgba(236,228,210,.5); background:rgba(12,15,14,.7); box-shadow:11px 12px 0 rgba(9,10,9,.5); transform:rotate(-4deg); }
.window-bar { position:absolute; inset:0 0 auto; height:17%; border-bottom:1px solid rgba(236,228,210,.22); background:linear-gradient(90deg,var(--wine) 0 18%,transparent 18%); }
.window-block { position:absolute; display:block; border:1px solid rgba(48,196,160,.55); background:rgba(48,196,160,.15); }
.block-one { left:10%;top:29%;width:34%;height:45%; }.block-two { right:10%;top:30%;width:34%;height:22%;background:rgba(116,38,60,.35);border-color:var(--wine-light); }
.window-line { position:absolute; right:10%;bottom:14%;width:34%;height:2px;background:var(--paper-muted);box-shadow:0 -11px 0 rgba(236,228,210,.35),0 -22px 0 rgba(236,228,210,.22); }
.window-dot { position:absolute; width:8px;height:8px;right:9%;top:5%;border-radius:50%;background:var(--teal); }
.design-stamp { position:absolute; right:8%;bottom:9%;padding:8px 10px;border-radius:3px;color:var(--paper);background:rgba(116,38,60,.76);font-size:8px;line-height:1.5;letter-spacing:.12em;transform:rotate(3deg); }
.cross-d { left:10%;top:10%; }

.hobbies-section { position: relative; isolation: isolate; overflow: hidden; padding:27px clamp(24px,5vw,96px) clamp(72px,8vw,120px); }
.hobbies-section > .section-marker,.hobbies-heading,.hobby-grid,.interest-note { max-width: 1460px; margin-inline: auto; }
.hobbies-section::after { content:""; position:absolute; z-index:-1; left:-16%; bottom:-35%; width:65%; height:100%; pointer-events:none; background:radial-gradient(ellipse,rgba(18,112,92,.17),transparent 68%); filter:blur(12px); }
.hobbies-heading { padding:clamp(48px,5vw,72px) clamp(4px,2vw,28px) 37px; }
.hobbies-heading h2 { font-size:clamp(3.25rem,5.8vw,6rem); }
.hobby-grid { position:relative;display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(16px,2vw,30px);align-items:start; }
.hobby-card { display:grid;grid-template-columns:1fr;min-height:410px;overflow:hidden;background:linear-gradient(150deg,rgba(35,44,39,.94),rgba(21,25,23,.98));border:1px solid rgba(236,228,210,.14);border-radius:5px;box-shadow:0 18px 42px rgba(0,0,0,.2); }
.piano-card { min-height:450px;background:linear-gradient(145deg,rgba(83,31,48,.92),rgba(34,22,28,.96) 48%,rgba(16,25,22,.98));border-color:rgba(209,139,152,.48);transform:rotate(-.65deg); }
.photography-card { min-height:392px;margin-top:25px;background:linear-gradient(145deg,rgba(27,67,78,.92),rgba(16,30,37,.98) 62%);border-color:rgba(38,126,148,.55);transform:rotate(.7deg); }
.hobby-visual { position:relative;min-height:210px;overflow:hidden;background:#151616; }
.piano-card .hobby-visual { min-height:270px; }
.photography-card .hobby-visual { min-height:230px;background:#153641; }
.hobby-versus { position:absolute;z-index:5;top:49%;left:56%;width:54px;height:54px;display:grid;place-items:center;border:2px solid var(--paper);border-radius:50%;color:var(--paper);background:linear-gradient(135deg,var(--wine) 0 48%,var(--photo-blue) 52% 100%);box-shadow:0 5px 20px rgba(0,0,0,.42);font:800 12px/1 var(--mono);letter-spacing:.08em;transform:translate(-50%,-50%) rotate(-9deg); }
.hobby-content { display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:23px 20px 22px;color:var(--paper); }
.hobby-index { color:var(--wine-light);font-size:8px;letter-spacing:.13em; }
.hobby-content h3 { margin:12px 0 7px;font:700 2.4rem/1 var(--display); }
.hobby-content p { margin:0 0 18px;color:#c3c4b9;font-size:13px;line-height:1.7; }
.hobby-content .text-link { margin:18px 0 0;color:#176d5a; }
.hobby-content .text-link { color:var(--teal); }
.show-more-button { min-height:38px; margin-top:auto; font-size:8px; }
.piano-card .show-more-button { background:rgba(38,126,148,.88);border-color:rgba(165,220,226,.46); }
.piano-card .show-more-button:hover { background:#267e94;border-color:var(--paper); }
.photography-visual img { display:block;width:100%;height:100%;position:absolute;z-index:0;inset:0;object-fit:cover;transform:scale(1.035) rotate(-1.3deg);filter:grayscale(.56) contrast(1.12) brightness(.58);transition:filter .3s,transform .4s; }
.photography-visual::after { content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(125deg,rgba(38,126,148,.58),rgba(19,54,76,.2) 58%,rgba(116,38,60,.12));mix-blend-mode:color; }
.photography-card:hover .photography-visual img { filter:grayscale(.12) contrast(1.08) brightness(.82);transform:scale(1.07) rotate(-1.3deg); }
.photography-visual .photo-stamp { z-index:2;background:rgba(38,126,148,.76);border:1px solid rgba(165,220,226,.28); }
.photo-stamp { position:absolute;left:12px;bottom:12px;padding:6px 8px;border-radius:3px;color:var(--paper);background:rgba(116,38,60,.77);font:700 8px var(--mono);letter-spacing:.1em;transform:rotate(-3deg); }
.piano-visual { background:radial-gradient(ellipse at 78% 24%,rgba(209,139,152,.4),transparent 35%),linear-gradient(145deg,#281b20,#101312 70%); }
.piano-glow { position:absolute;inset:0;background:linear-gradient(120deg,transparent 15%,rgba(48,196,160,.12) 42%,transparent 75%); }
.piano-keys { position:absolute;left:-6%;right:-11%;bottom:23%;height:25%;transform:rotate(-16deg);border:3px solid #e3dece;background:repeating-linear-gradient(90deg,#eee8d9 0 27px,#191817 27px 30px);box-shadow:0 13px 0 rgba(0,0,0,.55); }
.piano-keys::before { content:"";position:absolute;left:8%;top:0;width:84%;height:53%;background:repeating-linear-gradient(90deg,#111 0 16px,transparent 16px 30px); }
.piano-label { position:absolute;top:12%;left:10%;color:var(--paper);font-size:7px;letter-spacing:.15em; }
.stats-visual { background:linear-gradient(150deg,#202a26,#111513);background-image:linear-gradient(rgba(236,228,210,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(236,228,210,.05) 1px,transparent 1px);background-size:24px 24px; }
.stats-chart { position:absolute;inset:25% 15% 19%;display:flex;align-items:flex-end;justify-content:space-between;gap:7px; }
.stats-chart i { flex:1;display:block;background:linear-gradient(0deg,var(--wine),var(--wine-light));opacity:.86; }
.stats-chart i:nth-child(1){height:27%}.stats-chart i:nth-child(2){height:43%}.stats-chart i:nth-child(3){height:36%}.stats-chart i:nth-child(4){height:58%}.stats-chart i:nth-child(5){height:48%}.stats-chart i:nth-child(6){height:76%}.stats-chart i:nth-child(7){height:91%}
.chart-line { position:absolute;left:12%;right:9%;top:50%;height:1px;transform:rotate(-22deg);background:var(--teal);box-shadow:0 0 9px var(--teal); }
.chart-dot { position:absolute;top:23%;right:16%;width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 14px var(--teal); }
.stats-axis { position:absolute;display:block;background:rgba(236,228,210,.48); }
.axis-x {left:12%;right:9%;bottom:18%;height:1px;}.axis-y {top:22%;bottom:18%;left:12%;width:1px;}
.chart-label { position:absolute;bottom:7%;left:12%;color:var(--paper-muted);font-size:6px;letter-spacing:.13em; }

.interest-note { display:grid;grid-template-columns:minmax(130px,.55fr) minmax(0,1fr) auto;align-items:center;gap:18px;margin-top:38px;padding:17px clamp(12px,2vw,24px);border-top:1px solid rgba(236,228,210,.16);border-bottom:1px solid rgba(236,228,210,.16);background:linear-gradient(100deg,rgba(116,38,60,.1),rgba(38,126,148,.08)); }
.interest-note > span { color:var(--wine-light);font:600 8px/1.4 var(--mono);letter-spacing:.13em; }
.interest-note p { margin:0;color:var(--paper);font:500 clamp(13px,1.3vw,17px)/1.45 var(--body); }
.interest-note a { color:var(--teal);font:600 8px/1.3 var(--mono);letter-spacing:.1em;text-decoration:none; }
.interest-note a:hover { color:var(--paper); }

.photos-section { position:relative;isolation:isolate;overflow:hidden;padding:27px clamp(24px,5vw,96px) 82px;background:#131817;background-image:var(--grain-image),linear-gradient(rgba(236,228,210,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(236,228,210,.026) 1px,transparent 1px);background-size:180px 180px,38px 38px,38px 38px;background-blend-mode:soft-light,normal,normal; }
.photos-section > .section-marker,.photos-heading,.photo-grid { max-width:1500px;margin-inline:auto; }
.photos-heading { display:flex;align-items:end;justify-content:space-between;gap:30px;padding:67px clamp(4px,2vw,28px) 38px; }
.photos-heading h2 { font-size:clamp(3.7rem,7vw,6.5rem);color:var(--paper); }
.photos-note { max-width:330px;margin:0 1vw 7px 0;color:var(--paper-muted);font-size:13px;line-height:1.75; }
.photo-grid { display:grid;grid-template-columns:1.12fr 1fr 1fr;grid-template-rows:minmax(215px,265px) minmax(180px,215px);gap:13px; }
.photo-card { position:relative;min-width:0;margin:0;overflow:hidden;background:#101312;border:1px solid rgba(236,228,210,.13);border-radius:2px; }
.photo-card-tall { grid-row:span 2; }
.photo-card:nth-child(2) { transform:rotate(.8deg) translateY(8px); }
.photo-card:nth-child(3) { transform:rotate(-.65deg) translateY(-5px); }
.photo-card img { display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(.42) contrast(1.08) brightness(.74);transition:filter .35s,transform .5s; }
.photo-card:nth-child(1) img { object-position:center; }
.photo-card:nth-child(2) img { object-position:center; }
.photo-card:nth-child(3) img { object-position:center; }
.photo-card:hover img { filter:grayscale(.08) contrast(1.06) brightness(.92);transform:scale(1.035); }
.photo-card::after { content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(8,10,9,.92));pointer-events:none; }
.photo-card figcaption { position:absolute;z-index:2;left:13px;right:12px;bottom:12px;display:flex;align-items:end;justify-content:space-between;gap:10px;color:var(--paper); }
.photo-card figcaption span { min-width:0;display:grid;gap:5px; }
.photo-card figcaption b { font-size:8px;letter-spacing:.12em; }
.photo-card figcaption small { color:rgba(236,228,210,.75);font-size:6px;letter-spacing:.045em; }
.photo-card figcaption a { flex:none;display:grid;place-items:center;width:29px;height:29px;border:1px solid rgba(236,228,210,.58);border-radius:50%;color:var(--paper);text-decoration:none;font:14px var(--mono); }
.photo-card figcaption a:hover { background:var(--wine);border-color:var(--wine-light); }
.photo-tip { margin:18px 0 0;color:#a9a496;font-size:8px;letter-spacing:.03em; }
.photo-tip span { margin-right:9px;color:var(--wine-light);letter-spacing:.12em; }
.photo-tip code { color:var(--paper);font:inherit; }

.contact-section { min-height:690px;position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;padding:27px clamp(24px,5vw,96px) 0;background:#171817;background-image:var(--grain-image);background-size:180px 180px;background-blend-mode:soft-light; }
.contact-section > .section-marker,.contact-section > .footer { width:min(1320px,100%);margin-inline:auto; }
.contact-section::before { content:"";position:absolute;z-index:-1;inset:-15% -7%;pointer-events:none;background:radial-gradient(ellipse at 77% 28%,rgba(122,31,56,.27),transparent 43%),radial-gradient(ellipse at 13% 75%,rgba(15,115,92,.16),transparent 37%); }
.contact-city { opacity:.38; }.contact-city img { object-position:center 70%;filter:grayscale(1) contrast(1.2) brightness(.4); }
.contact-shade { z-index:-1;background:linear-gradient(90deg,rgba(14,16,15,.94),rgba(14,16,15,.62) 66%,rgba(14,16,15,.36)),linear-gradient(0deg,rgba(14,16,15,.9),transparent 58%); }
.contact-content { position:relative;z-index:2;width:min(880px,100%);margin:78px auto 75px; }
.contact-content h2 { max-width:800px;color:var(--paper);font-size:clamp(3.5rem,7vw,6.8rem); }
.contact-fullname { display:inline-block;margin-top:5px;font-size:.63em;line-height:1.06; }
.contact-copy { margin:19px 0 31px;color:#c4beaf;font-size:14px; }
.contact-links { max-width:760px;border-top:1px solid var(--rule); }
.contact-links > a { display:grid;grid-template-columns:.7fr 2fr 20px;align-items:center;gap:16px;padding:13px 2px;color:var(--paper);text-decoration:none;border-bottom:1px solid var(--rule);transition:padding .2s,color .2s; }
.contact-links > a:hover { padding-left:10px;color:var(--teal); }
.contact-links > a > span { color:#aba394;font-size:8px;letter-spacing:.12em; }
.contact-links > a > b { font:500 clamp(11px,1.25vw,14px)/1.4 var(--mono);word-break:break-word; }
.contact-links > a > i { color:var(--wine-light);font:400 17px var(--body);font-style:normal; }
.footer { position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:auto;padding:17px 0 19px;border-top:1px solid var(--rule);color:#968f80;font-size:7px;letter-spacing:.08em; }
.footer i { color:var(--teal);font-size:13px;font-style:normal;vertical-align:middle; }
.footer-name { color:var(--paper); }
.footer a { color:var(--paper);text-decoration:none; }.footer a:hover { color:var(--teal); }

.show-more-photo { margin-top:23px; }
.detail-hero { min-height:max(650px,calc(100svh - 72px));position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;padding:7vh clamp(28px,6vw,116px);background:#111816;background-image:var(--grain-image);background-size:180px 180px;background-blend-mode:soft-light; }
.detail-hero::before { content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 79% 30%,rgba(16,128,104,.19),transparent 36%),radial-gradient(ellipse at 34% 91%,rgba(122,31,56,.23),transparent 44%); }
.detail-hero-copy { width:min(990px,100%);position:relative;z-index:3;margin-inline:auto; }
.detail-hero h1 { margin:0;color:var(--paper);font:800 clamp(4.4rem,8.5vw,8.5rem)/.9 var(--display);letter-spacing:-.055em;text-transform:uppercase;text-shadow:5px 7px 0 rgba(0,0,0,.8),8px 10px 0 rgba(116,38,60,.56); }
.detail-hero h1 .title-last { font-size:.75em; }
.detail-hero-copy > p { max-width:570px;margin:28px 0 0 5px;color:#d1cbbc;font-size:clamp(1rem,1.35vw,1.2rem);line-height:1.6; }
.detail-return { min-height:43px;display:inline-flex;align-items:center;gap:16px;margin:25px 0 0 5px;padding:6px 7px 6px 14px;border-radius:4px;color:var(--paper);background:rgba(116,38,60,.72);border:1px solid rgba(209,139,152,.48);text-decoration:none;font-size:9px;font-weight:700;letter-spacing:.11em;transition:transform .2s,background .2s; }
.detail-return b { width:28px;height:28px;display:grid;place-items:center;color:var(--ink);background:var(--teal);border-radius:50%;font:500 15px var(--body); }
.detail-return:hover { transform:translateY(-2px);background:#8b2d48; }
.photo-gallery-page { position:relative;isolation:isolate;overflow:hidden;padding:27px clamp(24px,5vw,96px) 85px;background:#121816;background-image:var(--grain-image),linear-gradient(rgba(236,228,210,.027) 1px,transparent 1px),linear-gradient(90deg,rgba(236,228,210,.027) 1px,transparent 1px);background-size:180px 180px,38px 38px,38px 38px;background-blend-mode:soft-light,normal,normal; }
.photo-gallery-page > .section-marker,.photo-gallery-page > .photos-heading,.photo-gallery-page > .photo-grid,.photo-gallery-page > .photo-tip { max-width:1500px;margin-left:auto;margin-right:auto; }
.photo-gallery-page::before { content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 17% 73%,rgba(15,119,94,.2),transparent 37%),radial-gradient(ellipse at 88% 24%,rgba(122,31,56,.21),transparent 38%); }
.photo-grid-page { grid-template-rows:minmax(280px,min(36vw,520px)) minmax(210px,min(27vw,390px));gap:clamp(10px,1.2vw,18px); }
.detail-footer { min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px clamp(20px,5vw,96px);color:#a6a294;background:#0c100f;border-top:1px solid rgba(236,228,210,.15);font-size:8px;letter-spacing:.08em; }
.detail-footer a { color:var(--paper);text-decoration:none; }.detail-footer a:hover { color:var(--teal); }
.piano-detail-hero .hero-city img { filter:grayscale(.85) contrast(1.1) brightness(.53) sepia(.12); }
.piano-detail-hero .hero-overlay { background:linear-gradient(90deg,rgba(10,14,13,.92),rgba(10,14,13,.52) 65%,rgba(10,14,13,.3)),linear-gradient(0deg,rgba(10,11,11,.82),transparent 70%); }
.piano-room { position:relative;isolation:isolate;overflow:hidden;padding:27px clamp(24px,5vw,96px) 85px;background:#141917;background-image:var(--grain-image),linear-gradient(145deg,rgba(19,105,85,.1),transparent 42%),linear-gradient(325deg,rgba(116,38,60,.12),transparent 44%);background-size:180px 180px,auto,auto;background-repeat:repeat,no-repeat,no-repeat;background-blend-mode:soft-light,normal,normal; }
.piano-room > .section-marker,.piano-room-heading,.visualizer-panel,.track-list,.audio-note { max-width:1320px;margin-left:auto;margin-right:auto; }
.piano-room > .section-marker { margin-bottom:0; }
.piano-room::before { content:"";position:absolute;z-index:-1;inset:-5% auto auto 52%;width:60%;height:75%;pointer-events:none;background:radial-gradient(ellipse,rgba(17,122,96,.21),transparent 68%);filter:blur(13px); }
.piano-room-heading { display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:18px 35px;padding:63px 3vw 35px; }
.piano-room-heading .overline { grid-column:1/-1;margin:0 0 -8px; }
.piano-room-heading h2 { margin:0;color:var(--paper);font:700 clamp(3.5rem,7vw,6.5rem)/.93 var(--display);letter-spacing:-.035em; }
.piano-intro { max-width:400px;justify-self:end;margin:0 1vw 5px 0;color:var(--paper-muted);font-size:14px;line-height:1.75; }
.visualizer-panel { position:relative;min-height:157px;margin:10px auto 17px;padding:13px 17px 15px;background:linear-gradient(110deg,rgba(12,18,16,.94),rgba(20,35,29,.88) 54%,rgba(36,20,25,.92));border:1px solid rgba(48,196,160,.27); }
.visualizer-label { display:flex;justify-content:space-between;gap:15px;color:#aaa99c;font-size:8px;font-weight:700;letter-spacing:.12em; }
.visualizer-label span:first-child { color:var(--teal); }
#piano-visualizer { display:block;width:100%;height:116px;margin-top:4px; }
.visualizer-baseline { position:absolute;left:17px;right:17px;top:calc(50% + 9px);height:1px;background:rgba(48,196,160,.22);pointer-events:none; }
.track-list { display:grid;gap:9px; }
.track-card { display:grid;grid-template-columns:52px minmax(0,1fr) 52px 105px;align-items:center;gap:15px;min-height:86px;padding:13px 16px;background:linear-gradient(110deg,rgba(34,42,38,.95),rgba(24,28,26,.96));border:1px solid rgba(236,228,210,.12);transition:border-color .2s,background .2s; }
.track-card:hover,.track-card:has(.track-button.is-playing) { border-color:rgba(48,196,160,.54);background:linear-gradient(110deg,rgba(33,55,47,.96),rgba(38,26,31,.96)); }
.track-number { color:var(--wine-light);font:600 22px/1 var(--display); }
.track-info h3 { margin:0;color:var(--paper);font:700 1.35rem/1.2 var(--display); }
.track-info p { margin:4px 0 0;color:#aaa99c;font-size:11px; }
.track-card-featured { border-left:3px solid var(--wine-light); }
.midi-download-link { display:inline-flex;align-items:center;gap:6px;margin-top:7px;padding:5px 7px;border:1px solid rgba(48,196,160,.38);border-radius:3px;color:#67d0e1;background:rgba(12,41,35,.34);text-decoration:none;font:600 7px/1.4 var(--mono);letter-spacing:.08em;transition:color .2s,border-color .2s,background .2s; }
.midi-download-link:hover { color:var(--paper);border-color:var(--teal);background:rgba(12,66,55,.62); }
.midi-download-link:focus-visible { outline:2px solid var(--teal);outline-offset:3px; }
.track-duration { color:#aaa99c;font-size:9px;letter-spacing:.08em;text-align:center; }
.track-button { min-width:100px;min-height:40px;display:flex;align-items:center;justify-content:center;gap:8px;padding:5px 10px;border-radius:4px;color:var(--paper);background:rgba(116,38,60,.8);border:1px solid rgba(209,139,152,.6);font:700 9px var(--body);letter-spacing:.1em;cursor:pointer;transition:background .2s,border-color .2s,transform .2s; }
.track-button:hover,.track-button.is-playing { background:#8f304a;border-color:var(--teal);transform:translateY(-1px); }
.track-button .play-symbol { color:var(--teal);font-size:11px; }
.track-button.is-playing .play-symbol { color:#f0bcc3; }
.track-button:focus-visible { outline:2px solid var(--teal);outline-offset:3px; }
.audio-note { margin:18px 0 0;color:#aaa99c;font-size:9px;line-height:1.6; }
.audio-note span { margin-right:10px;color:var(--wine-light);font-size:8px;font-weight:700;letter-spacing:.11em; }

.topic-content { position:relative;isolation:isolate;overflow:hidden;padding:27px clamp(24px,5vw,96px) clamp(70px,8vw,112px);background:#141917;background-image:var(--grain-image),linear-gradient(rgba(236,228,210,.023) 1px,transparent 1px),linear-gradient(90deg,rgba(236,228,210,.023) 1px,transparent 1px);background-size:180px 180px,42px 42px,42px 42px;background-blend-mode:soft-light,normal,normal; }
.topic-content::before { content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 12% 60%,rgba(116,38,60,.18),transparent 38%),radial-gradient(ellipse at 88% 20%,rgba(38,126,148,.15),transparent 39%); }
.topic-content > .section-marker,.topic-heading,.topic-feature,.practice-heading,.practice-grid,.topic-endnote { max-width:1320px;margin-left:auto;margin-right:auto; }
.topic-heading { display:grid;grid-template-columns:1.15fr .85fr;align-items:end;gap:18px clamp(22px,4vw,58px);padding:clamp(54px,6vw,84px) clamp(4px,2vw,26px) 34px; }
.topic-heading .overline { grid-column:1/-1;margin:0 0 -8px; }
.topic-heading h2,.practice-heading h2 { margin:0;color:var(--paper);font:700 clamp(3.2rem,5.2vw,5.6rem)/.96 var(--display);letter-spacing:-.025em; }
.topic-heading > p:last-child { max-width:410px;justify-self:end;margin:0 0 7px;color:var(--paper-muted);font-size:clamp(14px,1.25vw,18px);line-height:1.65; }
.topic-feature { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(22px,4vw,58px);padding:clamp(12px,2vw,25px);border:1px solid rgba(236,228,210,.12);border-radius:4px;background:linear-gradient(115deg,rgba(24,34,30,.88),rgba(27,25,26,.9)); }
.topic-art { min-width:0;min-height:clamp(290px,32vw,430px);position:relative;isolation:isolate;overflow:hidden;border:1px solid rgba(236,228,210,.14);background:#111816; }
.topic-art-grid { position:absolute;inset:-10%;z-index:-1;transform:perspective(450px) rotateX(24deg) rotateZ(-8deg);background-image:linear-gradient(rgba(48,196,160,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(48,196,160,.22) 1px,transparent 1px);background-size:36px 36px; }
.topic-art-orbit { position:absolute;inset:14% -13% auto auto;width:78%;height:62%;border:1px solid rgba(48,196,160,.52);border-radius:50%;transform:rotate(-22deg);box-shadow:0 0 0 24px rgba(48,196,160,.05),0 0 0 52px rgba(116,38,60,.08); }
.topic-art-caption { position:absolute;z-index:2;right:5%;bottom:6%;padding:9px 12px;border-radius:2px;color:var(--paper);background:rgba(116,38,60,.75);font:500 9px/1.5 var(--mono);letter-spacing:.1em;transform:rotate(-3deg); }
.topic-feature-copy { min-width:0;padding:clamp(6px,2vw,20px); }
.topic-feature-copy .card-meta { padding:0 0 16px; }
.topic-feature-copy h3 { margin:0;color:var(--paper);font:700 clamp(2rem,4.3vw,4rem)/1.02 var(--display);letter-spacing:-.015em; }
.topic-feature-copy > p { max-width:590px;margin:18px 0;color:#c0c3b8;font-size:clamp(14px,1.15vw,17px);line-height:1.75; }
.topic-links { display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:25px; }
.topic-links a { color:var(--teal);font:600 8px/1.4 var(--mono);letter-spacing:.08em;text-decoration:none;border-bottom:1px solid rgba(48,196,160,.48);padding-bottom:5px; }
.topic-links a span { margin-left:9px;color:var(--wine-light); }
.topic-links a:hover { color:var(--paper);border-color:var(--wine-light); }
.practice-heading { display:flex;align-items:end;justify-content:space-between;gap:26px;padding:clamp(65px,8vw,110px) clamp(4px,2vw,26px) 28px; }
.practice-heading .overline { margin:0 0 14px;color:var(--wine-light); }
.practice-heading h2 { font-size:clamp(2.7rem,5vw,5rem); }
.practice-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px; }
.research-interests { grid-template-columns:repeat(3,minmax(0,1fr)); }
.practice-card { min-width:0;min-height:225px;position:relative;overflow:hidden;padding:20px 18px;border:1px solid rgba(236,228,210,.14);border-radius:3px;background:linear-gradient(145deg,rgba(33,44,39,.88),rgba(19,24,22,.97)); }
.practice-card[id] { scroll-margin-top:18px; }
.practice-card:nth-child(2) { transform:translateY(12px);background:linear-gradient(145deg,rgba(61,32,42,.79),rgba(22,24,23,.97)); }
.practice-card:nth-child(3) { background:linear-gradient(145deg,rgba(27,57,59,.78),rgba(19,25,24,.97)); }
.practice-card:nth-child(4) { transform:translateY(7px);background:linear-gradient(145deg,rgba(40,41,35,.87),rgba(19,24,22,.97)); }
.practice-index { color:var(--wine-light);font:500 8px/1.4 var(--mono);letter-spacing:.1em; }
.practice-card h3 { max-width:240px;margin:21px 0 9px;color:var(--paper);font:600 clamp(1.25rem,1.8vw,1.75rem)/1.1 var(--display); }
.practice-card p { max-width:330px;margin:0;color:#b8b8ad;font-size:13px;line-height:1.7; }
.practice-mark { position:absolute;right:13px;top:10px;color:rgba(209,139,152,.42);font:400 35px/1 var(--display); }
.research-topic-art { display:grid;place-items:center;background:radial-gradient(ellipse at 51% 48%,rgba(116,38,60,.42),transparent 56%),linear-gradient(150deg,#1e2220,#171716 75%); }
.research-ring { position:absolute;display:block;width:66%;aspect-ratio:1;border:1px solid rgba(209,139,152,.53);border-radius:50%; }
.ring-one { transform:rotate(26deg);box-shadow:0 0 0 24px rgba(116,38,60,.07),0 0 0 52px rgba(116,38,60,.035); }
.ring-two { width:78%;aspect-ratio:1.3;border-style:dashed;transform:rotate(-29deg); }
.topic-bars { position:absolute;z-index:1;inset:27% 17% 22%;display:flex;align-items:end;justify-content:space-between;gap:7px;transform:rotate(-13deg); }
.topic-bars i { display:block;flex:1;height:var(--bar-height);background:linear-gradient(0deg,rgba(116,38,60,.58),var(--wine-light)); }
.topic-bars i:nth-child(1){--bar-height:31%}.topic-bars i:nth-child(2){--bar-height:47%}.topic-bars i:nth-child(3){--bar-height:39%}.topic-bars i:nth-child(4){--bar-height:68%}.topic-bars i:nth-child(5){--bar-height:56%}.topic-bars i:nth-child(6){--bar-height:84%}.topic-bars i:nth-child(7){--bar-height:100%}
.research-topic-word { position:relative;z-index:2;color:var(--paper);text-align:center;font:700 clamp(3rem,6vw,5rem)/.82 var(--display);letter-spacing:.03em;text-shadow:4px 4px 0 rgba(12,12,12,.9);transform:rotate(-13deg); }
.research-topic-word b { display:block;color:var(--teal);font:400 .55em/1 var(--body); }
.research-topic-art .topic-art-caption { right:auto;left:5%;background:rgba(18,25,23,.78); }
.research-note { padding:12px 14px;border-left:2px solid rgba(209,139,152,.58);background:rgba(116,38,60,.12);font-size:13px!important; }
.research-note span { display:block;margin-bottom:6px;color:var(--wine-light);font:500 8px/1.4 var(--mono);letter-spacing:.11em; }
.research-interest-card { min-height:205px; }
.research-interest-card .practice-mark { color:rgba(48,196,160,.55); }
.topic-endnote { display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:45px;padding:19px 0;border-top:1px solid rgba(236,228,210,.16);border-bottom:1px solid rgba(236,228,210,.16); }
.topic-endnote > span { color:var(--paper-muted);font:500 8px/1.4 var(--mono);letter-spacing:.1em; }
.topic-endnote a { color:var(--teal);font:600 8px/1.4 var(--mono);letter-spacing:.08em;text-decoration:none; }
.topic-endnote a:hover { color:var(--paper); }

.reveal { opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease; }
.reveal.is-visible { opacity:1;transform:translateY(0); }
@keyframes page-arrival { from { opacity:0; transform:translateY(9px); } to { opacity:1; transform:translateY(0); } }
main { animation:page-arrival .42s cubic-bezier(.2,.68,.26,1) both; }
@media (max-width:1000px) {
  .topline { padding-right:20px; }
  .topline-note { display:none; }
  .hero { padding-left:6vw;padding-right:5vw; }
  .hero h1 { font-size:clamp(3.5rem,8vw,6rem); }
  .hero-caption { width:min(1320px,calc(100% - 72px)); }
  .about-section { padding-left:6vw;padding-right:6vw; }
  .about-grid { gap:5vw; }
  .city-strip { margin-inline:clamp(-108px,-6vw,-24px);padding-inline:clamp(24px,6vw,108px); }
  .work-section,.photos-section { padding-left:5vw;padding-right:5vw; }
  .work-card-feature { grid-template-columns:.9fr 1.1fr; }
  .work-card-feature .card-art { min-height:310px; }
  .hobbies-section { padding-left:5vw;padding-right:5vw; }
  .hobby-grid { grid-template-columns:1.12fr .88fr;gap:16px; }
  .hobby-card { grid-template-columns:1fr; }
  .hobby-visual { min-height:220px; }
  .hobby-content { min-height:205px; }
}
@media (max-width:900px) {
  .about-grid { gap:clamp(20px,3vw,34px); }
  .about-heading h2 { font-size:clamp(2.15rem,4vw,3rem); }
  .photo-grid { grid-template-columns:1fr 1fr;grid-template-rows:minmax(220px,32vw) minmax(190px,26vw) minmax(190px,26vw); }
  .photo-card-tall { grid-column:1/-1;grid-row:auto; }
  .photo-card:nth-child(2),.photo-card:nth-child(3) { transform:none; }
  .photo-grid-page { grid-template-rows:minmax(240px,min(36vw,420px)) minmax(200px,min(30vw,340px)) minmax(200px,min(30vw,340px)); }
  .photos-heading { align-items:flex-start;flex-direction:column;gap:14px; }
  .photos-heading h2 { font-size:clamp(2.8rem,8vw,5rem); }
  .photos-note { max-width:480px;margin:0; }
  .topic-heading { gap:18px 28px; }
  .practice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .research-interests { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .about-section { padding-inline:clamp(20px,5vw,38px); }
  .about-grid { grid-template-columns:1fr;gap:34px;padding:48px 0 20px; }
  .about-heading h2 { max-width:620px;font-size:clamp(2.5rem,9vw,4rem); }
  .profile-badge,.profile-shortcuts { max-width:520px; }
  .work-grid { grid-template-columns:1fr;max-width:680px; }
  .work-card-feature { grid-column:auto;grid-template-columns:1fr; }
  .work-card-feature .card-art { grid-row:auto;min-height:0;height:clamp(240px,42vw,340px); }
  .hobby-grid { grid-template-columns:1fr;max-width:680px; }
  .hobby-versus { display:none; }
  .piano-card,.photography-card { margin-top:0;transform:none; }
  .photography-card { min-height:0; }
  .photo-grid { grid-template-rows:minmax(210px,36vw) minmax(180px,28vw) minmax(180px,28vw); }
  .topic-heading,.topic-feature { grid-template-columns:1fr; }
  .topic-heading > p:last-child { justify-self:start;max-width:580px; }
  .topic-art { min-height:clamp(260px,54vw,380px); }
  .topic-feature-copy { padding:12px 4px 4px; }
}
@media (max-width:640px) {
  .topline { height:64px;padding:0 14px 0 16px; }
  .brand { min-width:0;gap:9px; }
  .portrait-frame { width:38px;height:38px; }
  .brand-name { font-size:9px; }
  .topline-contact { padding:8px;font-size:8px; }
  .side-rail { position:sticky;z-index:31;top:0;inset:auto;width:auto;height:46px;flex-direction:row;justify-content:space-around;gap:0;padding-top:0;border-right:0;border-bottom:1px solid rgba(236,228,210,.13); }
  .side-rail::before { display:none; }
  .rail-logo { width:30px;height:30px;margin:0; }
  .rail-link { width:auto;min-height:46px;padding:0 5px;flex-direction:row;gap:4px;font-size:6px;letter-spacing:.025em; }
  .rail-link.active::before { left:auto;bottom:0;width:29px;height:2px; }
  .rail-icon { font-size:14px; }
  .rail-bottom { display:none; }
  main { margin-left:0; }
  main > section[id] { scroll-margin-top:54px; }
  .hero { min-height:calc(100svh - 110px);min-height:max(620px,calc(100svh - 110px));padding:50px 21px 57px;align-items:center; }
  .hero-city img { object-position:61% center; }
  .hero-overlay { background:linear-gradient(90deg,rgba(12,13,13,.83),rgba(12,13,13,.38)),linear-gradient(0deg,rgba(10,11,11,.89),transparent 75%); }
  .hero-kicker { gap:8px;font-size:7px;letter-spacing:.09em;margin-bottom:24px; }
  .kicker-line { width:24px; }
  .hero h1 { font-size:clamp(1.9rem,10.5vw,4.4rem);line-height:.86;text-shadow:4px 6px 0 rgba(12,8,7,.86),7px 9px 0 rgba(116,38,60,.68); }
  .title-line:first-child { transform:rotate(-1.5deg) translateX(-.02em); }
  .title-last { margin-left:.08em;font-size:.71em; }
  .hero-bottom { width:100%;margin:38px 0 0;align-items:flex-end;gap:10px; }
  .hero-intro { max-width:240px;font-size:14px; }
  .round-link { width:62px;height:62px;font-size:6px; }
  .hero-tags { gap:5px;margin-top:26px; }
  .hero-tags a { padding:6px 7px;font-size:7px; }
  .hero-caption { left:21px;right:19px;bottom:14px;width:auto;transform:none;font-size:6px; }
  .section-marker { font-size:6px;letter-spacing:.07em; }
  .about-section { padding:22px 21px 0; }
  .about-grid { grid-template-columns:1fr;gap:38px;padding:49px 0 18px; }
  .about-heading h2 { font-size:clamp(2.05rem,9.5vw,3.5rem); }
  .profile-badge { margin:28px 0 0 8px; }
  .profile-shortcuts { max-width:none;margin-right:0; }
  .profile-shortcuts a { font-size:6px;padding:8px 6px; }
  .interest-note { grid-template-columns:1fr auto;gap:8px 12px;padding:15px 10px; }
  .interest-note > span { grid-column:1/-1; }
  .interest-note p { font-size:13px; }
  .interest-note a { grid-column:1/-1;justify-self:start; }
  .about-body p { font-size:13px; }
  .about-body p.lede { font-size:1.35rem; }
  .quick-facts { margin-top:27px; }
  .quick-facts > div { min-height:78px; }
  .quick-facts > div:not(:first-child) { padding-left:8px; }
  .fact-label { font-size:6px; }
  .fact-value { font-size:10px; }
  .work-section,.photos-section { padding:22px 15px 70px; }
  .work-section { padding-top:15px; }
  .work-heading { display:block;padding:52px 5px 31px; }
  .work-heading .overline { margin:0 0 13px; }
  .work-heading h2 { font-size:clamp(3.6rem,15vw,5.1rem); }
  .work-deck { margin:19px 0 0;max-width:280px;font-size:13px; }
  .work-grid { grid-template-columns:1fr;gap:19px; }
  .work-card-feature { grid-column:auto;display:block; }
  .work-card-feature .card-art { min-height:0;height:235px; }
  .card-art { height:225px; }
  .card-meta { font-size:6px; }
  .work-card h3 { font-size:2rem; }
  .hobbies-section { padding:22px 15px 65px; }
  .hobbies-heading { padding:48px 5px 27px; }
  .hobbies-heading h2 { font-size:clamp(3.5rem,15vw,5rem); }
  .hobby-grid { grid-template-columns:1fr;gap:15px; }
  .piano-card,.photography-card { margin-top:0;transform:none; }
  .hobby-card { grid-template-columns:1fr;min-height:0; }
  .hobby-visual { min-height:230px; }
  .hobby-content { min-height:0;padding:18px 16px; }
  .hobby-content h3 { font-size:1.9rem; }
  .hobby-content p { font-size:11px; }
  .photos-heading { display:block;padding:48px 5px 27px; }
  .photos-heading h2 { font-size:clamp(3.7rem,15vw,5.2rem); }
  .photos-note { margin:18px 0 0;font-size:12px; }
  .photo-grid { grid-template-columns:1fr 1fr;grid-template-rows:220px 190px;gap:9px; }
  .photo-card-tall { grid-column:1/-1;grid-row:auto; }
  .photo-card figcaption { left:9px;right:8px;bottom:9px; }
  .photo-card figcaption b { font-size:7px; }
  .photo-card figcaption small { font-size:5px; }
  .photo-card figcaption a { width:25px;height:25px; }
  .photo-tip { font-size:7px;line-height:1.6; }
  .contact-section { min-height:670px;padding:22px 21px 0; }
  .contact-content { margin:59px auto 60px; }
  .contact-content h2 { font-size:clamp(3.4rem,13vw,5.1rem); }
  .contact-fullname { font-size:.64em; }
  .contact-copy { max-width:300px;font-size:13px; }
  .contact-links > a { grid-template-columns:1fr 18px;gap:3px 11px;padding:11px 2px; }
  .contact-links > a > span { grid-column:1; }
  .contact-links > a > b { grid-column:1;grid-row:2;font-size:10px; }
  .contact-links > a > i { grid-column:2;grid-row:1/3; }
  .footer { flex-wrap:wrap;font-size:6px; }
  .detail-hero { min-height:max(590px,calc(100svh - 110px));padding:48px 21px 65px; }
  .detail-hero h1 { font-size:clamp(2.5rem,12vw,4.8rem);text-shadow:3px 5px 0 rgba(0,0,0,.8),5px 7px 0 rgba(116,38,60,.48); }
  .detail-hero h1 .title-last { font-size:.69em; }
  .detail-hero-copy > p { max-width:340px;margin-top:22px;font-size:14px; }
  .photo-gallery-page,.piano-room { padding:22px 15px 65px; }
  .photo-grid-page { grid-template-rows:230px 190px;gap:9px; }
  .piano-room-heading { display:block;padding:48px 5px 27px; }
  .piano-room-heading .overline { margin:0 0 13px; }
  .piano-room-heading h2 { font-size:clamp(3rem,12vw,4.7rem); }
  .piano-intro { margin:18px 0 0;font-size:12px; }
  .visualizer-panel { min-height:132px;padding:11px 10px; }
  #piano-visualizer { height:95px; }
  .visualizer-baseline { left:10px;right:10px; }
  .track-card { grid-template-columns:32px minmax(0,1fr) 42px 78px;gap:8px;padding:12px 8px; }
  .track-info h3 { font-size:1.05rem; }
  .track-info p { font-size:9px; }
  .track-number { font-size:17px; }
  .track-button { min-width:76px;min-height:38px;font-size:8px;gap:5px; }
  .track-duration { font-size:8px; }
  .detail-footer { flex-wrap:wrap;padding:14px 17px;font-size:7px; }
  .topic-content { padding:22px 15px 58px; }
  .topic-heading { padding:48px 5px 26px; }
  .topic-heading h2 { font-size:clamp(2.45rem,10vw,4rem); }
  .topic-heading > p:last-child { margin-top:8px;font-size:13px; }
  .topic-feature { gap:16px;padding:10px; }
  .topic-feature-copy h3 { font-size:clamp(1.75rem,8vw,2.6rem); }
  .topic-feature-copy > p { font-size:13px; }
  .practice-heading { display:block;padding:56px 5px 23px; }
  .practice-heading h2 { font-size:clamp(2.45rem,10vw,3.8rem); }
  .practice-grid,.research-interests { grid-template-columns:1fr;gap:10px; }
  .practice-card,.research-interest-card { min-height:0;padding:17px 15px 20px; }
  .practice-card[id] { scroll-margin-top:58px; }
  .practice-card:nth-child(2),.practice-card:nth-child(4) { transform:none; }
  .practice-card h3 { margin:14px 0 8px;font-size:1.4rem; }
  .practice-card p { font-size:12px; }
  .topic-endnote { align-items:flex-start;flex-direction:column;margin-top:32px; }
  .topic-feature .card-meta { font-size:6px; }
}
@media (max-width:390px) {
  .rail-link { padding:0 3px; }
  .rail-link span:last-child { font-size:5.5px; }
  .hobby-card { grid-template-columns:1fr; }
  .hobby-visual { min-height:190px; }
  .hobby-content { min-height:0; }
  .photo-grid { grid-template-columns:1fr;grid-template-rows:220px 190px 190px; }
  .photo-card-tall { grid-column:auto; }
  .footer { gap:9px; }
  .track-card { grid-template-columns:28px minmax(0,1fr) 72px;gap:7px;padding:10px 7px; }
  .track-duration { display:none; }
  .track-number { font-size:15px; }
  .track-button { min-width:70px; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto !important;animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important; }
  .reveal { opacity:1;transform:none; }
}

/* Recent theme accents and MIDI piano styling. */
.rail-link:nth-of-type(even) .rail-icon { color:#35b9d6; }
.rail-link:nth-of-type(odd) .rail-icon { color:var(--wine-light); }
.hero-tags a[href="piano.html"],.hero-tags a[href="photos.html"] { color:#8de5f2;background:rgba(24,105,130,.42);border-color:rgba(88,199,221,.62); }
.hero-tags a[href="piano.html"]:hover,.hero-tags a[href="photos.html"]:hover { color:var(--paper);background:rgba(28,135,163,.84);border-color:#8de5f2; }
.research-link-card .work-card-action { background:rgba(24,105,130,.88);border-color:rgba(88,199,221,.58);color:var(--paper); }
.research-link-card:hover .work-card-action { background:#1c87a3;border-color:#8de5f2; }
.interest-note-links { display:flex;align-items:center;justify-content:flex-end;gap:16px; }
.interest-note-links a { white-space:nowrap; }
.about-section > .section-marker span:last-child { color:#d7cfc0; }
.photography-visual .photo-stamp { color:var(--paper);background:rgba(38,126,148,.82);border-color:rgba(115,215,232,.65); }
.piano-visual { background:linear-gradient(140deg,#20151a,#101514 72%); }
.piano-visual > img { display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.05) rotate(-1.4deg);filter:grayscale(.62) contrast(1.16) brightness(.62) sepia(.18);transition:filter .35s,transform .4s; }
.piano-visual::after { content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(120deg,rgba(116,38,60,.45),rgba(21,25,24,.08) 54%,rgba(18,84,102,.22));mix-blend-mode:color; }
.piano-card:hover .piano-visual > img { transform:scale(1.1) rotate(-1.4deg);filter:grayscale(.2) contrast(1.1) brightness(.84); }
.piano-glow { z-index:2;background:linear-gradient(120deg,transparent 15%,rgba(48,196,160,.12) 42%,transparent 75%); }
.piano-label { z-index:3;top:auto;left:12px;bottom:12px;padding:6px 9px;border:1px solid rgba(209,139,152,.56);border-radius:3px;color:var(--paper);background:rgba(116,38,60,.85);font-size:8px;letter-spacing:.1em;transform:rotate(-3deg); }
.piano-detail-hero .title-line:first-child { text-shadow:5px 7px 0 rgba(0,0,0,.8),8px 10px 0 rgba(116,38,60,.56); }
.visualizer-panel { min-height:0; }
.visualizer-baseline { top:88px; }
.keyboard-heading { display:flex;justify-content:space-between;gap:12px;margin:0 1px 7px;color:var(--paper-muted);font:500 7px/1.4 var(--mono);letter-spacing:.1em; }
.keyboard-heading span:first-child { color:#67d0e1; }
.keyboard-scroll { overflow-x:auto;overflow-y:hidden;padding-bottom:5px;scrollbar-color:rgba(48,196,160,.45) rgba(9,13,12,.9);scrollbar-width:thin; }
.piano-roll { display:block;width:100%;min-width:970px;height:148px; }
.midi-keyboard { position:relative;display:grid;grid-template-columns:repeat(52,minmax(0,1fr));grid-template-rows:82px;min-width:970px;height:82px;border:1px solid rgba(236,228,210,.4);background:#151816; }
.midi-key { display:block;pointer-events:none; }
.white-key { z-index:1;grid-row:1;position:relative;border-right:1px solid rgba(12,14,13,.44);border-bottom:4px solid #b9b6aa;background:linear-gradient(180deg,#f1eddf,#d0ccbf);transition:background .08s,box-shadow .08s; }
.white-key.is-active { background:linear-gradient(180deg,#b8f1f4,#50b9ce);box-shadow:inset 0 -5px 0 rgba(30,126,151,.7); }
.black-key { position:absolute;z-index:2;top:0;width:1.19%;height:57%;border:1px solid #050606;border-radius:0 0 2px 2px;background:linear-gradient(100deg,#090b0b,#292a28 65%,#090a0a);box-shadow:0 4px 4px rgba(0,0,0,.45);transition:background .08s,box-shadow .08s; }
.black-key.is-active { background:linear-gradient(100deg,#70283e,#cf758c 64%,#267e94);box-shadow:0 0 9px rgba(53,185,214,.6); }
.track-card { row-gap:8px; }
.track-progress { grid-column:1/-1;position:relative;display:block;height:12px;overflow:visible;margin-top:-5px;border-radius:5px;background:transparent;cursor:pointer;touch-action:pan-y; }
.track-progress::before { content:"";position:absolute;inset:4px 0;border-radius:5px;background:rgba(236,228,210,.16); }
.track-progress span { position:absolute;z-index:1;left:0;top:4px;display:block;width:var(--progress,0%);height:4px;border-radius:5px;background:linear-gradient(90deg,var(--wine-light),#35b9d6);transition:width .08s linear; }
.track-progress:focus-visible { outline:2px solid var(--teal);outline-offset:2px; }
.topic-content > .presentation-heading,.research-deck-grid,.topic-content > .design-showcase-heading { max-width:1320px;margin-left:auto;margin-right:auto; }
.presentation-heading,.design-showcase-heading { display:grid;grid-template-columns:1.1fr .9fr;align-items:end;gap:15px 38px;padding:clamp(66px,8vw,105px) clamp(4px,2vw,26px) 27px; }
.presentation-heading .overline,.design-showcase-heading .overline { grid-column:1/-1;margin:0 0 -7px; }
.presentation-heading h2,.design-showcase-heading h2 { margin:0;color:var(--paper);font:700 clamp(2.5rem,4.5vw,4.5rem)/.98 var(--display);letter-spacing:-.025em; }
.presentation-heading > p:last-child,.design-showcase-heading > p:last-child { justify-self:end;max-width:430px;margin:0 0 5px;color:var(--paper-muted);font-size:14px;line-height:1.65; }
.research-deck-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px; }
.research-deck-card { min-width:0;position:relative;padding:20px 18px;border:1px solid rgba(236,228,210,.14);border-radius:3px;background:linear-gradient(145deg,rgba(30,47,42,.88),rgba(19,24,22,.97)); }
.research-deck-card:nth-child(2) { background:linear-gradient(145deg,rgba(61,32,42,.78),rgba(22,24,23,.97)); }
.research-deck-card:nth-child(3) { background:linear-gradient(145deg,rgba(27,57,59,.78),rgba(19,25,24,.97)); }
.research-deck-card h3 { margin:20px 0 9px;color:var(--paper);font:600 clamp(1.25rem,1.7vw,1.65rem)/1.12 var(--display); }
.research-deck-card > p { margin:0;color:#b8b8ad;font-size:13px;line-height:1.65; }
.research-deck-card dl { display:grid;gap:8px;margin:19px 0 0; }
.research-deck-card dl div { display:grid;grid-template-columns:85px 1fr;gap:8px;padding-top:7px;border-top:1px solid rgba(236,228,210,.12); }
.research-deck-card dt { color:var(--wine-light);font:500 7px/1.4 var(--mono);letter-spacing:.08em; }
.research-deck-card dd { margin:0;color:#c9c6bb;font-size:11px;line-height:1.4; }

/* Selected identity work and linked original artwork. */
.idrl-topic-art { background:radial-gradient(ellipse at 54% 48%,rgba(48,196,160,.13),transparent 53%),linear-gradient(140deg,#18211e,#151817 75%); }
.idrl-topic-art img { width:100%;max-width:560px;max-height:82%;height:auto;object-fit:contain;filter:drop-shadow(7px 9px 0 rgba(116,38,60,.46)); }
.idrl-topic-art .topic-art-caption { right:5%;bottom:6%; }
.idrl-feature-image { position:absolute;z-index:1;inset:0;display:grid;place-items:center; }
.idrl-feature-image img { transition:transform .35s,filter .35s; }
.idrl-feature-image:hover img { transform:translateY(-3px) scale(1.025);filter:drop-shadow(8px 11px 0 rgba(116,38,60,.57)); }
.image-open-indicator { position:absolute;right:12px;bottom:12px;z-index:2;display:grid;width:31px;height:31px;place-items:center;border:1px solid rgba(236,228,210,.65);border-radius:50%;color:#101413;background:var(--paper);font:800 17px/1 Georgia,serif;text-shadow:1px 1px 0 rgba(116,38,60,.5),2px 2px 0 rgba(38,126,148,.38);transition:transform .2s,background .2s; }
.design-project-image:hover .image-open-indicator,.idrl-feature-image:hover .image-open-indicator,.recognition-image:hover .image-open-indicator { transform:translate(2px,-2px) rotate(-7deg);background:#fff8e9; }
.design-project-grid { display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;max-width:1320px;margin:0 auto; }
.design-project-card { min-width:0;grid-column:span 2;overflow:hidden;border:1px solid rgba(236,228,210,.14);border-radius:4px;background:linear-gradient(150deg,rgba(28,39,35,.97),rgba(18,22,21,.98));transition:transform .24s,border-color .24s,box-shadow .24s; }
.design-project-card:hover { transform:translateY(-3px);border-color:rgba(48,196,160,.48);box-shadow:0 15px 32px rgba(0,0,0,.19); }
.design-project-featured { grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:stretch; }
.design-project-image { min-width:0;aspect-ratio:1.68;position:relative;display:grid;place-items:center;overflow:hidden;background:#f1eee4; }
.design-project-image img { display:block;width:100%;height:100%;object-fit:contain;transition:transform .32s; }
.design-project-image:hover img { transform:scale(1.025); }
.design-project-featured .design-project-image { min-height:320px;aspect-ratio:auto;border-right:1px solid rgba(236,228,210,.12); }
.design-image-board,.design-image-type { background:#f8f7f3; }
.design-image-concept { background:#f7f6f1; }
.design-image-type img { object-fit:cover; }
.design-image-lockup { background:#f8f7f3; }
.design-image-umme { background:#f3f3f0; }
.design-project-copy { min-width:0;padding:18px 17px 20px; }
.design-project-featured .design-project-copy { display:flex;flex-direction:column;justify-content:center;padding:clamp(24px,4vw,54px); }
.design-project-meta { display:flex;justify-content:space-between;gap:12px;color:#d18b98;font:500 7px/1.45 var(--mono);letter-spacing:.09em; }
.design-project-meta span:last-child { color:#a8aaa0;text-align:right; }
.design-project-copy h3 { margin:18px 0 9px;color:var(--paper);font:600 clamp(1.28rem,1.8vw,1.8rem)/1.12 var(--display); }
.design-project-featured .design-project-copy h3 { max-width:550px;font-size:clamp(2rem,3.4vw,3.1rem); }
.design-project-copy > p { margin:0;color:#b8b8ad;font-size:12px;line-height:1.7; }
.design-project-featured .design-project-copy > p { max-width:560px;font-size:14px; }
.design-tags { display:flex;flex-wrap:wrap;gap:6px;margin:17px 0 0; }
.design-tags span { padding:5px 7px;border:1px solid rgba(48,196,160,.28);color:#83d9c3;font:500 6px/1.3 var(--mono);letter-spacing:.08em; }
.design-source-links { display:flex;flex-wrap:wrap;gap:7px 14px;margin-top:17px;padding-top:13px;border-top:1px solid rgba(236,228,210,.12); }
.design-source-links a,.recognition-copy > a { display:inline-flex;align-items:center;gap:7px;color:#67d0e1;text-decoration:none;font:600 7px/1.45 var(--mono);letter-spacing:.06em; }
.design-source-links a:hover,.recognition-copy > a:hover { color:var(--paper); }
.design-source-links b,.recognition-copy > a b { font:800 13px/1 Georgia,serif;-webkit-text-stroke:.4px currentColor;text-shadow:1px 1px 0 rgba(116,38,60,.6),2px 2px 0 rgba(38,126,148,.34); }
.design-project-card:nth-child(5),.design-project-card:nth-child(6) { grid-column:span 3; }
.design-project-card:nth-child(5) .design-project-image,.design-project-card:nth-child(6) .design-project-image { aspect-ratio:1.9; }
.design-recognition { display:grid;grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr);align-items:center;gap:clamp(22px,4vw,54px);max-width:1320px;margin:42px auto 0;padding:clamp(14px,2vw,24px);border:1px solid rgba(236,228,210,.14);border-radius:4px;background:linear-gradient(110deg,rgba(27,38,34,.9),rgba(37,24,29,.83)); }
.recognition-image { min-width:0;aspect-ratio:1.48;position:relative;display:block;overflow:hidden;border:1px solid rgba(236,228,210,.22);background:#f7f5ef; }
.recognition-image img { display:block;width:100%;height:100%;object-fit:contain;transition:transform .32s; }
.recognition-image:hover img { transform:scale(1.025); }
.recognition-copy { padding:15px 10px; }
.recognition-copy .overline { margin:0 0 10px;color:#d18b98;font:500 7px/1.45 var(--mono);letter-spacing:.11em; }
.recognition-copy h3 { margin:0 0 11px;color:var(--paper);font:600 clamp(1.7rem,2.8vw,2.7rem)/1.05 var(--display); }
.recognition-copy > p:not(.overline) { max-width:470px;margin:0;color:#b8b8ad;font-size:13px;line-height:1.7; }
.recognition-copy > a { margin-top:19px; }
.design-content > .design-recognition,.design-project-grid { scroll-margin-top:20px; }

@media (max-width:1000px) {
  .design-project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .design-project-card,.design-project-card:nth-child(5),.design-project-card:nth-child(6) { grid-column:span 1; }
  .design-project-featured { grid-column:1/-1; }
  .design-project-card:nth-child(5) .design-project-image,.design-project-card:nth-child(6) .design-project-image { aspect-ratio:1.68; }
}
@media (max-width:760px) {
  .design-project-featured { grid-template-columns:1fr; }
  .design-project-featured .design-project-image { min-height:clamp(240px,62vw,370px);border-right:0;border-bottom:1px solid rgba(236,228,210,.12); }
  .design-project-featured .design-project-copy { padding:24px 18px; }
  .design-project-featured .design-project-copy h3 { font-size:clamp(1.9rem,8vw,2.7rem); }
  .design-project-featured .design-project-copy > p { font-size:13px; }
  .design-project-grid { grid-template-columns:1fr; }
  .design-project-card,.design-project-card:nth-child(5),.design-project-card:nth-child(6),.design-project-featured { grid-column:auto; }
  .design-project-card .design-project-image,.design-project-card:nth-child(5) .design-project-image,.design-project-card:nth-child(6) .design-project-image { aspect-ratio:1.55; }
  .design-recognition { grid-template-columns:1fr;gap:12px;margin-top:24px; }
  .recognition-copy { padding:12px 5px 7px; }
}

@media (max-width:900px) {
  .research-deck-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .research-deck-card:last-child { grid-column:1/-1; }
}
@media (max-width:760px) {
  .research-deck-grid { grid-template-columns:1fr; }
  .research-deck-card:last-child { grid-column:auto; }
  .presentation-heading,.design-showcase-heading { display:block;padding:55px 5px 23px; }
  .presentation-heading h2,.design-showcase-heading h2 { font-size:clamp(2.45rem,10vw,3.8rem); }
  .presentation-heading > p:last-child,.design-showcase-heading > p:last-child { margin-top:12px;font-size:13px; }
}
@media (max-width:640px) {
  .interest-note { grid-template-columns:1fr; }
  .interest-note-links { flex-wrap:wrap;justify-content:flex-start;gap:10px 16px; }
  .about-section > .section-marker span:last-child { max-width:58%;text-align:right;font-size:5px;line-height:1.5; }
  .visualizer-baseline { top:73px; }
  .track-progress { margin-top:-3px; }
}
.topline-contact { border:1px solid var(--wine-light);background:#0b0b0a;box-shadow:0 0 0 2px rgba(116,38,60,.84),0 0 0 3px rgba(38,126,148,.54),4px 4px 0 rgba(116,38,60,.36); }
.topline-contact:hover { border-color:var(--wine-light);background:var(--wine);box-shadow:0 0 0 2px rgba(116,38,60,.94),0 0 0 3px rgba(38,126,148,.6),4px 4px 0 rgba(116,38,60,.42); }
.round-link { border:1px solid var(--wine-light);background:rgba(14,18,17,.9);box-shadow:0 0 0 2px rgba(116,38,60,.84),0 0 0 3px rgba(38,126,148,.54),4px 4px 0 rgba(116,38,60,.36); }
.round-link:hover { border-color:var(--wine-light);background:var(--wine);box-shadow:0 0 0 2px rgba(116,38,60,.94),0 0 0 3px rgba(38,126,148,.6),4px 4px 0 rgba(116,38,60,.42); }
.show-more-button b { font:800 16px/1 Georgia,serif;-webkit-text-stroke:.55px currentColor;text-shadow:1px 1px 0 rgba(116,38,60,.72),2px 2px 0 rgba(38,126,148,.42);transform:rotate(-7deg); }
.show-more-button:hover b { transform:translate(2px,-2px) rotate(-7deg); }
.profile-cta.idrl-identity-cta { background:rgba(38,126,148,.88);border-color:rgba(104,210,226,.68);box-shadow:0 0 0 1px rgba(38,126,148,.3); }
.profile-cta.idrl-identity-cta:hover { background:#1f6f84;border-color:#62cde1;box-shadow:0 0 0 1px rgba(38,126,148,.45); }

/* IDRL identity case study */
.idrl-case-link { width:fit-content;max-width:100%;min-height:54px;display:inline-flex;align-items:center;justify-content:space-between;gap:18px;margin:22px 0 0;padding:6px 8px 6px 14px;border:1px solid rgba(209,139,152,.76);border-radius:4px;color:var(--paper);background:var(--wine);box-shadow:0 0 0 2px rgba(116,38,60,.55),0 0 0 3px rgba(38,126,148,.3),4px 4px 0 rgba(116,38,60,.38);text-decoration:none;font:700 8px/1.4 var(--mono);letter-spacing:.075em;transition:transform .2s,box-shadow .2s,background .2s; }
.idrl-case-link b { width:33px;height:33px;flex:none;display:grid;place-items:center;border-radius:50%;color:var(--ink);background:var(--paper);font:800 18px/1 Georgia,serif;-webkit-text-stroke:.4px currentColor;text-shadow:1px 1px 0 rgba(116,38,60,.65),2px 2px 0 rgba(38,126,148,.45);transition:transform .2s; }
.idrl-case-link:hover { transform:translateY(-2px);background:#8d2c47;box-shadow:0 0 0 2px rgba(116,38,60,.64),0 0 0 3px rgba(38,126,148,.38),5px 5px 0 rgba(116,38,60,.43); }
.idrl-case-link:hover b { transform:translate(2px,-2px) rotate(-7deg); }
.design-project-grid-single { grid-template-columns:minmax(0,1fr); }
.design-project-grid-single .design-project-featured { grid-column:1; }
.design-project-grid-single .design-project-featured .design-project-image { min-height:0;align-self:center;aspect-ratio:1.7;background:#f5f4f0; }
.design-project-grid-single .design-project-featured .design-project-image img { object-fit:contain; }
.design-project-grid-single .design-project-copy > p { max-width:650px; }
.idrl-detail-hero .detail-hero-copy { max-width:1120px; }
.idrl-hero-cta { width:fit-content;min-height:43px;display:inline-flex;align-items:center;gap:20px;margin:24px 0 0 5px;padding:0 12px;border:1px solid rgba(48,196,160,.64);color:var(--paper);background:rgba(13,50,48,.76);text-decoration:none;font:600 8px/1.4 var(--mono);letter-spacing:.1em;transition:background .2s,border-color .2s,transform .2s; }
.idrl-hero-cta b { color:#58d5bb;font:800 17px/1 Georgia,serif;text-shadow:1px 1px 0 rgba(116,38,60,.86); }
.idrl-hero-cta:hover { transform:translateY(-2px);border-color:var(--wine-light);background:rgba(116,38,60,.82); }
.idrl-section-nav { max-width:1320px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:25px auto 0;padding:13px 14px;border:1px solid rgba(236,228,210,.12);background:linear-gradient(110deg,rgba(20,47,42,.7),rgba(28,23,25,.76)); }
.idrl-section-nav > span { margin:0 8px;color:var(--wine-light);font:500 7px/1.5 var(--mono);letter-spacing:.13em; }
.idrl-section-nav a { padding:7px 9px;border:1px solid rgba(48,196,160,.2);color:#b8d7cc;text-decoration:none;font:500 7px/1.35 var(--mono);letter-spacing:.08em;transition:background .2s,color .2s,border-color .2s; }
.idrl-section-nav a:hover { border-color:var(--teal);color:var(--paper);background:rgba(38,126,148,.24); }
.idrl-case-section { max-width:1320px;margin:0 auto;padding:clamp(50px,7vw,91px) clamp(4px,1.5vw,20px);border-bottom:1px solid rgba(236,228,210,.14);scroll-margin-top:26px; }
.idrl-section-heading { display:grid;grid-template-columns:minmax(0,1.05fr) minmax(250px,.78fr);align-items:end;gap:20px clamp(28px,5vw,76px);margin:0 0 26px; }
.idrl-section-heading .overline { margin:0 0 12px;color:var(--wine-light);font:500 8px/1.45 var(--mono);letter-spacing:.13em; }
.idrl-section-heading h2 { max-width:760px;margin:0;color:var(--paper);font:700 clamp(2.5rem,5vw,5rem)/.99 var(--display);letter-spacing:-.035em; }
.idrl-section-heading > p { max-width:530px;margin:0 0 5px;color:#c1c2b8;font-size:clamp(14px,1.15vw,17px);line-height:1.7; }
.idrl-identity-panel { display:grid;grid-template-columns:minmax(0,1.12fr) minmax(280px,.88fr);align-items:stretch;gap:0;border:1px solid rgba(236,228,210,.17);background:linear-gradient(115deg,rgba(28,39,35,.95),rgba(34,25,28,.94)); }
.idrl-board-image { min-width:0;display:grid;place-items:center;margin:0;padding:clamp(10px,1.6vw,22px);background:#f8f7f3; }
.idrl-board-image img { display:block;width:100%;height:auto;object-fit:contain; }
.idrl-identity-copy { align-self:center;padding:clamp(20px,3vw,42px); }
.idrl-label { margin:0 0 9px;color:#69d3c0;font:500 7px/1.5 var(--mono);letter-spacing:.13em; }
.idrl-identity-copy h3,.idrl-card-copy h3,.idrl-exploration-card h3,.idrl-animation-info h3,.idrl-certificate-copy h3 { margin:0 0 12px;color:var(--paper);font:650 clamp(1.45rem,2.4vw,2.25rem)/1.1 var(--display); }
.idrl-identity-copy > p:not(.idrl-label),.idrl-card-copy > p:not(.idrl-label),.idrl-exploration-card > div > p:not(.idrl-label),.idrl-animation-info > p:not(.idrl-label),.idrl-certificate-copy > p:not(.idrl-label) { margin:0 0 12px;color:#bcbeb3;font-size:13px;line-height:1.7; }
.idrl-inline-links { display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:21px; }
.idrl-inline-links a,.idrl-card-copy > a,.idrl-exploration-card > div > a,.idrl-secondary-link { display:inline-flex;align-items:center;gap:7px;color:#6fd8df;text-decoration:none;font:600 7px/1.5 var(--mono);letter-spacing:.065em; }
.idrl-inline-links a b,.idrl-card-copy > a b,.idrl-exploration-card > div > a b,.idrl-secondary-link b { font:800 13px/1 Georgia,serif;-webkit-text-stroke:.4px currentColor;text-shadow:1px 1px 0 rgba(116,38,60,.68),2px 2px 0 rgba(38,126,148,.36); }
.idrl-inline-links a:hover,.idrl-card-copy > a:hover,.idrl-exploration-card > div > a:hover,.idrl-secondary-link:hover { color:var(--paper); }
.idrl-logo-pair { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px; }
.idrl-logo-card { min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.8fr);align-items:stretch;overflow:hidden;border:1px solid rgba(236,228,210,.15);background:linear-gradient(140deg,rgba(28,42,37,.96),rgba(23,23,23,.98)); }
.idrl-art-link { min-width:0;min-height:240px;position:relative;display:grid;place-items:center;overflow:hidden;padding:14px;background:#f7f6f1; }
.idrl-art-lockup { background:linear-gradient(90deg,#fafafa 50%,#078181 50%); }
.idrl-art-symbol { background:radial-gradient(circle at 50% 48%,#273b34,#101513 68%); }
.idrl-art-link img { display:block;width:100%;height:100%;max-height:260px;object-fit:contain;transition:transform .3s; }
.idrl-art-link:hover img { transform:scale(1.04); }
.idrl-art-link > span { position:absolute;right:10px;bottom:10px;padding:5px 7px;border:1px solid rgba(236,228,210,.35);color:var(--paper);background:rgba(11,14,13,.78);font:500 6px/1.4 var(--mono);letter-spacing:.09em; }
.idrl-card-copy { align-self:center;padding:clamp(17px,2vw,27px); }
.idrl-card-copy h3 { font-size:clamp(1.25rem,2vw,1.8rem); }
.idrl-card-copy > a { margin-top:6px; }
.idrl-exploration-heading { display:flex;align-items:center;justify-content:space-between;gap:15px;margin:25px 0 11px;padding-bottom:9px;border-bottom:1px solid rgba(236,228,210,.13); }
.idrl-exploration-heading .idrl-label { margin:0; }
.idrl-exploration-heading > span { color:#a9aaa0;font:500 7px/1.5 var(--mono);letter-spacing:.07em; }
.idrl-exploration-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px; }
.idrl-exploration-card { min-width:0;overflow:hidden;border:1px solid rgba(236,228,210,.15);background:rgba(20,25,23,.87); }
.idrl-exploration-image { display:grid;place-items:center;aspect-ratio:1.72;padding:12px;background:#f7f6f1; }
.idrl-exploration-image img { display:block;width:100%;height:100%;object-fit:contain;transition:transform .3s; }
.idrl-exploration-image:hover img { transform:scale(1.025); }
.idrl-exploration-card > div { padding:18px 20px 20px; }
.idrl-exploration-card h3 { font-size:clamp(1.3rem,2.1vw,1.9rem); }
.idrl-theme-panel { overflow:hidden;border:1px solid rgba(236,228,210,.15);background:linear-gradient(135deg,rgba(22,38,34,.94),rgba(31,24,27,.94)); }
.idrl-palette { display:grid;grid-template-columns:repeat(4,minmax(0,1fr)); }
.idrl-swatch { min-height:130px;display:flex;flex-direction:column;justify-content:flex-end;gap:5px;padding:17px;color:white;font:500 7px/1.4 var(--mono);letter-spacing:.08em; }
.idrl-swatch b { font-size:9px;letter-spacing:.04em; }
.idrl-swatch-teal { background:#007f80; }
.idrl-swatch-pink { background:#e50b5b; }
.idrl-swatch-coral { background:#ff8052;color:#191816; }
.idrl-swatch-white { color:#202321;background:#fff;border:1px solid rgba(0,0,0,.12); }
.idrl-contrast-pair { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px; }
.idrl-contrast-pair figure { min-width:0;min-height:170px;display:grid;grid-template-rows:minmax(120px,1fr) auto;place-items:center;margin:0;border:1px solid rgba(236,228,210,.18); }
.idrl-contrast-light { background:#fbfaf7; }
.idrl-contrast-dark { background:#121615; }
.idrl-contrast-pair img { display:block;width:100%;height:100%;max-height:210px;object-fit:contain;padding:25px; }
.idrl-contrast-pair figcaption { width:100%;padding:8px 10px;color:#6c706c;background:rgba(0,0,0,.035);text-align:center;font:500 6px/1.5 var(--mono);letter-spacing:.1em; }
.idrl-contrast-dark figcaption { color:#aaa99c;background:rgba(255,255,255,.035); }
.idrl-theme-note { display:grid;grid-template-columns:165px 1fr;gap:15px;margin-top:15px;padding:13px 16px;border-left:3px solid var(--wine-light);background:rgba(116,38,60,.12); }
.idrl-theme-note b { color:var(--wine-light);font:500 7px/1.5 var(--mono);letter-spacing:.11em; }
.idrl-theme-note p { margin:0;color:#bfc0b6;font-size:12px;line-height:1.6; }
.idrl-type-board-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px; }
.idrl-type-board-grid figure { min-width:0;margin:0;overflow:hidden;border:1px solid rgba(236,228,210,.17);background:#f7f7f5; }
.idrl-type-board-grid img { display:block;width:100%;height:auto; }
.idrl-type-board-grid figcaption { display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;color:#bbb8ad;background:#171b19;font:500 6px/1.5 var(--mono);letter-spacing:.08em; }
.idrl-type-board-grid figcaption a { flex:none;color:#67d0e1;text-decoration:none; }
.idrl-type-board-grid figcaption a:hover { color:var(--paper); }
.idrl-type-scale { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px; }
.idrl-type-sample { min-height:83px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:0 12px;padding:12px;border:1px solid rgba(236,228,210,.14);background:linear-gradient(145deg,rgba(29,43,38,.84),rgba(20,23,22,.96)); }
.idrl-type-sample > span { grid-column:1/-1;align-self:start;color:var(--wine-light);font:500 6px/1.4 var(--mono);letter-spacing:.1em; }
.idrl-type-sample strong { color:var(--paper);font:500 20px/1 Alexandria,Arial,sans-serif; }
.idrl-type-sample small { align-self:end;color:#aaa99c;font:500 7px/1.3 var(--mono); }
.idrl-type-h1 strong { font-weight:500;font-size:28px; }
.idrl-type-h2 strong { font-size:24px; }
.idrl-type-h3 strong { font-size:21px; }
.idrl-type-h4 strong { font-size:18px; }
.idrl-animation-panel { display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:0;border:1px solid rgba(209,139,152,.28);background:linear-gradient(115deg,rgba(45,29,34,.78),rgba(17,34,31,.93));box-shadow:4px 4px 0 rgba(38,126,148,.28); }
.idrl-video-shell { min-width:0;align-self:center;margin:clamp(12px,2vw,23px);overflow:hidden;border:1px solid rgba(236,228,210,.16);background:#090c0b; }
.idrl-video-topline,.idrl-video-caption { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;color:#73d2c0;font:500 6px/1.5 var(--mono);letter-spacing:.1em; }
.idrl-video-topline { border-bottom:1px solid rgba(236,228,210,.1); }
.idrl-video-caption { color:#aaa99c;border-top:1px solid rgba(236,228,210,.1); }
.idrl-video-shell video { display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:#050706; }
.idrl-animation-info { align-self:center;padding:clamp(20px,3vw,38px); }
.idrl-animation-info h3 { font-size:clamp(1.5rem,2.5vw,2.3rem); }
.idrl-download-list { display:grid;gap:7px;margin-top:19px; }
.idrl-download-list a { display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:49px;padding:8px 11px;border:1px solid rgba(48,196,160,.24);color:var(--paper);background:rgba(9,14,12,.42);text-decoration:none;transition:background .2s,border-color .2s,transform .2s; }
.idrl-download-list a:hover { transform:translateX(3px);border-color:var(--teal);background:rgba(38,126,148,.19); }
.idrl-download-list a > span { display:grid;gap:3px; }
.idrl-download-list b { color:#75d6cb;font:600 7px/1.4 var(--mono);letter-spacing:.06em; }
.idrl-download-list small { color:#999b91;font:400 7px/1.4 var(--mono); }
.idrl-download-list i { color:var(--wine-light);font:800 17px/1 Georgia,serif;font-style:normal;text-shadow:1px 1px 0 rgba(38,126,148,.55); }
.idrl-certificate-panel { display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);align-items:center;gap:clamp(20px,4vw,52px);padding:clamp(12px,2vw,23px);border:1px solid rgba(236,228,210,.16);background:linear-gradient(110deg,rgba(26,41,36,.93),rgba(42,25,32,.88)); }
.idrl-certificate-image { min-width:0;position:relative;display:block;overflow:hidden;border:1px solid rgba(236,228,210,.24);background:#f8f7f4; }
.idrl-certificate-image img { display:block;width:100%;height:auto;transition:transform .3s; }
.idrl-certificate-image:hover img { transform:scale(1.02); }
.idrl-certificate-image > span { position:absolute;right:10px;bottom:10px;padding:8px 10px;border:1px solid rgba(236,228,210,.45);color:var(--paper);background:rgba(12,16,15,.85);font:500 7px/1.4 var(--mono);letter-spacing:.08em; }
.idrl-certificate-copy { padding:20px; }
.idrl-certificate-copy h3 { font-size:clamp(1.6rem,2.8vw,2.6rem); }
.idrl-secondary-link { min-height:42px;margin-top:8px;padding:0 11px;border:1px solid rgba(48,196,160,.34);background:rgba(38,126,148,.13); }
.idrl-end-links { max-width:1320px;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:42px auto 0; }
.idrl-end-links a { min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 15px;border:1px solid rgba(236,228,210,.16);color:#69d4c5;background:rgba(19,31,28,.72);text-decoration:none;font:600 7px/1.5 var(--mono);letter-spacing:.08em;transition:background .2s,border-color .2s,color .2s; }
.idrl-end-links a:first-child { border-color:rgba(209,139,152,.46);color:var(--paper);background:rgba(116,38,60,.52); }
.idrl-end-links a:hover { border-color:var(--teal);color:var(--paper);background:rgba(38,126,148,.3); }
.idrl-end-links a b { color:var(--wine-light);font:800 17px/1 Georgia,serif;-webkit-text-stroke:.4px currentColor;text-shadow:1px 1px 0 rgba(38,126,148,.45); }
@media (max-width:1050px) {
  .idrl-logo-card { grid-template-columns:1fr; }
  .idrl-art-link { min-height:220px; }
  .idrl-card-copy { padding:18px; }
}
@media (max-width:760px) {
  .idrl-case-link { min-height:49px;gap:11px;padding-left:11px;font-size:7px; }
  .idrl-case-link b { width:29px;height:29px;font-size:16px; }
  .idrl-section-nav { justify-content:flex-start;gap:6px;margin-top:16px;padding:10px; }
  .idrl-section-nav > span { flex-basis:100%;margin:0 0 2px; }
  .idrl-case-section { padding:52px 3px; }
  .idrl-section-heading { grid-template-columns:1fr;gap:12px;margin-bottom:19px; }
  .idrl-section-heading h2 { font-size:clamp(2.45rem,9vw,3.8rem); }
  .idrl-section-heading > p { justify-self:start; }
  .idrl-identity-panel,.idrl-logo-pair,.idrl-exploration-grid,.idrl-type-board-grid,.idrl-animation-panel,.idrl-certificate-panel { grid-template-columns:1fr; }
  .idrl-identity-copy { padding:22px 19px; }
  .idrl-logo-card { grid-template-columns:minmax(0,1fr) minmax(190px,.85fr); }
  .idrl-art-link { min-height:200px; }
  .idrl-palette { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .idrl-swatch { min-height:100px;padding:12px; }
  .idrl-contrast-pair { grid-template-columns:1fr; }
  .idrl-theme-note { grid-template-columns:1fr;gap:4px; }
  .idrl-type-scale { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .idrl-animation-info { padding:12px 19px 22px; }
  .idrl-certificate-copy { padding:12px 7px 5px; }
  .idrl-end-links { grid-template-columns:1fr;margin-top:28px; }
}
@media (max-width:480px) {
  .idrl-logo-card { grid-template-columns:1fr; }
  .idrl-art-link { min-height:235px; }
  .idrl-type-scale { grid-template-columns:1fr 1fr; }
  .idrl-type-sample { grid-template-columns:1fr;gap:4px; }
  .idrl-type-sample small { justify-self:start; }
  .idrl-video-topline,.idrl-video-caption { font-size:5px; }
}

/* Last-pass layout and page-specific background refinements */
.rail-logo { width:52px;height:52px;margin:12px auto 16px; }
.hero-tags { width:min(100%,960px);max-width:960px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin-top:28px; }
.hero-tag-group { min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px; }
.hero-tag-heading { flex-basis:100%;margin-bottom:1px;color:var(--wine-light);font:500 7px/1.35 var(--mono);letter-spacing:.15em; }
.hero-tag-group a { min-height:30px;padding:7px 9px;color:#f0e5dc;background:rgba(116,38,60,.44);border-color:rgba(209,139,152,.43);font-size:7px; }
.hero-tag-group-work a:hover,.hero-tag-group-work a:focus-visible { background:rgba(132,46,68,.9);border-color:var(--wine-light); }
.hero-tag-group-hobbies { justify-content:flex-end; }
.hero-tag-group-hobbies .hero-tag-heading { color:#7edced;text-align:right; }
.hero-tag-group-hobbies a { color:#a9edfa;background:rgba(24,105,130,.34);border-color:rgba(88,199,221,.55); }
.hero-tag-group-hobbies a:hover,.hero-tag-group-hobbies a:focus-visible { background:rgba(28,135,163,.84);border-color:#8de5f2; }
.hero-tags .hero-tag-group a:first-child { color:#f0e5dc;background:rgba(116,38,60,.44);border-color:rgba(209,139,152,.43); }
.hero-tag-group-hobbies a:first-of-type { color:#a9edfa;background:rgba(24,105,130,.34);border-color:rgba(88,199,221,.55); }
.hero-tag-group-hobbies a:hover:first-of-type { color:var(--paper);background:rgba(28,135,163,.84);border-color:#8de5f2; }

.contact-content { padding:clamp(20px,3.3vw,40px);border:1px solid rgba(209,139,152,.34);border-left:3px solid var(--wine-light);background:linear-gradient(125deg,rgba(74,27,42,.62),rgba(17,25,23,.9) 58%,rgba(17,53,49,.44));box-shadow:0 0 0 1px rgba(38,126,148,.18),9px 10px 0 rgba(116,38,60,.12);backdrop-filter:blur(5px); }
.contact-copy { max-width:520px;padding:12px 14px;border-left:2px solid var(--teal);color:#fff4e7;background:rgba(13,29,27,.56);font-size:15px; }

.photos-detail-hero { background-color:#111817;background-image:var(--grain-image),radial-gradient(ellipse at 78% 45%,rgba(31,111,121,.18),transparent 38%),linear-gradient(120deg,#111817,#15191a 57%,#24171c);background-size:180px 180px,auto,auto;background-blend-mode:soft-light,normal,normal; }
.photos-detail-hero .hero-city img { opacity:0; }
.photos-detail-hero .hero-overlay { background:linear-gradient(90deg,rgba(8,13,13,.82),rgba(9,15,16,.5) 58%,rgba(9,15,16,.18)),linear-gradient(0deg,rgba(7,10,10,.7),transparent 70%); }
.photos-detail-hero .hero-city::before { content:"";position:absolute;inset:7% 8% 10% auto;width:min(42vw,490px);aspect-ratio:1;border:1px solid rgba(111,218,217,.16);border-radius:50%;background:radial-gradient(circle,transparent 0 28%,rgba(111,218,217,.15) 28.2% 28.45%,transparent 28.8% 49%,rgba(209,139,152,.17) 49.3% 49.55%,transparent 49.9%); }
.photos-detail-hero .hero-city::after { content:"";position:absolute;inset:16% 12% 18% auto;width:min(34vw,400px);aspect-ratio:1;border:1px solid rgba(236,228,210,.13);background:linear-gradient(90deg,transparent 33.1%,rgba(236,228,210,.07) 33.3%,transparent 33.5% 66.4%,rgba(236,228,210,.07) 66.6%,transparent 66.8%),linear-gradient(transparent 33.1%,rgba(236,228,210,.07) 33.3%,transparent 33.5% 66.4%,rgba(236,228,210,.07) 66.6%,transparent 66.8%); }
.photo-gallery-page::before { background:radial-gradient(circle at 88% 4%,transparent 0 84px,rgba(111,218,217,.16) 85px,transparent 87px 130px,rgba(209,139,152,.12) 131px,transparent 133px),radial-gradient(ellipse at 17% 73%,rgba(15,119,94,.2),transparent 37%),radial-gradient(ellipse at 88% 24%,rgba(122,31,56,.2),transparent 38%); }
.photo-card-download { position:relative;z-index:3;display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:7px 9px;border-top:1px solid rgba(236,228,210,.12);color:#e5d9cb;background:linear-gradient(90deg,rgba(38,126,148,.13),rgba(116,38,60,.25));text-decoration:none;font:500 7px/1.4 var(--mono);letter-spacing:.12em; }
.photo-card-download b { color:var(--wine-light);font:800 15px/1 Georgia,serif; }
.photo-card-download:hover,.photo-card-download:focus-visible { color:var(--paper);background:rgba(116,38,60,.58); }
.photo-card-download:focus-visible { outline:2px solid var(--cyan);outline-offset:-3px; }

.piano-detail-hero { background-color:#101514;background-image:var(--grain-image),radial-gradient(ellipse at 79% 38%,rgba(116,38,60,.18),transparent 34%),linear-gradient(125deg,#111817,#111514 52%,#1e171a);background-size:180px 180px,auto,auto;background-blend-mode:soft-light,normal,normal; }
.piano-detail-hero .hero-city img { opacity:0; }
.piano-detail-hero .hero-overlay { background:linear-gradient(90deg,rgba(9,13,12,.8),rgba(10,14,13,.45) 65%,rgba(10,12,12,.12)),linear-gradient(0deg,rgba(8,11,10,.66),transparent 70%); }
.piano-detail-hero .hero-city::before { content:"";position:absolute;right:8%;bottom:9%;width:min(48vw,620px);height:66px;border:1px solid rgba(236,228,210,.2);background:linear-gradient(180deg,transparent 0 72%,rgba(236,228,210,.18) 73%,transparent 74%),repeating-linear-gradient(90deg,rgba(236,228,210,.14) 0 1px,transparent 1px 34px);box-shadow:0 9px 35px rgba(0,0,0,.2);opacity:.62; }
.piano-detail-hero .hero-city::after { content:"♪     ♫";position:absolute;right:11%;top:19%;color:rgba(88,213,187,.24);font:700 clamp(2.5rem,5vw,4.5rem)/1 var(--display);letter-spacing:.23em;transform:rotate(-8deg); }
.piano-room::after { content:"";position:absolute;z-index:-1;right:0;bottom:0;width:min(48%,620px);height:132px;pointer-events:none;opacity:.15;background:linear-gradient(180deg,transparent 0 71%,rgba(236,228,210,.55) 72%,transparent 73%),repeating-linear-gradient(90deg,rgba(236,228,210,.45) 0 1px,transparent 1px 34px);mask-image:linear-gradient(90deg,transparent,black 28%,black); }
.track-downloads { display:flex;flex-wrap:wrap;gap:5px 7px;margin-top:7px; }
.midi-download-link,.audio-download-link { margin-top:0; }
.audio-download-link { display:inline-flex;align-items:center;gap:6px;padding:5px 7px;border:1px solid rgba(209,139,152,.52);border-radius:3px;color:#f0c8ce;background:rgba(116,38,60,.5);text-decoration:none;font:600 7px/1.4 var(--mono);letter-spacing:.08em;transition:color .2s,border-color .2s,background .2s; }
.audio-download-link:hover { color:var(--paper);border-color:var(--wine-light);background:rgba(132,46,68,.86); }
.audio-download-link:focus-visible { outline:2px solid var(--wine-light);outline-offset:3px; }
.audio-download-link .arrow-glyph { color:var(--wine-light); }
.piano-label { top:calc(49% - 15px);left:calc(56% - 125px);bottom:auto;padding:6px 9px;border:1px solid rgba(209,139,152,.56);border-radius:3px;color:var(--paper);background:rgba(116,38,60,.85);font-size:8px;letter-spacing:.1em;transform:rotate(-3deg); }

.research-deck-card.research-card-beyond-oil { border-color:rgba(209,139,152,.43);background:linear-gradient(145deg,rgba(70,31,45,.86),rgba(22,24,23,.97)); }
.research-deck-card.research-card-data-note { border-color:rgba(53,185,214,.37);background:linear-gradient(145deg,rgba(24,67,74,.78),rgba(19,25,24,.97)); }
.research-deck-card.research-card-beyond-oil .practice-index,.research-deck-card.research-card-beyond-oil dt { color:var(--wine-light); }
.project-metrics-card { border-color:rgba(209,139,152,.37);background:linear-gradient(145deg,rgba(66,31,44,.84),rgba(21,24,23,.98)); }
.project-text-grid > .project-panel:nth-child(even) { border-color:rgba(53,185,214,.3);background:linear-gradient(145deg,rgba(25,60,66,.72),rgba(19,24,22,.98)); }
.project-entity:nth-child(3n + 2) { background:linear-gradient(145deg,rgba(30,62,66,.82),rgba(20,25,23,.96)); }
.project-entity:nth-child(3n) { background:linear-gradient(145deg,rgba(62,34,44,.74),rgba(20,25,23,.96)); }
.project-entity:nth-child(4) { border-color:rgba(209,139,152,.44);background:linear-gradient(145deg,rgba(73,33,49,.8),rgba(20,25,23,.96)); }
.project-entity:nth-child(4) > span { color:var(--wine-light); }

.project-spatial-results { display:grid;grid-template-columns:minmax(230px,.72fr) minmax(0,1.28fr);align-items:center;gap:clamp(18px,3vw,42px);max-width:1200px;margin:24px auto 0;padding:clamp(17px,2.4vw,28px);border:1px solid rgba(209,139,152,.34);background:linear-gradient(115deg,rgba(68,31,44,.65),rgba(18,25,23,.95) 48%,rgba(22,50,49,.38)); }
.spatial-results-copy .overline { margin-bottom:10px; }
.spatial-results-copy h2 { margin:0 0 11px;color:var(--paper);font:600 clamp(1.45rem,2.4vw,2.15rem)/1.1 var(--display); }
.spatial-results-copy p:not(.overline) { margin:0;color:#c4c2b7;font-size:12px;line-height:1.65; }
.spatial-results-copy p:not(.overline) + p { margin-top:9px; }
.spatial-results-chart-wrap { min-width:0;overflow-x:auto; }
.spatial-results-chart { display:block;width:100%;min-width:560px;height:auto;overflow:visible; }
.spatial-chart-grid line { stroke:rgba(236,228,210,.17);stroke-width:1; }
.spatial-chart-row text,.spatial-chart-axis text { fill:#c7c2b6;font:500 12px var(--mono); }
.spatial-chart-row:nth-of-type(2) rect { fill:#30c4a0; }
.spatial-chart-row:nth-of-type(3) rect { fill:#d18b98; }
.spatial-chart-row:nth-of-type(4) rect { fill:#35b9d6; }
.spatial-chart-row:nth-of-type(5) rect { fill:#30c4a0; }
.spatial-chart-row:nth-of-type(6) rect { fill:#d18b98; }
.spatial-chart-row:nth-of-type(7) rect { fill:#35b9d6; }
.spatial-chart-row .spatial-chart-value { fill:#ede4d8;font-size:11px; }
.spatial-chart-axis text { fill:#93978e;font-size:9px; }

@media (max-width:900px) {
  .hero-tags { grid-template-columns:1fr; }
  .hero-tag-group-hobbies { justify-content:flex-start; }
  .hero-tag-group-hobbies .hero-tag-heading { text-align:left; }
  .project-spatial-results { grid-template-columns:1fr; }
  .spatial-results-copy { max-width:680px; }
}
@media (max-width:760px) {
  .rail-logo { width:45px;height:45px;margin:10px auto 12px; }
  .hero-tag-group a { min-height:28px;padding:6px 7px;font-size:6.5px; }
  .contact-content { padding:19px 15px; }
  .piano-label { top:16px;left:16px; }
  .photos-detail-hero .hero-city::before { right:3%;top:12%;bottom:auto;width:68vw; }
  .photos-detail-hero .hero-city::after { right:8%;top:19%;width:59vw; }
  .piano-detail-hero .hero-city::before { right:4%;bottom:13%;width:72vw;height:50px; }
  .piano-detail-hero .hero-city::after { right:8%;top:13%; }
  .piano-room::after { width:70%;height:96px; }
  .project-spatial-results { margin-top:18px;padding:16px 12px; }
  .spatial-results-chart { min-width:510px; }
  .photo-card-download { padding:7px;font-size:6px; }
}
@media (max-width:430px) {
  .hero-tag-heading { font-size:6px; }
  .contact-content { padding:16px 12px; }
  .contact-copy { padding:10px; }
  .track-downloads { gap:4px; }
  .audio-download-link,.midi-download-link { padding:4px 5px;font-size:6px; }
  .photo-card-download { gap:6px;font-size:5.5px; }
}
.profile-cta b { font:800 16px/1 Georgia,serif;-webkit-text-stroke:.55px currentColor;text-shadow:1px 1px 0 rgba(116,38,60,.72),2px 2px 0 rgba(38,126,148,.42);transform:rotate(-7deg); }
.profile-cta:hover b { transform:translate(2px,-2px) rotate(-7deg); }
.work-link-card .work-card-action > span { font:800 16px/1 Georgia,serif;-webkit-text-stroke:.55px currentColor;text-shadow:1px 1px 0 rgba(116,38,60,.72),2px 2px 0 rgba(38,126,148,.42);transform:rotate(-7deg); }
.work-link-card:hover .work-card-action > span { transform:translate(2px,-2px) rotate(-7deg); }

.research-project-card { display:block;color:inherit;text-decoration:none;transition:transform .22s,border-color .22s,box-shadow .22s; }
.research-project-card:hover { transform:translateY(-3px);border-color:rgba(48,196,160,.6);box-shadow:0 12px 28px rgba(0,0,0,.2); }
.research-project-card:focus-visible { outline:2px solid var(--teal);outline-offset:4px; }
.research-project-link { display:flex;align-items:center;gap:9px;margin-top:17px;color:#67d0e1;font:600 8px/1.4 var(--mono);letter-spacing:.1em; }
.research-project-link b { font:800 16px/1 Georgia,serif;-webkit-text-stroke:.55px currentColor;text-shadow:1px 1px 0 rgba(116,38,60,.72),2px 2px 0 rgba(38,126,148,.42);transform:rotate(-7deg); }
.research-project-card:hover .research-project-link b { transform:translate(2px,-2px) rotate(-7deg); }
.research-project-hero .hero-city img { filter:grayscale(.9) contrast(1.08) brightness(.48) sepia(.12); }
.research-project-hero .hero-overlay { background:linear-gradient(90deg,rgba(10,14,13,.94),rgba(10,14,13,.55) 65%,rgba(10,14,13,.28)),linear-gradient(0deg,rgba(10,11,11,.82),transparent 70%); }
.research-project-content { padding-bottom:82px; }
.research-project-content > .section-marker,.research-project-content > .project-overview,.research-project-content > .project-data-layout,.research-project-content > .project-text-grid,.research-project-content > .project-limits,.research-project-content > .project-sources { max-width:1200px;margin-left:auto;margin-right:auto; }
.project-overview { display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start;padding:50px 4px 32px; }
.project-overview h2 { margin:0;color:var(--paper);font:700 clamp(2rem,3.5vw,3.2rem)/1.05 var(--display); }
.project-overview p { margin:0;color:#c6c2b7;font-size:15px;line-height:1.75; }
.project-status { display:inline-flex;margin-top:16px;padding:6px 8px;border:1px solid rgba(48,196,160,.4);color:#67d0e1;font:500 7px/1.35 var(--mono);letter-spacing:.08em; }
.project-data-layout { display:grid;grid-template-columns:minmax(0,1.55fr) minmax(240px,.75fr);gap:20px;align-items:start; }
.project-chart-card,.project-metrics-card,.project-panel { padding:20px;border:1px solid rgba(236,228,210,.14);background:linear-gradient(145deg,rgba(30,47,42,.88),rgba(19,24,22,.97)); }
.project-chart-card h3,.project-metrics-card h3,.project-panel h3 { margin:0 0 12px;color:var(--paper);font:600 1.25rem/1.15 var(--display); }
.project-chart-card > p,.project-panel > p { margin:0;color:#b8b8ad;font-size:12px;line-height:1.65; }
.project-chart { display:block;width:100%;height:auto;margin-top:12px;overflow:visible; }
.project-chart text { font-family:var(--mono);fill:#aaa99c;font-size:10px; }
.project-chart .grid-line { stroke:rgba(236,228,210,.13);stroke-width:1; }
.project-chart .series-female { fill:none;stroke:#d18b98;stroke-width:3; }
.project-chart .series-male { fill:none;stroke:#35b9d6;stroke-width:3; }
.project-chart .series-total { fill:none;stroke:#30c4a0;stroke-width:3; }
.project-chart .latest-dot { stroke:#111614;stroke-width:3; }
.project-chart-legend { display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:5px;color:#c9c6bb;font:500 8px/1.5 var(--mono);letter-spacing:.04em; }
.project-chart-legend span { display:flex;align-items:center;gap:7px; }
.project-chart-legend i { width:14px;height:3px;display:inline-block; }
.project-metric { padding:14px 0;border-top:1px solid rgba(236,228,210,.12); }
.project-metric:first-of-type { border-top:0; }
.project-metric strong { display:block;color:var(--paper);font:700 2.3rem/1 var(--display); }
.project-metric span { display:block;margin-top:5px;color:#aaa99c;font-size:11px;line-height:1.45; }
.project-downloads { display:grid;gap:9px;margin-top:18px; }
.project-downloads a,.project-sources a { color:#67d0e1;text-decoration:none;font:600 8px/1.5 var(--mono);letter-spacing:.06em; }
.project-downloads a { display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 11px;border:1px solid rgba(53,185,214,.34);background:rgba(38,126,148,.11); }
.project-downloads a:hover,.project-sources a:hover { color:var(--paper); }
.project-text-grid { display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px; }
.project-panel { margin:0; }
.project-panel > p + p { margin-top:10px; }
.project-panel ul { margin:0;padding-left:18px;color:#b8b8ad;font-size:12px;line-height:1.7; }
.project-limits { margin-top:22px;padding:18px 20px;border-left:3px solid var(--wine-light);background:rgba(116,38,60,.12); }
.project-limits h3 { margin:0 0 7px;color:var(--paper);font:600 1.05rem/1.2 var(--display); }
.project-limits p { margin:0;color:#c8c2b6;font-size:12px;line-height:1.7; }
.project-sources { display:flex;flex-wrap:wrap;gap:11px 22px;margin-top:17px;padding-top:15px;border-top:1px solid rgba(236,228,210,.14); }
.project-sources a { text-decoration:underline;text-underline-offset:3px; }
.planned-project-content { min-height:470px; }
.planned-project-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:1200px;margin:26px auto 0; }
.planned-project-grid .project-panel { min-height:190px; }
.planned-project-grid .practice-index { display:block;margin-bottom:14px; }
.project-presentation { max-width:1200px;margin:72px auto 0; }
.project-presentation-heading { display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:0 4px 22px; }
.project-presentation-heading .overline { margin-bottom:11px; }
.project-presentation-heading h2 { margin:0;color:var(--paper);font:700 clamp(2.15rem,4vw,3.7rem)/1 var(--display);letter-spacing:-.025em; }
.project-presentation-heading > p { max-width:420px;margin:0 0 4px;color:#b8b8ad;font-size:13px;line-height:1.7; }
.presentation-window { padding:10px;border:1px solid rgba(209,139,152,.48);background:linear-gradient(145deg,rgba(116,38,60,.2),rgba(16,27,25,.98) 32%,rgba(23,37,37,.94));box-shadow:5px 5px 0 rgba(38,126,148,.52),0 18px 44px rgba(0,0,0,.2); }
.presentation-window-top { min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 8px;color:#c5c1b6;font:500 8px/1.4 var(--mono);letter-spacing:.11em; }
.presentation-window-top span:last-child { color:var(--teal); }
.presentation-screen { aspect-ratio:16/9;display:grid;place-items:center;overflow:hidden;background:#0c100f;border:1px solid rgba(236,228,210,.14); }
.presentation-screen img { display:block;width:100%;height:100%;object-fit:contain; }
.presentation-transport { min-height:56px;display:grid;grid-template-columns:1fr minmax(80px,240px) 1fr;align-items:center;gap:clamp(12px,3vw,35px);padding:8px 7px 0; }
.presentation-transport button { min-height:46px;display:inline-flex;align-items:center;gap:11px;padding:9px 16px;border:1px solid rgba(61,190,222,.58);border-radius:3px;color:#e8f7f8;background:linear-gradient(135deg,rgba(27,87,105,.94),rgba(20,50,62,.94));font:600 9px/1 var(--mono);letter-spacing:.09em;cursor:pointer;transition:background .2s,border-color .2s,transform .2s,box-shadow .2s;box-shadow:0 0 0 1px rgba(32,149,184,.12),2px 2px 0 rgba(116,38,60,.42); }
.presentation-transport button:last-child { justify-self:end;border-color:rgba(209,139,152,.7);color:var(--paper);background:linear-gradient(135deg,rgba(132,46,68,.96),rgba(91,29,47,.96));box-shadow:0 0 0 1px rgba(116,38,60,.2),2px 2px 0 rgba(38,126,148,.4); }
.presentation-transport button b { color:#d6f7fb;font:800 19px/1 Georgia,serif;-webkit-text-stroke:.65px currentColor;text-shadow:1px 1px 0 rgba(116,38,60,.7),2px 2px 0 rgba(38,126,148,.6); }
.presentation-transport button:hover:not(:disabled) { transform:translateY(-2px);border-color:#56ddf5;background:linear-gradient(135deg,rgba(33,123,149,.98),rgba(23,70,84,.98));box-shadow:0 5px 18px rgba(38,126,148,.23),2px 2px 0 rgba(116,38,60,.5); }
.presentation-transport button:last-child:hover:not(:disabled) { border-color:#efb1bd;background:linear-gradient(135deg,rgba(158,54,80,.99),rgba(115,35,57,.99));box-shadow:0 5px 18px rgba(116,38,60,.28),2px 2px 0 rgba(38,126,148,.46); }
.presentation-transport button:focus-visible { outline:2px solid var(--cyan);outline-offset:3px; }
.presentation-transport button:disabled { opacity:.42;cursor:default; }
.presentation-progress { height:9px;overflow:hidden;border:1px solid rgba(89,192,218,.28);border-radius:6px;background:linear-gradient(90deg,rgba(16,26,27,.95),rgba(36,45,45,.95));box-shadow:inset 0 1px 3px rgba(0,0,0,.45); }
.presentation-progress span { display:block;width:14.285%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#267e94,#35b9d6 62%,#30c4a0);box-shadow:0 0 12px rgba(53,185,214,.45);transition:width .3s cubic-bezier(.22,.75,.3,1); }
.presentation-caption { margin:22px 3px 0;padding:4px 17px 7px;border-left:2px solid var(--wine-light);box-shadow:-4px 0 0 rgba(38,126,148,.55); }
.presentation-caption-kicker { margin:0 0 8px;color:var(--teal);font:500 8px/1.4 var(--mono);letter-spacing:.12em; }
.presentation-caption h3 { margin:0 0 7px;color:var(--paper);font:600 clamp(1.15rem,2vw,1.55rem)/1.2 var(--display); }
.presentation-caption > p:last-child { max-width:850px;margin:0;color:#b8b8ad;font-size:13px;line-height:1.75; }
.presentation-download { display:flex;align-items:center;justify-content:space-between;gap:15px;margin:22px 3px 0;padding:13px 0;border-top:1px solid rgba(236,228,210,.14);border-bottom:1px solid rgba(236,228,210,.14); }
.presentation-download > span { color:var(--paper-muted);font:500 7px/1.4 var(--mono);letter-spacing:.1em; }
.presentation-download a { color:#67d0e1;text-decoration:none;font:600 8px/1.5 var(--mono);letter-spacing:.06em; }
.presentation-download a:hover { color:var(--paper); }
.presentation-download a b { font:800 14px/1 Georgia,serif;-webkit-text-stroke:.5px currentColor; }
.research-shelf-label { max-width:1320px;margin:25px auto 12px;color:var(--paper-muted);font:500 8px/1.5 var(--mono);letter-spacing:.15em; }
.research-plans-label { margin-top:43px; }
.research-plan-grid { grid-template-columns:repeat(2,minmax(0,1fr));max-width:880px;margin-left:auto;margin-right:auto; }
.project-entity-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:1200px;margin:12px auto 0; }
.project-entity { min-height:155px;padding:17px 15px;border:1px solid rgba(236,228,210,.15);background:linear-gradient(145deg,rgba(28,54,49,.86),rgba(20,25,23,.96)); }
.project-entity:nth-child(3n + 2) { background:linear-gradient(145deg,rgba(62,34,44,.72),rgba(20,25,23,.96)); }
.project-entity > span { display:block;margin-bottom:11px;color:var(--teal);font:500 7px/1.4 var(--mono);letter-spacing:.1em; }
.project-entity h3 { margin:0 0 6px;color:var(--paper);font:600 1.13rem/1.16 var(--display); }
.project-entity p { margin:0;color:#b8b8ad;font-size:12px;line-height:1.55; }
.project-callout { max-width:1200px;margin:21px auto 0;padding:19px 21px;border:1px solid rgba(53,185,214,.25);background:linear-gradient(110deg,rgba(26,69,76,.3),rgba(21,26,24,.8)); }
.project-callout h3 { margin:0 0 7px;color:var(--paper);font:600 1.18rem/1.2 var(--display); }
.project-callout p { margin:0;color:#c3c1b6;font-size:13px;line-height:1.7; }
.project-source-note { flex-basis:100%;margin:0;color:#999b91;font-size:11px;line-height:1.6; }
@media (max-width:900px) { .project-entity-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) {
  .project-overview,.project-data-layout,.project-text-grid { grid-template-columns:1fr; }
  .project-overview { padding:42px 3px 24px; }
  .planned-project-grid { grid-template-columns:1fr; }
  .planned-project-grid .project-panel { min-height:0; }
  .project-presentation { margin-top:56px; }
  .project-presentation-heading { display:block;padding:0 3px 17px; }
  .project-presentation-heading > p { margin-top:11px; }
  .presentation-window { padding:7px; }
  .presentation-window-top { min-height:30px;font-size:7px; }
  .presentation-transport { min-height:52px;grid-template-columns:auto minmax(38px,1fr) auto;gap:10px;padding-inline:2px; }
  .presentation-transport button { min-height:43px;gap:6px;padding:8px 9px;font-size:7px; }
  .presentation-transport button b { font-size:17px; }
  .research-plan-grid,.project-entity-grid { grid-template-columns:1fr; }
  .project-entity { min-height:0; }
  .presentation-caption { margin-top:18px; }
  .presentation-download { align-items:flex-start;flex-direction:column;gap:8px; }
}

.photo-year-section { max-width:1500px;margin:35px auto 0; }
.photo-year-heading { display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0 0 17px;padding:0 5px 10px;border-bottom:1px solid rgba(236,228,210,.16); }
.photo-year-heading h3 { margin:0;color:var(--paper);font:700 clamp(1.8rem,3vw,2.6rem)/1 var(--display); }
.photo-year-heading span { color:var(--teal);font:500 8px/1.5 var(--mono);letter-spacing:.13em; }
.photo-grid-masonry { display:block;column-count:4;column-gap:14px; }
.photo-grid-masonry .photo-card { display:inline-block;width:100%;margin:0 0 14px;transform:none;break-inside:avoid;border-color:rgba(236,228,210,.17); }
.photo-grid-masonry .photo-card a { display:block;position:relative;color:inherit;text-decoration:none; }
.photo-grid-masonry .photo-card img { display:block;width:100%;height:auto;object-fit:contain;filter:none;transition:transform .45s,filter .35s; }
.photo-grid-masonry .photo-card figcaption { left:0;right:0;bottom:0;padding:23px 11px 10px;background:linear-gradient(transparent,rgba(7,10,9,.84)); }
.photo-grid-masonry .photo-card figcaption b { font-size:7px;letter-spacing:.12em; }
.photo-grid-masonry .photo-card figcaption small { font-size:6px;letter-spacing:.09em;color:rgba(236,228,210,.72); }
.photo-grid-masonry .photo-card figcaption a { display:none; }
.photo-grid-masonry .photo-card:hover img { filter:brightness(1.04);transform:scale(1.025); }
.photo-grid-masonry .photo-card:focus-within { outline:2px solid var(--cyan);outline-offset:3px; }
.photo-viewer { width:min(94vw,1480px);height:min(92dvh,1020px);max-width:none;max-height:92dvh;overflow:hidden;margin:auto;padding:0;border:1px solid rgba(209,139,152,.56);border-radius:3px;color:var(--paper);background:linear-gradient(145deg,#151b19,#0b0e0d);box-shadow:5px 5px 0 rgba(38,126,148,.5),0 22px 70px rgba(0,0,0,.65); }
.photo-viewer[open] { display:grid;grid-template-rows:auto minmax(0,1fr) auto; }
.photo-viewer::backdrop { background:rgba(4,7,7,.89);backdrop-filter:blur(7px); }
.photo-viewer-top { display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 16px;border-bottom:1px solid rgba(236,228,210,.15);color:var(--teal);font:500 8px/1.5 var(--mono);letter-spacing:.12em; }
.photo-viewer-top button { display:inline-flex;align-items:center;gap:10px;padding:5px 8px;border:1px solid rgba(209,139,152,.42);border-radius:2px;color:var(--paper);background:rgba(116,38,60,.55);font:600 8px/1.4 var(--mono);letter-spacing:.1em;cursor:pointer; }
.photo-viewer-top button b { color:var(--wine-light);font:800 17px/1 Georgia,serif; }
.photo-viewer-stage { min-width:0;min-height:0;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;grid-template-rows:minmax(0,1fr);align-items:center;justify-items:center;gap:clamp(6px,1.2vw,18px);padding:14px;overflow:hidden; }
.photo-viewer-stage img { display:block;width:auto;height:auto;max-width:100%;max-height:100%;min-width:0;min-height:0;object-fit:contain; }
.photo-viewer-stage button { width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(78,193,218,.55);border-radius:50%;color:#d9f7fa;background:rgba(30,91,108,.76);cursor:pointer;transition:transform .2s,background .2s; }
.photo-viewer-stage button:hover { transform:scale(1.08);background:rgba(38,126,148,.95); }
.photo-viewer-stage button b { font:800 20px/1 Georgia,serif;text-shadow:1px 1px 0 rgba(116,38,60,.9); }
.photo-viewer-stage button[data-viewer-next] { border-color:rgba(209,139,152,.72);color:var(--paper);background:rgba(116,38,60,.82); }
.photo-viewer-stage button[data-viewer-next]:hover { border-color:var(--wine-light);background:rgba(139,45,72,.96); }
.photo-viewer-footer { display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 16px;border-top:1px solid rgba(236,228,210,.15);background:rgba(7,11,10,.72); }
.photo-viewer-caption { min-width:0;margin:0;color:#b7b4a9;text-align:left;font:500 8px/1.5 var(--mono);letter-spacing:.09em; }
.photo-viewer-download,.photos-download-toolbar a { display:inline-flex;align-items:center;justify-content:center;gap:13px;padding:10px 13px;border:1px solid rgba(209,139,152,.42);border-radius:2px;color:var(--paper);background:linear-gradient(120deg,rgba(116,38,60,.68),rgba(116,38,60,.24));text-decoration:none;font:600 8px/1.4 var(--mono);letter-spacing:.09em;white-space:nowrap;transition:background .2s,border-color .2s,transform .2s; }
.photo-viewer-download:hover,.photos-download-toolbar a:hover { transform:translateY(-1px);border-color:rgba(209,139,152,.8);background:linear-gradient(120deg,rgba(132,46,68,.9),rgba(116,38,60,.4)); }
.photo-viewer-download b,.photos-download-toolbar b { color:var(--wine-light);font:800 16px/1 Georgia,serif; }
.photos-download-toolbar { max-width:1500px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 auto 20px;padding:11px 4px;border-top:1px solid rgba(236,228,210,.12);border-bottom:1px solid rgba(236,228,210,.12); }
.photos-download-toolbar > span { color:var(--paper-muted);font:500 7px/1.4 var(--mono);letter-spacing:.12em; }
@media (max-width:1050px) { .photo-grid-masonry { column-count:3; } }
@media (max-width:760px) {
  .photo-grid-masonry { column-count:2;column-gap:9px; }
  .photo-grid-masonry .photo-card { margin-bottom:9px; }
  .photo-grid-masonry .photo-card figcaption { padding:19px 8px 8px; }
  .photo-grid-masonry .photo-card figcaption b { font-size:6px; }
  .photo-grid-masonry .photo-card figcaption small { font-size:5px; }
  .photos-download-toolbar { margin-bottom:16px;padding:9px 2px; }
  .photos-download-toolbar > span { font-size:6px; }
  .photos-download-toolbar a { gap:8px;padding:9px 10px;font-size:7px; }
  .photo-viewer { width:100vw;height:100dvh;max-width:none;max-height:100dvh;border:0;border-radius:0; }
  .photo-viewer-top { padding:11px 13px; }
  .photo-viewer-stage { grid-template-columns:35px minmax(0,1fr) 35px;gap:4px;padding:8px 5px; }
  .photo-viewer-stage button { width:32px;height:32px; }
  .photo-viewer-footer { gap:8px;padding:9px 10px; }
  .photo-viewer-caption { font-size:7px; }
  .photo-viewer-download { gap:7px;padding:9px 8px;font-size:7px; }
}
@media (max-width:430px) { .photo-grid-masonry { column-count:1; }.photos-download-toolbar { align-items:flex-start;flex-direction:column;gap:9px; } }

/* Keep directional arrows bold throughout the site. */
.arrow-glyph {
  font-weight:900;
  -webkit-text-stroke:.65px currentColor;
  text-shadow:1px 1px 0 rgba(116,38,60,.68),2px 2px 0 rgba(38,126,148,.42);
}
