/* Atmospheric portfolio: references inform composition, never copied content or assets. */
.editorial-page{--paper:#fff;--ink:#24252c;--acid:#7c8eb0;--line:#e7e9ee;--muted:#7e8491;background:#fff;color:var(--ink)}
.editorial-page *{color:inherit}
.editorial-page [hidden]{display:none!important}
.editorial-page a{text-decoration:none}
.editorial-page button{font-family:inherit;cursor:pointer}
.editorial-page main section[id],.editorial-page #resume{scroll-margin-top:112px}
.editorial-page :is(a,button,summary):focus-visible{outline:2px solid #8796bb;outline-offset:5px}
.editorial-page :is(#projects,#contact,#about,#visual-notes,#resume):focus-visible{outline:2px solid #a0acca;outline-offset:-3px}
.ed-frame{width:calc(100% - 96px);max-width:1200px;margin-inline:auto}
.ed-kicker{font:10px/1.7 Arial,sans-serif;letter-spacing:1.8px;color:#8b909b}
.ed-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ed-skip{position:fixed;top:16px;left:20px;z-index:11000;padding:12px 18px;background:#fff;border-radius:12px;transform:translateY(-200%)}
.ed-skip:focus{transform:none}
.ed-reading-progress{position:fixed;inset:0 0 auto;height:2px;z-index:11000;pointer-events:none}
.ed-reading-progress span{display:block;width:100%;height:100%;background:#9cafd0;transform:scaleX(0);transform-origin:left}
.ed-header{position:fixed;top:22px;left:50%;transform:translateX(-50%);z-index:1000;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:72px;width:calc(100% - 96px);max-width:1160px;padding:12px 26px;border:1px solid #ffffffb3;border-radius:20px;background:#fffffff0;box-shadow:0 8px 36px #1623420b;backdrop-filter:blur(18px)}
.ed-brand{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:500;line-height:1.5}
.ed-brand-mark{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid #d8dde7;border-radius:50%;font:500 24px/1 Arial,sans-serif;letter-spacing:-2px;padding-right:2px;color:#555f74}
.ed-brand small{display:block;font:8px/1.7 Arial,sans-serif;letter-spacing:.8px;color:#9298a3}
.ed-nav{display:flex;align-items:center;gap:18px}
.ed-nav a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:56px;padding:8px 12px;border-radius:999px;color:#666c79;font-size:12px;transition:background .25s,color .25s}
.ed-nav small{display:none}
.ed-nav a[aria-current],.ed-nav a:hover{background:#eff1f7;color:#3b4964}
.ed-cover{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;min-height:calc(100svh - 24px);margin:12px;border-radius:28px;overflow:hidden;padding:142px 0 98px;background:#161c29;color:#fff}
.ed-cover-art{position:absolute;inset:0;margin:0;z-index:-3}
.ed-cover-art .ed-slot-cover{position:absolute;inset:0;aspect-ratio:auto;border:0;border-radius:0;background:transparent}
.ed-cover-art .ed-slot-cover::before,.ed-cover-art .ed-slot-cover::after{display:none}
.ed-cover-art .ed-slot-cover>img{opacity:.55;filter:brightness(.72);z-index:0}
.ed-cover-art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#10192944,#131b2b44 55%,#121927a6)}
.ed-cover-image-label{position:absolute;bottom:28px;right:30px;z-index:2;padding:5px 10px;border:1px solid #c5d1eb28;border-radius:99px;color:#c4cfdd80;font-size:9px}
.ed-cover-atmosphere{position:absolute;inset:0;z-index:-2;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 18% 32%,#57729425,transparent 46%),radial-gradient(ellipse at 70% 65%,#9585b526,transparent 50%),linear-gradient(135deg,#111b27b8,#2024378c 60%,#121b2580)}
.ed-cover-atmosphere>span:first-child{position:absolute;width:900px;height:900px;max-width:100vw;max-height:100vw;left:50%;top:46%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 40% 40%,#a5b4d41c,transparent 55%);box-shadow:inset 0 0 100px #afbad00c,0 0 100px #a8b6d709;animation:ambient-drift 24s ease-in-out infinite alternate}
.ed-cover-atmosphere>span:nth-child(2){position:absolute;inset:10% 6%;opacity:.45;background-image:radial-gradient(circle,#c8d8f5 1px,transparent 1.5px),radial-gradient(circle,#d9ceec 1px,transparent 1.5px);background-size:270px 220px,390px 310px;background-position:30px 70px,180px 20px}
.ed-cover-atmosphere>span:last-child{position:absolute;width:60%;height:1px;background:linear-gradient(90deg,transparent,#c6d6f31c,transparent);left:20%;top:31%;transform:rotate(-25deg)}
@keyframes ambient-drift{to{transform:translate(-47%,-46%) scale(1.08)}}
.ed-cover-content{position:relative;text-align:center;max-width:1000px}
.ed-cover-meta{font:10px/1.7 Arial,sans-serif;letter-spacing:3px;color:#b6c2d4;margin-bottom:22px}
.ed-cover h1{font-size:clamp(52px,5.2vw,76px);font-weight:500;line-height:1.3;letter-spacing:-.045em;color:#fff}
.ed-cover h1>span{white-space:nowrap;color:#f7f8fc}
.ed-cover-description{margin:24px auto 0;font-size:14px;line-height:1.95;color:#bfc8d6;max-width:560px}
.ed-cover-actions{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:28px}
.ed-round-link,.ed-cover-about{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:46px;min-width:138px;padding:12px 22px;border-radius:999px;font-size:12px;border:1px solid #ffffff34;transition:transform .3s,background .3s}
.ed-round-link{background:#f4f6fb;color:#35415a;border-color:#f4f6fb;box-shadow:0 5px 24px #0e142321}
.ed-round-link:hover{background:#fff;transform:translateY(-3px)}
.ed-cover-about{color:#e7ecf4;background:#ffffff05}
.ed-cover-about:hover{background:#ffffff10;transform:translateY(-3px)}
.ed-cover-bottom{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,630px);gap:0;margin:36px auto 0;padding:20px 12px;background:linear-gradient(120deg,#ffffff14,#ffffff0a);border:1px solid #dce5fa21;border-radius:18px;box-shadow:0 14px 35px #070e1f13;backdrop-filter:blur(12px);text-align:left}
.ed-cover-bottom>div{min-width:0;padding-inline:20px}
.ed-cover-bottom>div+div{border-left:1px solid #dce5fa1c}
.ed-cover-bottom span{font-size:9px;color:#9aa9be}
.ed-cover-bottom p{font-size:12px;line-height:1.7;margin-top:5px;color:#e2e7f0}
.ed-cover-scroll{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;min-height:44px;color:#9aaac2}
.ed-cover-scroll span{font:8px/1.6 Arial,sans-serif;letter-spacing:2px}
.ed-cover-scroll i{font:18px/1 Arial,sans-serif;font-style:normal}
.editorial-page .ed-rail{padding:28px 0 34px;background:#fff;color:#8f97a8}
.ed-rail-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.ed-rail-top h2{font:9px/1.6 Arial,sans-serif;letter-spacing:1px;color:#a0a6b1}
.ed-rail .visual-pause{min-height:38px;border:1px solid #eceef3;background:#fafbfe;border-radius:999px;padding:8px 14px;color:#8b92a2}
.ed-rail .visual-pause-label{color:inherit;font-size:10px}
.ed-rail .visual-pause-icon{border-color:#929db5}
.ed-rail .visual-pause[aria-pressed=true] .visual-pause-icon{border-color:transparent;border-left-color:#929db5}
.ed-rail .visual-group{gap:42px;padding-right:42px}
.ed-rail .visual-lane{mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ed-rail-word{display:flex;align-items:center;gap:42px;white-space:nowrap}
.ed-rail-word>span{font:400 clamp(24px,2.7vw,36px)/1.4 Arial,sans-serif;letter-spacing:-.8px;color:#9aa2b3}
.ed-rail-word>i{font:22px/1 Arial,sans-serif;font-style:normal;color:#d1d7e2}
.ed-work{padding-block:88px 100px;background:#fbfcfe;color:var(--ink);border-radius:36px 36px 0 0}
.ed-work-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:30px}
.ed-work h2{font-size:clamp(36px,3.5vw,48px);font-weight:500;line-height:1.35;letter-spacing:-.04em;margin-top:14px}
.ed-work h2>span{color:#b1bacd;margin-left:5px}
.ed-section-note{font-size:12px;line-height:1.95;color:#6b7588}
.ed-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:32px}
.ed-filter button{border:0;border-radius:999px;background:transparent;color:#6b7588;min-height:42px;padding:10px 20px;font-size:11px;transition:background .25s,color .25s}
.ed-filter button[aria-pressed=true]{color:#53617e;background:#eaf0f9}
.ed-filter button:hover{background:#f0f3f8}
.ed-filter sup{font:8px/1 Arial,sans-serif;margin-left:4px}
.ed-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 32px}
.ed-project{min-width:0}
.ed-project-01{grid-column:1/-1}
.ed-project-grid.is-filtered .ed-project{grid-column:1/-1;max-width:1000px;margin:0 auto;width:100%}
.ed-project-preview{display:block;position:relative;width:100%;padding:0;border:0;background:transparent;text-align:left;border-radius:24px}
.ed-slot{position:relative;isolation:isolate;overflow:hidden;border:0;border-radius:24px;aspect-ratio:16/10;background:linear-gradient(135deg,#e9edf5,#d9e0ec 60%,#dee4ef);color:#748198;min-width:0}
.ed-slot::before{content:"";position:absolute;width:58%;aspect-ratio:1;left:17%;top:12%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffffffbd,#ffffff08 70%);opacity:.7;pointer-events:none}
.ed-slot::after{content:"";position:absolute;inset:22% 24%;border:1px solid #ffffff75;border-radius:22px;background:linear-gradient(125deg,#ffffff21,#ffffff03);box-shadow:18px 24px 44px #6d819f0b;transform:rotate(-8deg);pointer-events:none}
.ed-slot-meta,.ed-slot-number,.ed-slot-cross{display:none}
.ed-slot-label{position:absolute;bottom:22px;left:24px;padding:7px 12px;border:1px solid #ffffff88;border-radius:999px;background:#ffffff55;backdrop-filter:blur(8px);font-size:10px;z-index:1;color:#748098}
.ed-slot-label small{display:none}
.ed-slot>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;z-index:2}
.ed-slot.has-content .ed-slot-label,.ed-slot.has-content .ed-cover-image-label{display:none}
.ed-project-01 .ed-slot{aspect-ratio:21/8.5}
.ed-slot-tone-1{background:linear-gradient(145deg,#eceaf4,#dbd7e9 65%,#e1deef)}
.ed-slot-tone-2{background:linear-gradient(135deg,#e7eeed,#d3e1df 65%,#e6ecec)}
.ed-project-open{position:absolute;right:18px;bottom:18px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#ffffffe0;color:#71809a;font:22px/1 Arial,sans-serif;z-index:3;box-shadow:0 3px 20px #56708b10;transition:transform .3s}
.ed-project-preview:hover .ed-slot{box-shadow:0 12px 36px #33496810;transform:translateY(-4px)}
.ed-project-preview .ed-slot{transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s}
.ed-project-preview:hover .ed-project-open{transform:translate(2px,-2px)}
.ed-project-caption{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:18px 5px 0}
.ed-project-caption p{font:9px/1.7 Arial,sans-serif;letter-spacing:.7px;color:#6b7588}
.ed-project-caption h3{font-size:22px;font-weight:500;line-height:1.5;margin-top:7px;letter-spacing:-.02em;color:#4b5363}
.ed-project-caption>span{font-size:10px;color:#6b7588;white-space:nowrap}
.ed-work-end{display:flex;justify-content:space-between;gap:20px;margin-top:56px;padding:16px 4px 0;border-top:1px solid #eceff5;font:9px/1.8 Arial,sans-serif;letter-spacing:1px;color:#a7adba}
.ed-web{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(60px,8vw,120px);align-items:center;padding-block:120px}
.ed-web h2,.ed-capabilities h2{font-size:clamp(36px,3.5vw,50px);font-weight:500;line-height:1.35;letter-spacing:-.045em;margin-top:20px}
.ed-web h2>span{color:#a2aec6}
.ed-web-intro>p:last-child{font-size:13px;line-height:1.95;color:#939baa;margin-top:28px}
.ed-site-list{position:relative;isolation:isolate;padding-top:28px;min-width:0}
.ed-site-list::before,.ed-site-list::after{content:"";position:absolute;top:0;left:14px;right:14px;height:330px;border-radius:26px;z-index:-1;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.ed-site-list::before{background:#e9e5f2;transform:translate(12px,-8px) rotate(5deg)}
.ed-site-list::after{background:#eef0f5;transform:translate(0,7px) rotate(-2.5deg)}
.ed-site{display:block;padding:16px 16px 24px;border:1px solid #f0f1f6;border-radius:26px;background:#fff;box-shadow:0 18px 60px #2639550b;transition:transform .45s,box-shadow .45s}
.ed-site:hover{transform:translateY(-6px);box-shadow:0 24px 65px #26395511}
.ed-slot-web{aspect-ratio:16/9;border-radius:16px;background:linear-gradient(130deg,#e2e9f3,#d1dbe9 68%,#e1e5f0)}
.ed-site-name{display:grid;grid-template-columns:1fr auto;gap:7px 18px;margin:20px 10px 0}
.ed-site-name>span{grid-column:1;font:9px/1.7 Arial,sans-serif;color:#6b7588;letter-spacing:.7px}
.ed-site-name h3{font-size:24px;line-height:1.5;font-weight:500;color:#4b5669}
.ed-site-name>b{grid-column:2;grid-row:1/3;align-self:center;font:30px/1 Arial,sans-serif;color:#8392af}
.ed-site>p{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin:16px 10px 0;font-size:10px;color:#6b7588}
.ed-site>small{display:block;font:9px/1.7 Arial,sans-serif;margin:10px 10px 0;color:#adb3bf}
.ed-site-next{display:grid;grid-template-columns:1fr auto;gap:8px 20px;padding:24px 12px 0;margin-top:10px}
.ed-site-next>span,.ed-site-next>small{grid-column:1;font:9px/1.7 Arial,sans-serif;color:#a6adbb;letter-spacing:.5px}
.ed-site-next strong{grid-column:1;font-size:17px;font-weight:400;color:#717c8f}
.ed-site-next b{grid-column:2;grid-row:1/4;align-self:center;font:24px/1 Arial,sans-serif;color:#a1adc3}
.ed-capabilities{padding-block:96px;background:#f8f9fc}
.ed-capability-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:start}
.ed-capabilities .contact-link{display:inline-flex;align-items:center;gap:24px;min-height:44px;margin-top:28px;font-size:12px;color:#8999b6}
.ed-capabilities .contact-link span{font:20px/1 Arial,sans-serif}
.ed-service-list{display:grid;gap:12px}
.ed-service-list>details{background:#fff;border:1px solid #eff1f6;border-radius:18px;padding-inline:22px;box-shadow:0 4px 20px #1f395502}
.ed-service-list summary{list-style:none;display:grid;grid-template-columns:28px 1fr 24px;gap:12px;align-items:center;padding-block:22px;cursor:pointer}
.ed-service-list summary::-webkit-details-marker,.ed-resume>summary::-webkit-details-marker{display:none}
.ed-service-list summary>span{font:9px/1 Arial,sans-serif;color:#bbc1cf}
.ed-service-list h3{font-size:22px;font-weight:500;line-height:1.4;color:#657084}
.ed-service-list h3 small{display:block;font:8px/1.7 Arial,sans-serif;letter-spacing:.8px;margin-top:5px;color:#abb3c2}
.ed-service-list summary>b{font:23px/1 Arial,sans-serif;color:#a9b5cc}
.ed-service-list details[open] summary>b{transform:rotate(45deg)}
.ed-service-body{padding:0 24px 24px 40px}
.ed-service-body p{font-size:12px;line-height:1.95;color:#6b7588}
.ed-service-body small{display:block;font:9px/1.8 Arial,sans-serif;margin-top:14px;color:#acb5c3}
.ed-about{padding-block:140px 100px}
.ed-about-heading{text-align:center;max-width:980px;margin-inline:auto;padding-block:20px 50px}
.ed-about h2{font-size:clamp(40px,4.8vw,68px);font-weight:500;line-height:1.4;letter-spacing:-.055em;margin-top:46px}
.ed-about-tag{font:9px/1.8 Arial,sans-serif;letter-spacing:2px;color:#afb6c2;margin-top:34px}
.ed-about-invite{display:inline-flex;gap:24px;align-items:center;min-height:44px;margin-top:22px;color:#7685a4;font-size:12px}
.ed-about-grid{display:grid;grid-template-columns:160px 1fr;gap:46px;max-width:790px;margin:55px auto 65px;align-items:center}
.ed-slot-portrait{aspect-ratio:1;border-radius:50%;background:linear-gradient(135deg,#edf0f7,#dbdfed)}
.ed-slot-portrait::after{inset:26%;border-radius:50%}
.ed-slot-portrait .ed-slot-label{bottom:25px;left:50%;transform:translateX(-50%);padding:5px 9px;font-size:8px;white-space:nowrap}
.ed-about figure figcaption{text-align:center;font:8px/1.7 Arial,sans-serif;margin-top:12px;color:#a9b0bd;letter-spacing:.7px}
.ed-about-copy>p{font-size:14px;line-height:2;margin-bottom:16px;color:#6b7588}
.ed-about-copy .ed-about-lead{font-size:23px;line-height:1.5;color:#576276;margin-bottom:20px}
.ed-about-copy>a{display:inline-flex;gap:24px;align-items:center;min-height:44px;color:#8b9ab8;font-size:11px}
.ed-about-copy>a span{font:20px/1 Arial,sans-serif}
.ed-resume{max-width:900px;margin-inline:auto;border:1px solid #edf0f5;border-radius:18px;background:#fcfdff}
.ed-resume>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:76px;padding:20px 26px;font:10px/1.7 Arial,sans-serif;letter-spacing:.6px;color:#6b7588;cursor:pointer}
.ed-resume>summary>span:last-child{font-size:11px}
.ed-resume summary b{font:22px/1 Arial,sans-serif;margin-left:18px}
.ed-resume[open]>summary b{display:inline-block;transform:rotate(45deg)}
.ed-resume .experience-section{padding:4px 26px 20px;background:transparent}
.ed-resume .intro-frame{width:100%;max-width:none}
.ed-resume .collection-heading{display:none}
.ed-resume .career-entry{grid-template-columns:115px .95fr 1.05fr;gap:22px;border-color:#e9edf4;padding-block:30px}
.ed-resume .career-profile h3{font-size:20px;color:#626d7f}
.ed-resume .career-summary,.ed-resume .career-focus p{font-size:11px;color:#6b7588}
.ed-resume .career-role{font-size:12px;color:#6b7588}
.ed-resume .career-range>time{font-size:18px;color:#6b7588}
.ed-resume .career-current .career-date::before{background:#abb9d1;border-color:#abb9d1}
.ed-resume .career-status{background:#edf1f9;color:#96a3bc;border-radius:99px;font-size:9px}
.ed-resume .career-tags li{background:#f3f6fb;color:#a1adbf;border:0;border-radius:999px;font-size:9px}
.ed-resume .career-focus h4{font-size:11px;color:#6b7588}
.ed-resume .career-footer{display:none}
.ed-resume :is(.career-results summary:hover,.career-disclosure-icon){color:#879abb}
.ed-contact{padding-block:80px 64px;background:radial-gradient(ellipse at 15% 90%,#e8edf766,transparent 65%),radial-gradient(ellipse at 85% 10%,#eae5f36b,transparent 60%),#f8fafc;text-align:center;border-radius:36px 36px 0 0}
.ed-contact-main{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;margin-top:26px}
.ed-contact h2{font-size:clamp(40px,4.5vw,62px);font-weight:500;line-height:1.35;letter-spacing:-.05em;color:#536078}
.ed-contact-circle{display:flex;align-items:center;justify-content:center;gap:20px;min-height:46px;min-width:150px;padding:12px 22px;border:1px solid #e2e8f1;background:#fff;border-radius:999px;color:#8799b6;box-shadow:0 5px 20px #25395b04;transition:transform .3s,box-shadow .3s}
.ed-contact-circle>span{font:25px/1 Arial,sans-serif}
.ed-contact-circle>small{font:9px/1.7 Arial,sans-serif;letter-spacing:1px}
.ed-contact-circle:hover{transform:translateY(-3px);box-shadow:0 10px 28px #25395b0b}
.ed-contact-bottom{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;margin-top:32px}
.ed-email{font:clamp(17px,1.8vw,24px)/1.7 Arial,sans-serif;letter-spacing:-.3px;color:#6b7588}
#ed-copy-email{min-height:44px;margin-left:12px;padding:8px 13px;border:1px solid #e1e7f0;border-radius:999px;background:#ffffffa8;font-size:10px;color:#6b7588}
.ed-copy-status{font-size:10px;min-height:18px;margin-top:8px;color:#9daac0}
.ed-contact-bottom>p{font-size:11px;line-height:1.9;color:#6b7588}
.ed-footer{padding-block:60px 110px;background:#fff;color:#8591a5}
.ed-footer-top{display:grid;grid-template-columns:1fr 150px 150px;gap:40px;align-items:start}
.ed-footer-brand{font-size:25px;font-weight:500;line-height:1.5;color:#65738b;letter-spacing:-.5px}
.ed-footer-brand>span{display:block;font:9px/1.8 Arial,sans-serif;letter-spacing:1.2px;margin-top:10px;color:#b0b8c6}
.ed-footer nav{display:flex;flex-direction:column;align-items:start;gap:2px;font-size:11px;color:#6b7588}
.ed-footer nav a{display:flex;align-items:center;min-height:44px}
.ed-footer nav a:hover{color:#596f94}
.ed-footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid #edf0f5;padding-top:22px;margin-top:40px;font:9px/1.8 Arial,sans-serif;color:#6b7588}
.ed-footer-bottom>a{display:flex;align-items:center;min-height:44px;letter-spacing:1px;color:#9fabc0}
.editorial-page .rocket-btn{background:#fff;color:#8a9cbb;border:1px solid #e5eaf3;box-shadow:0 4px 20px #2339580a;border-radius:50%}
.ed-top-arrow{font:24px/1 Arial,sans-serif}
.editorial-page .player-toggle{background:#fff;box-shadow:0 4px 20px #23395805;border:1px solid #e5eaf3;border-radius:50%;opacity:.75}
.editorial-page .music-icon img{filter:grayscale(1);width:18px;height:18px;opacity:.6}
.ed-dialog{position:fixed;inset:0;margin:auto;width:min(900px,calc(100% - 40px));max-height:88svh;overflow:auto;overscroll-behavior:contain;border:1px solid #eef1f7;border-radius:24px;background:#fff;color:#69758a;padding:0;box-shadow:0 30px 100px #16263a26}
.ed-dialog::backdrop{background:#1c273871;backdrop-filter:blur(10px)}
.ed-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 24px;border-bottom:1px solid #eef1f6;font:10px/1.7 Arial,sans-serif;color:#a7b2c4}
.ed-dialog-head button{min-height:44px;padding:8px 12px;border:0;border-radius:999px;background:#f5f7fb;color:#8d9bb3;font-size:12px}
.ed-dialog-content{padding:32px}
.ed-dialog h2{font-size:32px;font-weight:500;line-height:1.4;margin:12px 0 24px;overflow-wrap:anywhere;color:#66748b}
.ed-dialog .ed-slot{aspect-ratio:16/8;border-radius:16px}
.ed-dialog .ed-slot>img{object-fit:contain;background:#f6f8fb}
.ed-dialog-meta{display:flex;gap:60px;margin-block:24px}
.ed-dialog-meta dt{font-size:10px;color:#acb7c8}
.ed-dialog-meta dd{font-size:13px;margin-top:6px;color:#6b7588}
#dialog-project-description{font-size:13px;line-height:1.95;white-space:pre-line;color:#6b7588}
.ed-dialog-note{border-top:1px solid #eef1f7;padding-top:16px;margin-top:24px;font-size:10px;color:#6b7588}
.editorial-page.has-reveal [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.editorial-page.has-reveal [data-reveal].is-revealed,.editorial-page.has-reveal [data-reveal]:focus-within{opacity:1;transform:none}
@media(max-width:1100px){
.ed-header{width:calc(100% - 64px)}
.ed-capability-grid{gap:40px}
.ed-resume .career-entry{grid-template-columns:105px .95fr 1.05fr;gap:18px}
}
@media(max-width:900px){
.ed-frame{width:calc(100% - 64px)}
.ed-cover{padding:138px 0 100px}
.ed-cover h1{font-size:60px}
.ed-cover-description{font-size:13px}
.ed-work,.ed-about{padding-block:76px}
.ed-work-head{align-items:start;gap:24px}
.ed-work h2{font-size:38px}
.ed-project-grid{gap:32px 24px}
.ed-project-caption{align-items:start;flex-direction:column;gap:10px}
.ed-project-caption h3{font-size:20px}
.ed-web{padding-block:90px;gap:40px}
.ed-web h2,.ed-capabilities h2{font-size:36px}
.ed-site-list::before,.ed-site-list::after{height:250px}
.ed-site-name h3{font-size:21px}
.ed-capabilities{padding-block:72px}
.ed-service-list>details{padding-inline:18px}
.ed-service-list h3{font-size:20px}
.ed-about h2{font-size:50px}
.ed-about-grid{grid-template-columns:130px 1fr;gap:30px;margin-block:35px 50px}
.ed-about-copy>p{font-size:13px}
.ed-resume .career-entry{grid-template-columns:105px 1fr}
.ed-footer-top{grid-template-columns:1fr 110px 110px}
}
@media(max-width:640px){
.ed-frame{width:calc(100% - 40px)}
.ed-header{top:12px;width:calc(100% - 24px);min-height:64px;padding:10px 12px;border-radius:18px;gap:12px}
.ed-brand{font-size:14px;gap:7px;white-space:nowrap}
.ed-brand-mark{width:26px;height:26px;font-size:22px;letter-spacing:-2px}
.ed-brand small{display:none}
.ed-nav{gap:4px}
.ed-nav a{min-width:40px;min-height:44px;padding-inline:7px;font-size:11px;gap:4px}
.ed-cover{min-height:100svh;padding:132px 0 100px;margin:0;border-radius:0 0 28px 28px}
.ed-cover-atmosphere>span:first-child{max-width:none;max-height:none;width:650px;height:650px}
.ed-cover-meta{font-size:8px;letter-spacing:2px;margin-bottom:24px}
.ed-cover h1{font-size:clamp(36px,10vw,50px);line-height:1.4;letter-spacing:-.055em}
.ed-cover-description{font-size:11px;line-height:2;margin-top:24px;max-width:300px}
.ed-cover-actions{gap:10px;margin-top:26px}
.ed-round-link,.ed-cover-about{min-width:118px;min-height:44px;padding:10px 17px;gap:15px;font-size:11px}
.ed-cover-bottom{padding:16px 6px;margin-top:32px;border-radius:16px}
.ed-cover-bottom>div{padding-inline:10px}
.ed-cover-bottom span{font-size:8px}
.ed-cover-bottom p{font-size:10px;line-height:1.8}
.ed-cover-image-label{bottom:20px;right:16px;font-size:8px;padding:4px 8px}
.ed-cover-scroll{bottom:24px}
.ed-cover-scroll span{font-size:7px;letter-spacing:1.5px}
.editorial-page .ed-rail{padding:24px 0 28px}
.ed-rail-top{margin-bottom:16px}
.ed-rail-top h2{font-size:8px;letter-spacing:.2px}
.ed-rail .visual-pause{min-height:44px;padding-inline:10px}
.ed-rail-word{gap:26px}
.ed-rail .visual-group{gap:26px;padding-right:26px}
.ed-rail-word>span{font-size:26px;letter-spacing:-.4px}
.ed-rail-word>i{font-size:16px}
.ed-work{padding-block:54px 64px;border-radius:28px 28px 0 0}
.ed-work-head{display:block;margin-bottom:20px}
.ed-work h2{font-size:32px;margin-top:12px}
.ed-section-note{font-size:11px;margin-top:18px}
.ed-kicker{font-size:8px;letter-spacing:1.2px}
.ed-filter{gap:4px;margin-bottom:24px}
.ed-filter button{min-height:44px;padding-inline:12px;font-size:10px}
.ed-project-grid{grid-template-columns:1fr;gap:28px}
.ed-project-01,.ed-project-grid.is-filtered .ed-project{grid-column:1}
.ed-project-01 .ed-slot{aspect-ratio:16/10}
.ed-slot{border-radius:20px}
.ed-slot::after{border-radius:15px}
.ed-slot-label{bottom:16px;left:16px;font-size:9px;padding:6px 10px}
.ed-project-caption{flex-direction:row;align-items:end;padding-inline:2px;gap:12px;padding-top:14px}
.ed-project-caption p{font-size:8px}
.ed-project-caption h3{font-size:18px;margin-top:4px}
.ed-project-caption>span{font-size:9px}
.ed-project-open{width:34px;height:34px;font-size:20px;right:12px;bottom:12px}
.ed-work-end{margin-top:36px;font-size:8px;letter-spacing:0;gap:10px}
.ed-web{grid-template-columns:1fr;padding-block:64px 72px;gap:32px}
.ed-web h2,.ed-capabilities h2{font-size:36px;margin-top:18px}
.ed-web-intro>p:last-child{font-size:12px;margin-top:20px}
.ed-site-list{padding-top:22px;margin-inline:4px}
.ed-site-list::before,.ed-site-list::after{height:240px;left:12px;right:12px;border-radius:22px}
.ed-site-list::before{transform:translate(4px,-4px) rotate(4deg)}
.ed-site-list::after{transform:translate(0,4px) rotate(-2deg)}
.ed-site{padding:12px 12px 20px;border-radius:22px}
.ed-site-name{margin-inline:5px}
.ed-site-name h3{font-size:21px}
.ed-site>p,.ed-site>small{margin-inline:5px}
.ed-site-next{padding-inline:5px}
.ed-site-next strong{font-size:16px}
.ed-capabilities{padding-block:56px}
.ed-capability-grid{grid-template-columns:1fr;gap:28px}
.ed-capabilities .contact-link{margin-top:20px}
.ed-service-list summary{padding-block:20px;grid-template-columns:22px 1fr 20px;gap:10px}
.ed-service-list h3{font-size:21px}
.ed-service-body{padding-left:32px;padding-right:5px}
.ed-service-body p{font-size:12px}
.ed-about{padding-block:85px 64px}
.ed-about-heading{padding-block:0 20px}
.ed-about h2{font-size:clamp(29px,8vw,42px);line-height:1.5;margin-top:34px;letter-spacing:-.055em}
.ed-about-tag{font-size:7px;letter-spacing:1.2px;margin-top:24px}
.ed-about-invite{font-size:11px;margin-top:18px}
.ed-about-grid{grid-template-columns:1fr;justify-items:center;gap:24px;margin-block:30px 36px}
.ed-about-grid>figure{width:118px}
.ed-about-copy{text-align:center}
.ed-about-copy>p{font-size:13px;line-height:1.95;margin-bottom:16px}
.ed-about-copy .ed-about-lead{font-size:22px}
.ed-about-copy>a{font-size:11px}
.ed-resume>summary{padding:16px;gap:12px;font-size:8px;min-height:66px}
.ed-resume>summary>span:last-child{font-size:9px}
.ed-resume summary b{font-size:20px;margin-left:8px}
.ed-resume .experience-section{padding-inline:16px}
.ed-resume .career-entry{grid-template-columns:1fr}
.ed-resume .career-date{grid-row:auto}
.ed-resume .career-responsibilities{grid-column:auto}
.ed-resume .career-profile h3{font-size:19px}
.ed-contact{padding-block:54px 40px;border-radius:28px 28px 0 0}
.ed-contact h2{font-size:40px;line-height:1.4}
.ed-contact-main{margin-top:24px;gap:24px}
.ed-contact-bottom{gap:14px;margin-top:26px}
.ed-email{font-size:18px}
#ed-copy-email{margin-left:7px;min-height:44px;padding-inline:10px;font-size:9px}
.ed-copy-status{font-size:9px}
.ed-contact-bottom>p{font-size:10px}
.ed-footer{padding-block:42px 96px}
.ed-footer-top{grid-template-columns:1fr 1fr;gap:26px 24px}
.ed-footer-brand{grid-column:1/-1;font-size:23px}
.ed-footer-brand>span{font-size:8px}
.ed-footer nav{font-size:11px}
.ed-footer-bottom{flex-direction:column-reverse;align-items:start;gap:12px;font-size:8px;margin-top:32px}
.ed-dialog{width:calc(100% - 24px);max-height:90svh;border-radius:20px}
.ed-dialog-head{padding:8px 16px}
.ed-dialog-content{padding:20px}
.ed-dialog h2{font-size:26px}
.ed-dialog .ed-slot{aspect-ratio:4/3}
.ed-dialog-meta{gap:30px}
#dialog-project-description{font-size:12px}
}
@media(prefers-reduced-motion:reduce){
.ed-cover-atmosphere>span{animation:none!important}
.editorial-page .visual-track{animation:none!important}
.editorial-page.has-reveal [data-reveal]{opacity:1;transform:none;transition:none}
.ed-round-link,.ed-cover-about,.ed-project-preview .ed-slot,.ed-project-open,.ed-site,.ed-site-list::before,.ed-site-list::after,.ed-contact-circle{transition:none}
}

/* Continuous disclosure motion, shared by services and nested resume cards. */
.ed-disclosure-content{display:flow-root}
.ed-service-list>details,.ed-resume,.career-results{transition:box-shadow .35s ease,border-color .35s ease,background .35s ease}
.ed-service-list summary>b,.ed-resume summary b,.career-disclosure-icon{display:inline-block;transition:transform .4s cubic-bezier(.22,1,.36,1),color .3s}
.ed-service-list details[data-expanded="false"] summary>b,.ed-resume[data-expanded="false"]>summary b{transform:rotate(0)}
.ed-service-list details[data-expanded="true"] summary>b,.ed-resume[data-expanded="true"]>summary b{transform:rotate(45deg)}
.ed-service-preview{margin:32px 0 0;max-width:430px}
.ed-service-preview-images{position:relative;aspect-ratio:16/11;overflow:hidden;border-radius:24px;background:#e9eaf1;box-shadow:0 20px 45px #253a5b09}
.ed-service-preview-images img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.045) translateY(7px);transition:opacity .45s ease,transform .65s cubic-bezier(.22,1,.36,1);pointer-events:none}
.ed-service-preview-images img.is-active{opacity:1;transform:scale(1) translateY(0)}
.ed-service-preview figcaption{display:flex;justify-content:space-between;gap:12px;padding:14px 4px;font-size:10px;color:#737d90}
.ed-service-preview figcaption strong{font-size:13px;color:#3f4c62;font-weight:700}
.ed-service-list h3{font-weight:650;color:#3b465a}
.ed-service-list h3 small{font-weight:500;color:#7d899f}
.ed-service-body strong{font-weight:700;color:#404e66}
.ed-service-body small{color:#7a879c;font-weight:500}
.ed-brand,.ed-project-caption h3,.ed-site-name h3,.ed-about-lead,.ed-email{font-weight:650}
.ed-cover-description strong,.ed-about-copy strong{font-weight:700}
.ed-work-head h2,.ed-capabilities h2,.ed-web h2{font-weight:600}
.ed-resume .career-profile h3,.ed-resume .career-focus h4{font-weight:700;color:#3e4c63}
.ed-filter button,.ed-cover-actions a,.ed-about-invite,.ed-footer a,.ed-capabilities .contact-link{transition:transform .3s ease,background .3s ease,color .3s ease,box-shadow .3s ease}
@media(hover:hover){
.ed-service-list>details:hover,.ed-service-list>details:focus-within{border-color:#d5deed;background:#fdfdff;box-shadow:0 12px 30px #354b7410}
.ed-service-list>details:hover h3{color:#243853}
.ed-service-list>details:hover summary>b{color:#536f9d}
.ed-resume:hover{border-color:#d3dcec;box-shadow:0 10px 30px #354b740b}
.ed-filter button:hover,.ed-cover-actions a:hover,.ed-about-invite:hover,.ed-capabilities .contact-link:hover{transform:translateY(-3px)}
.ed-footer a:hover{color:#334b72;transform:translateY(-2px)}
}
.ed-dialog.is-closing{pointer-events:none}
@media(max-width:640px){.ed-service-preview{margin-top:24px;max-width:100%}.ed-service-preview-images{aspect-ratio:16/9;border-radius:20px}.ed-service-preview figcaption{padding-bottom:0}.ed-capability-grid{gap:22px}}
@media(prefers-reduced-motion:reduce){.ed-service-preview-images img,.ed-service-list>details,.ed-resume,.ed-service-list summary>b,.ed-resume summary b,.career-disclosure-icon{transition:none}}

/* Stronger, blue/lilac light feedback without changing document geometry. */
.ed-header{transition:transform .42s cubic-bezier(.22,1,.36,1),opacity .3s ease,box-shadow .35s ease}
.ed-header.is-scroll-hidden:not(:has(:focus-visible)){transform:translate(-50%,calc(-100% - 34px));opacity:0;pointer-events:none}
.ed-glow-card{--glow-x:50%;--glow-y:35%}
.ed-service-list>details,.ed-resume,.career-results,.ed-project-preview,.ed-contact-circle,#ed-copy-email{transition:transform .38s cubic-bezier(.22,1,.36,1),box-shadow .38s ease,border-color .3s ease,background-color .3s ease}
.ed-glow-card:focus-visible,.ed-service-list>details:focus-within{border-color:#9eafd8;box-shadow:0 0 0 1px #b9c7e5,0 10px 32px #8b9fd330,0 0 44px #afa0de20}
@media(hover:hover) and (pointer:fine){
.ed-header:hover{box-shadow:0 8px 35px #6e87b326,0 0 24px #b0a4dc22}
.ed-service-list>details:hover,.ed-resume:hover,.career-results:hover,.ed-site:hover,.ed-contact-circle:hover,#ed-copy-email:hover{background:radial-gradient(ellipse at var(--glow-x) var(--glow-y),#dce5ff99,transparent 72%),#fff;border-color:#a5b5db;box-shadow:0 0 0 1px #b6c5e366,0 18px 40px #718dc42e,0 0 52px #aa98df33;transform:translateY(-6px)}
.ed-service-list>details:hover h3,.ed-site:hover h3{color:#344d7a}
.ed-service-list>details:hover summary>b{color:#627ec1;text-shadow:0 0 14px #8ba5f080}
.ed-project-preview:hover{transform:translateY(-7px);box-shadow:0 0 0 2px #aabce0,0 18px 44px #7b91c53b,0 0 55px #a99bdc33}
.ed-project-preview:hover .ed-slot{transform:none;box-shadow:inset 0 0 0 2px #c8d6ef}
.ed-project-preview:hover .ed-project-open{background:#fff;color:#496aa6;box-shadow:0 0 22px #9fb9ec80;transform:translate(3px,-3px) scale(1.1)}
.ed-site:hover .ed-site-name>b{transform:translate(4px,-4px);color:#5775b0}
.ed-site-name>b{transition:transform .35s,color .35s}
.ed-site-list:has(.ed-site:hover)::before{transform:translate(16px,-12px) rotate(7deg)}
.ed-site-list:has(.ed-site:hover)::after{transform:translate(-5px,2px) rotate(-4deg)}
}
@media(prefers-reduced-motion:reduce){.ed-header,.ed-glow-card,.ed-site-name>b{transition:none!important}.ed-glow-card:hover{transform:none}.ed-project-preview:hover .ed-project-open{transform:none}}


/* Resume badges are readable labels, not disabled controls. */
.ed-resume .career-tags{gap:8px 7px}
.ed-resume .career-tags li{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid #c9d5e8;background:linear-gradient(135deg,#e3eaf7,#eef0fa);color:#425b83;font-size:11px;line-height:1.5;font-weight:700;box-shadow:inset 0 1px 0 #ffffffcc;transition:background .25s,border-color .25s}
.ed-resume .career-tags li::before{content:"";width:4px;height:4px;border-radius:50%;background:#7b91ba}
.ed-resume .career-results,.ed-resume .career-results:hover,.ed-resume .career-results:focus-within{border:0;border-top:1px solid #dce3ef;border-radius:0;background:transparent;box-shadow:none;transform:none;margin-top:22px}
.ed-resume .career-results>summary{padding:13px 0;color:#536b91;font-weight:650;font-size:12px;transition:color .25s}
.ed-resume .career-results>summary:hover{color:#2f507e}
.ed-resume .career-results .ed-disclosure-content{padding:0 0 6px}
.ed-resume .career-results p{font-size:12px;line-height:1.95;color:#647188;margin:4px 0 8px}
.ed-resume .career-results strong{font-weight:750;color:#3b577f}
.career-results[data-expanded="false"] .career-disclosure-icon{transform:rotate(0)}
.career-results[data-expanded="true"] .career-disclosure-icon{transform:rotate(45deg)}
/* A compact, optional project brief feeds the mail draft, never a network submission. */
.ed-brief{width:100%;max-width:760px;text-align:left;margin:8px auto 0;padding:28px 30px;border:1px solid #dfe5f0;border-radius:24px;background:#ffffffbd;box-shadow:0 14px 45px #687c9d08}
.ed-brief-heading h3{font-size:21px;font-weight:700;color:#3e506e}
.ed-brief-heading p{font-size:12px;color:#6e7c91;margin-top:7px;line-height:1.8}
.ed-brief fieldset{border:0;margin:25px 0 0;padding:0;min-width:0}
.ed-brief legend,.ed-brief-fields>label,.ed-brief-idea{font-size:12px;font-weight:650;color:#4b5d79}
.ed-brief legend small{margin-left:9px;font-size:10px;font-weight:400;color:#78869c}
.ed-brief-options{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
.ed-brief-options label{position:relative;cursor:pointer}
.ed-brief-options input{position:absolute;opacity:0;width:1px;height:1px}
.ed-brief-options span{display:flex;align-items:center;gap:8px;min-height:40px;padding:9px 14px;border:1px solid #dce3ef;border-radius:999px;background:#f8faff;color:#62738f;font-size:12px;transition:background .25s,color .25s,border-color .25s,box-shadow .25s}
.ed-brief-options span::before{content:'+';font:15px/1 Arial,sans-serif;color:#8b9cb6}
.ed-brief-options input:checked+span{background:#e3eafa;border-color:#95abd5;color:#304f80;font-weight:700;box-shadow:0 3px 12px #7892c51a}
.ed-brief-options input:checked+span::before{content:'✓';color:#476da7}
.ed-brief-options input:focus-visible+span{outline:2px solid #6d89bc;outline-offset:3px}
.ed-brief-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:25px}
.ed-brief input:not([type]),.ed-brief select,.ed-brief textarea{display:block;width:100%;box-sizing:border-box;padding:12px 13px;border:1px solid #dce3ef;border-radius:12px;background:#f9fbff;color:#364d70;font:400 13px/1.7 inherit;margin-top:10px;outline-offset:3px}
.ed-brief input:not([type]),.ed-brief select,.ed-brief textarea{font-family:inherit;font-size:13px;line-height:1.7}
.ed-brief :is(input,select,textarea):focus-visible{outline:2px solid #839cc9}
.ed-brief ::placeholder{color:#8490a4;font-weight:400}
.ed-brief-idea{display:block;margin-top:23px}
.ed-brief textarea{resize:vertical;min-height:102px;max-height:300px}
.ed-brief-note{font-size:11px;line-height:1.9;color:#77849a;margin-top:15px}
@media(hover:hover){.ed-brief-options label:hover span{border-color:#9fb3d7;background:#edf2fc}.ed-resume .career-tags li:hover{background:#dde7f8;border-color:#a8bcdb}}
@media(max-width:640px){.ed-brief{padding:22px 18px;border-radius:20px}.ed-brief-fields{grid-template-columns:1fr;gap:20px}.ed-brief-options{gap:8px}.ed-brief-options span{padding:8px 12px;font-size:11px}.ed-brief-heading h3{font-size:19px}.ed-brief legend small{font-size:9px}.ed-resume .career-tags li{font-size:11px}}

.ed-brief-disclosure{width:100%;max-width:760px;text-align:left;margin:8px auto 0;border:1px solid #dfe5f0;border-radius:24px;background:#ffffffbd;box-shadow:0 14px 45px #687c9d08}
.ed-brief-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;padding:26px 30px}
.ed-brief-summary::-webkit-details-marker{display:none}
.ed-brief-summary strong{display:block;font-size:21px;font-weight:700;color:#3e506e}
.ed-brief-summary small{display:block;font-size:12px;line-height:1.8;font-weight:400;color:#6e7c91;margin-top:7px}
.ed-brief-toggle{font:26px/1 Arial,sans-serif;color:#7890b7;transition:transform .42s cubic-bezier(.22,1,.36,1)}
.ed-brief-disclosure[open] .ed-brief-toggle{transform:rotate(45deg)}
.ed-brief-disclosure[data-expanded="false"] .ed-brief-toggle{transform:none}
.ed-brief-disclosure .ed-brief{border:0;box-shadow:none;background:transparent;border-radius:0;margin:0;max-width:none;padding-top:0}
.ed-brief-disclosure .ed-brief fieldset:first-of-type{margin-top:0}
@media(hover:hover){.ed-brief-summary:hover strong{color:#355887}.ed-brief-summary:hover .ed-brief-toggle{color:#476da5}}
@media(max-width:640px){.ed-brief-disclosure{border-radius:20px}.ed-brief-summary{padding:22px 18px}.ed-brief-summary strong{font-size:19px}.ed-brief-summary small{font-size:11px}}
@media(prefers-reduced-motion:reduce){.ed-brief-toggle{transition:none}}

/* Current employment has a distinct status, rather than a disabled-looking badge. */
.ed-resume .career-current .career-status{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid #49678f;background:#405c84;color:#fff;font-size:11px;line-height:1.5;font-weight:700;letter-spacing:.3px;box-shadow:0 4px 12px #405c8426;white-space:nowrap}
.ed-resume .career-current .career-status::before{content:"";width:6px;height:6px;flex:none;border-radius:50%;background:#bbebd6;box-shadow:0 0 0 3px #bbebd61a}
.ed-resume .career-current .career-date::before{background:#526f9a;border-color:#526f9a;box-shadow:0 0 0 4px #526f9a12}
.ed-resume .career-status-past{background:#edf1f7;color:#6e7e97;font-weight:500;box-shadow:none}

/* Professional toolkit: capabilities, not arbitrary proficiency scores. */
.ed-skills{max-width:900px;margin:0 auto 40px}
.ed-skills-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:23px}
.ed-skills-heading h3{font-size:26px;font-weight:650;color:#3e4e69;margin-top:12px;line-height:1.5;letter-spacing:-.03em}
.ed-skills-heading>p{font-size:12px;line-height:1.9;color:#718097}
.ed-skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ed-skill-card{padding:24px;border:1px solid #e1e7f1;border-radius:20px;background:linear-gradient(135deg,#fafcff,#f5f7fc);transition:border-color .3s,box-shadow .3s,transform .3s}
.ed-skill-index{font:9px/1.7 Arial,sans-serif;color:#8290a6;letter-spacing:.8px}
.ed-skill-card h4{font-size:19px;font-weight:700;color:#405573;margin-top:10px}
.ed-skill-card>p{font-size:11px;line-height:1.8;color:#72819a;margin-top:7px}
.ed-skill-tags{list-style:none;display:flex;flex-wrap:wrap;gap:7px;padding:0;margin:18px 0 0}
.ed-skill-tags li{font:500 11px/1.6 Arial,sans-serif;color:#486181;background:#fff;border:1px solid #dce4f0;border-radius:8px;padding:7px 10px}
.ed-ai-toolkit{margin-top:16px;padding:28px;border:1px solid #d8deef;border-radius:22px;background:radial-gradient(ellipse at 90% 0,#e7e3f580,transparent 65%),#f5f7fc}
.ed-ai-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}
.ed-ai-heading h4{font-size:23px;font-weight:650;color:#405371;margin-top:10px;line-height:1.5}
.ed-ai-badge{border:1px solid #c5d1e6;border-radius:999px;padding:7px 11px;white-space:nowrap;color:#567097;font-size:10px;background:#ffffffa6}
.ed-ai-description{font-size:12px;line-height:2;color:#6a7a92;max-width:680px;margin-top:16px}
.ed-ai-description strong{color:#425b80;font-weight:700}
.ed-ai-groups{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:23px;padding-top:20px;border-top:1px solid #dfe5f0}
.ed-ai-groups h5{font-size:11px;color:#73829b;font-weight:600}
.ed-ai-groups .ed-skill-tags{margin-top:12px}
.ed-ai-groups .ed-skill-tags li{color:#435d87;border-color:#cbd8ec;background:#fdfdff;font-weight:600}
@media(hover:hover){.ed-skill-card:hover{border-color:#b6c6e1;box-shadow:0 8px 25px #6d87ba1c;transform:translateY(-3px)}}
@media(max-width:640px){.ed-skills{margin-bottom:28px}.ed-skills-heading{display:block}.ed-skills-heading h3{font-size:23px}.ed-skills-heading>p{margin-top:12px}.ed-skills-grid{grid-template-columns:1fr;gap:12px}.ed-skill-card{padding:21px}.ed-ai-toolkit{padding:22px 20px}.ed-ai-heading{align-items:start;flex-direction:column;gap:12px}.ed-ai-heading h4{font-size:21px}.ed-ai-groups{grid-template-columns:1fr;gap:22px}}
@media(prefers-reduced-motion:reduce){.ed-skill-card{transition:none}.ed-skill-card:hover{transform:none}}

.ed-skill-tags li{display:inline-flex;align-items:center;gap:8px;min-height:35px}
.ed-tool-icon{display:block;width:19px;height:19px;object-fit:contain;flex:0 0 19px}
.ed-skill-tags li>span{min-width:0;line-height:1.6}
@media(max-width:640px){.ed-skill-tags li{gap:7px}.ed-tool-icon{width:18px;height:18px;flex-basis:18px}}

/* Section titles: local glyph transforms only; no layout changes or continuous loops. */
.editorial-page .ed-motion-title .ed-motion-char{display:inline-block;font:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0;vertical-align:baseline;transform:translateY(0) rotate(0);transition:transform .3s cubic-bezier(.22,1,.36,1),color .25s,text-shadow .25s}
.editorial-page .ed-motion-title{overflow:visible}
.editorial-page .ed-skill-tags li{transition:transform .25s,background .25s,border-color .25s,box-shadow .25s,color .25s}
.editorial-page .ed-skill-tags .ed-tool-icon{transition:transform .3s cubic-bezier(.22,1,.36,1)}
@media(hover:hover) and (pointer:fine){
.editorial-page .ed-skill-tags li:hover{transform:translateY(-3px);border-color:#a5b9e5;background:#eef3ff;color:#3155b4;box-shadow:0 5px 14px #7d98d326}
.editorial-page .ed-skill-tags li:hover .ed-tool-icon{transform:rotate(-9deg) scale(1.12)}
}
.text-motion-off .editorial-page .ed-motion-title .ed-motion-char:hover{transform:none;text-shadow:none}
.text-motion-off .editorial-page .ed-skill-tags li:hover,.text-motion-off .editorial-page .ed-skill-tags li:hover .ed-tool-icon{transform:none}
@media(prefers-reduced-motion:reduce){.editorial-page .ed-motion-title .ed-motion-char,.editorial-page .ed-skill-tags li,.editorial-page .ed-tool-icon{transition:none!important}.editorial-page .ed-motion-title .ed-motion-char:hover,.editorial-page .ed-skill-tags li:hover,.editorial-page .ed-skill-tags li:hover .ed-tool-icon{transform:none!important;text-shadow:none!important}}

/* Different gestures for different sections; one-shot animations, no render loop. */
.editorial-page .ed-motion-title .ed-motion-char{position:relative}
@media(hover:hover) and (pointer:fine){
/* Selected work: a single travelling ripple on entering the heading. */
.editorial-page #projects-title:hover .ed-motion-char{animation:ed-title-ripple .65s cubic-bezier(.22,.7,.2,1) calc(var(--char-index,0)*35ms) both}
/* Digital: individual solid letters switch to a clean outlined glyph. */
.editorial-page #sites-title .ed-motion-char:hover{color:transparent;-webkit-text-stroke:1px #4668dc;transform:translateX(2px);text-shadow:3px 0 #abbcff22}
/* Capabilities: an editorial zigzag typesetting rhythm. */
.editorial-page #capabilities-title:hover .ed-motion-char{transform:translateY(-3px) rotate(-3deg);color:#425e9d;transition-delay:calc(var(--char-index,0)*15ms)}
.editorial-page #capabilities-title:hover .ed-motion-char:nth-child(even){transform:translateY(4px) rotate(3deg);color:#3155e7}
/* About: a soft coloured offset impression, rather than another jump. */
.editorial-page #about-title:hover .ed-motion-char{color:#374666;text-shadow:3px 3px #b7c8ee70;transform:none;transition-delay:calc(var(--char-index,0)*12ms)}
/* Contact: the two lines gently lean toward the conversation. */
.editorial-page #contact-title:hover .ed-motion-char{transform:translateX(4px) rotate(-2deg);color:#3155e7;transition-delay:calc(var(--char-index,0)*22ms)}
/* Small headings: a marker swash, leaving letter positions stable. */
.editorial-page :is(.ed-skills-heading h3,.ed-ai-heading h4,.ed-about-lead) .ed-motion-char:after{content:'';position:absolute;left:0;right:0;bottom:.05em;height:.28em;background:#ccdafb99;z-index:-1;transform:scaleX(0);transform-origin:left;transition:transform .3s;transition-delay:calc(var(--char-index,0)*14ms)}
.editorial-page :is(.ed-skills-heading h3,.ed-ai-heading h4,.ed-about-lead):hover .ed-motion-char{color:#3c5895;isolation:isolate}
.editorial-page :is(.ed-skills-heading h3,.ed-ai-heading h4,.ed-about-lead):hover .ed-motion-char:after{transform:scaleX(1)}
/* Services and skill cards: a compact underline instead of per-letter movement. */
.editorial-page :is(.ed-service-list h3,.ed-skill-card h4){position:relative}
.editorial-page :is(.ed-service-list h3,.ed-skill-card h4):after{content:'';display:block;position:absolute;left:0;top:1.45em;width:32px;height:2px;background:#718fe0;transform:scaleX(0);transform-origin:left;transition:transform .3s}
.editorial-page .ed-service-list summary:hover h3:after,.editorial-page .ed-skill-card:hover h4:after{transform:scaleX(1)}
}
@keyframes ed-title-ripple{0%,100%{transform:translateY(0);color:inherit}40%{transform:translateY(-9px);color:#4268db}70%{transform:translateY(2px);color:#718bcd}}
.text-motion-off .editorial-page .ed-motion-title .ed-motion-char{animation:none!important;transform:none!important;text-shadow:none!important;transition-delay:0s!important}
.text-motion-off .editorial-page .ed-motion-title .ed-motion-char:after{transition:none!important}
@media(prefers-reduced-motion:reduce){.editorial-page .ed-motion-title .ed-motion-char{animation:none!important;transform:none!important;text-shadow:none!important;transition:none!important}.editorial-page .ed-motion-title .ed-motion-char:after,.editorial-page .ed-motion-title:after{transition:none!important}}

/* Tool meteor micro-interactions: clipped locally, no global canvas or animation loop. */
.editorial-page .ed-skill-tags>li,.editorial-page .ed-skill-tags>li:hover{padding:0;border:0;background:transparent;box-shadow:none;transform:none}
.editorial-page .ed-tool-trigger{display:inline-flex;align-items:center;gap:8px;min-height:35px;padding:7px 10px;border:1px solid #dce4f0;border-radius:8px;background:#fff;font:500 11px/1.6 Arial,sans-serif;color:#486181;cursor:pointer;transition:transform .25s,background .25s,border-color .25s,box-shadow .25s}
.editorial-page .ed-ai-groups .ed-tool-trigger{font-weight:600;color:#435d87;border-color:#cbd8ec}
.editorial-page .ed-tool-trigger:focus-visible{outline:2px solid #7291cf;outline-offset:4px}
.editorial-page .ed-tool-trigger:active{transform:scale(.97)}
.editorial-page .ed-skill-card,.editorial-page .ed-ai-toolkit{position:relative;isolation:isolate}
.editorial-page .meteor-zone{position:absolute;right:0;top:0;bottom:0;width:38%;overflow:hidden;pointer-events:none;z-index:3;border-radius:0 22px 22px 0;contain:layout paint}
.editorial-page .ed-ai-toolkit>.meteor-zone{width:32%}
.editorial-page .meteor-particle{position:absolute;top:0;left:0;pointer-events:none}
.editorial-page .meteor-particle svg{width:100%;height:100%;display:block;position:relative;z-index:1}
.editorial-page .meteor-particle:before{content:'';position:absolute;left:calc(50% - 1px);bottom:65%;width:2px;height:var(--trail,42px);background:linear-gradient(0deg,var(--meteor-color),transparent);opacity:.55;transform:rotate(7deg);transform-origin:bottom;pointer-events:none}
@media(hover:hover) and (pointer:fine){.editorial-page .ed-tool-trigger:hover{transform:translateY(-3px);border-color:#a5b9e5;background:#eef3ff;color:#3155b4;box-shadow:0 5px 14px #7d98d326}}
@media(max-width:640px){.editorial-page .meteor-zone{width:35%}.editorial-page .ed-ai-toolkit>.meteor-zone{width:35%}.editorial-page .ed-tool-trigger{gap:7px}}
@media(prefers-reduced-motion:reduce){.editorial-page .ed-tool-trigger{transition:none}.editorial-page .ed-tool-trigger:hover{transform:none}}

/* Social destinations: grouped by region, local icons, editable homepage links. */
.ed-footer .ed-footer-top{grid-template-columns:minmax(0,1fr) 120px 145px 145px;gap:32px}
.ed-footer .ed-footer-group-title{font-size:10px;font-weight:650;color:#8795ac;letter-spacing:1px;margin:0 0 11px;line-height:1.7}
.ed-footer .ed-social-group a{gap:10px;min-height:43px;transition:color .25s,transform .25s}
.ed-footer .ed-social-group img{width:19px;height:19px;object-fit:contain;flex:none;transition:transform .25s}
.ed-footer .ed-social-arrow{font-size:10px;color:#98a5ba;margin-left:1px}
@media(hover:hover){.ed-footer .ed-social-group a:hover img{transform:rotate(-6deg) scale(1.1)}.ed-footer .ed-social-group a:hover{color:#3155a8}}
@media(max-width:900px){.ed-footer .ed-footer-top{grid-template-columns:minmax(0,1fr) 95px 110px 120px;gap:24px}}
@media(max-width:640px){.ed-footer .ed-footer-top{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 13px}.ed-footer .ed-footer-brand{grid-column:1/-1}.ed-footer .ed-footer-group-title{font-size:9px;letter-spacing:0}.ed-footer .ed-social-group a{gap:6px;font-size:10px}.ed-footer .ed-social-group img{width:17px;height:17px}.ed-footer .ed-social-arrow{display:none}}
@media(prefers-reduced-motion:reduce){.ed-footer .ed-social-group a,.ed-footer .ed-social-group img{transition:none}.ed-footer .ed-social-group a:hover img{transform:none}}

/* Actual project thumbnail and reserved featured pagination. */
.ed-work-toolbar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:30px}.ed-work-toolbar .ed-filter{margin-bottom:0}
.ed-work-pager{display:flex;align-items:center;gap:15px;flex:none}.ed-work-pager>span{font:10px/1.5 Arial;letter-spacing:2px;color:#8b9bb4}.ed-work-pager strong{font-weight:600;color:#5d7297}.ed-work-pager button{display:grid;place-items:center;width:34px;height:34px;border:1px solid #e0e7f3;border-radius:50%;background:#fff;color:#bac6d9;font-size:16px}.ed-work-pager button:disabled{cursor:default}
.ed-xiaomi-cover{position:relative;border-radius:24px;background:#eaf0fa;padding:18px;border:1px solid #e4eaf5;overflow:hidden;transition:transform .4s,box-shadow .4s}.ed-xiaomi-browser{border-radius:12px;overflow:hidden;background:#121315;border:1px solid #d7dfed;box-shadow:0 15px 35px #29374b12}.ed-xiaomi-bar{height:26px;background:#fff;display:flex;align-items:center;padding:0 12px;gap:4px;position:relative}.ed-xiaomi-bar i{width:4px;height:4px;border-radius:50%;background:#cbd5e6}.ed-xiaomi-bar>span{position:absolute;left:50%;transform:translateX(-50%);font:7px/1.5 Arial;letter-spacing:1px;color:#9ca9bd}.ed-xiaomi-screen{aspect-ratio:16/8.1;overflow:hidden}.ed-xiaomi-screen img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;transition:transform .65s cubic-bezier(.2,.7,.2,1)}.ed-xiaomi-badge{position:absolute;top:58px;right:33px;background:#ffffffeb;border:1px solid #ffffff55;color:#687b98;padding:7px 10px;border-radius:99px;font-size:9px}.ed-xiaomi-cta{position:absolute;right:33px;bottom:32px;display:flex;gap:25px;align-items:center;background:#fff;color:#4a6086;border-radius:99px;padding:13px 17px;font-size:11px;box-shadow:0 5px 25px #1420331a;transition:transform .35s,background .35s}.ed-xiaomi-cta b{font:400 21px/1 Arial}.ed-project-caption.ed-xiaomi-caption{padding:22px 4px 0}.ed-xiaomi-caption h3{font-size:25px;font-weight:600;color:#445878;margin:8px 0 12px}.ed-xiaomi-tags{list-style:none;display:flex;gap:7px;flex-wrap:wrap;margin:0;padding:0}.ed-xiaomi-tags li{font-size:9px;border:1px solid #d8e2f1;border-radius:99px;padding:6px 9px;color:#7c8fae;background:#fff}.ed-xiaomi-caption>span{text-align:right;font-size:10px;line-height:2;color:#8593a9;white-space:normal}.ed-xiaomi-caption>span strong{display:inline-block;font-size:11px;color:#546d98;font-weight:500;margin-top:5px}
@media(hover:hover) and (pointer:fine){.ed-xiaomi-link:hover .ed-xiaomi-cover{transform:translateY(-3px);box-shadow:0 17px 35px #7992bd15}.ed-xiaomi-link:hover .ed-xiaomi-screen img{transform:scale(1.025)}.ed-xiaomi-link:hover .ed-xiaomi-cta{transform:translate(2px,-3px);background:#f5f8ff}}
@media(max-width:640px){.ed-work-toolbar{gap:12px;align-items:end;margin-bottom:22px}.ed-work-toolbar .ed-filter{gap:3px}.ed-work-toolbar .ed-filter button{font-size:10px;padding:10px 11px;min-height:37px}.ed-work-pager{gap:7px;flex-wrap:wrap;justify-content:end;max-width:80px}.ed-work-pager>span{font-size:9px;width:100%;text-align:right}.ed-work-pager button{width:28px;height:28px;font-size:13px}.ed-xiaomi-cover{padding:9px;border-radius:16px}.ed-xiaomi-browser{border-radius:9px}.ed-xiaomi-bar{height:19px;padding-left:8px}.ed-xiaomi-bar i{width:3px;height:3px}.ed-xiaomi-bar>span{font-size:5px;letter-spacing:.5px}.ed-xiaomi-screen{aspect-ratio:16/10}.ed-xiaomi-screen img{object-position:58% top}.ed-xiaomi-badge{top:39px;right:17px;font-size:7px;padding:5px 7px}.ed-xiaomi-cta{right:17px;bottom:16px;padding:8px 11px;font-size:9px;gap:12px}.ed-xiaomi-cta b{font-size:17px}.ed-project-caption.ed-xiaomi-caption{padding:17px 1px 0;display:block}.ed-xiaomi-caption h3{font-size:20px;margin:7px 0 12px}.ed-xiaomi-tags li{font-size:8px;padding:5px 8px}.ed-xiaomi-caption>span{display:block;text-align:left;margin-top:14px;font-size:9px}.ed-xiaomi-caption>span br{display:none}.ed-xiaomi-caption>span strong{margin-left:14px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.ed-xiaomi-cover,.ed-xiaomi-screen img,.ed-xiaomi-cta{transition:none}.ed-xiaomi-link:hover .ed-xiaomi-cover,.ed-xiaomi-link:hover .ed-xiaomi-screen img,.ed-xiaomi-link:hover .ed-xiaomi-cta{transform:none}}

/* Edge-to-edge cover with readable project information inside the lower left. */
.ed-featured-xiaomi .ed-xiaomi-cover{padding:0;border:0;border-radius:24px;background:#0b0c0f;isolation:isolate}
.ed-featured-xiaomi .ed-xiaomi-browser{border:0;border-radius:0;box-shadow:none}.ed-featured-xiaomi .ed-xiaomi-bar{display:none}
.ed-featured-xiaomi .ed-xiaomi-screen{aspect-ratio:16/9}.ed-featured-xiaomi .ed-xiaomi-screen img{object-fit:cover;object-position:center top}
.ed-featured-xiaomi .ed-xiaomi-cover:after{content:'';position:absolute;left:0;right:0;bottom:0;height:36%;background:linear-gradient(transparent,#080d16ad 50%,#080d16ed);pointer-events:none;z-index:1}
.ed-featured-xiaomi .ed-project-caption.ed-xiaomi-caption{position:absolute;left:30px;bottom:27px;right:220px;z-index:2;display:block;padding:0;color:#fff}
.ed-featured-xiaomi .ed-xiaomi-caption p{color:#c2cee2;font-size:9px;letter-spacing:1px}
.ed-featured-xiaomi .ed-xiaomi-caption h3{color:#fff;font-size:26px;margin:8px 0 12px;font-weight:600}
.ed-featured-xiaomi .ed-xiaomi-tags{gap:7px}.ed-featured-xiaomi .ed-xiaomi-tags li{background:#ffffff12;border-color:#ffffff3d;color:#e0e7f2;font-size:9px;padding:5px 9px}
.ed-featured-xiaomi .ed-xiaomi-caption>span{display:block;text-align:left;color:#aab8ce;font-size:9px;line-height:1.8;margin-top:10px}
.ed-featured-xiaomi .ed-xiaomi-cta{z-index:3;right:27px;bottom:28px}.ed-featured-xiaomi .ed-xiaomi-badge{top:22px;right:24px;z-index:2}
@media(max-width:640px){.ed-featured-xiaomi .ed-xiaomi-cover{border-radius:17px}.ed-featured-xiaomi .ed-xiaomi-screen{aspect-ratio:4/3}.ed-featured-xiaomi .ed-xiaomi-screen img{object-position:62% top}.ed-featured-xiaomi .ed-xiaomi-cover:after{height:55%}.ed-featured-xiaomi .ed-project-caption.ed-xiaomi-caption{left:17px;bottom:17px;right:17px;padding:0}.ed-featured-xiaomi .ed-xiaomi-caption h3{font-size:17px;line-height:1.5;margin:6px 0 8px;max-width:90%}.ed-featured-xiaomi .ed-xiaomi-caption p{font-size:7px;letter-spacing:.5px}.ed-featured-xiaomi .ed-xiaomi-tags li{font-size:7px;padding:4px 7px}.ed-featured-xiaomi .ed-xiaomi-caption>span{font-size:7px;margin-top:8px}.ed-featured-xiaomi .ed-xiaomi-cta{right:15px;bottom:auto;top:15px;padding:9px;font-size:0;gap:0;width:33px;height:33px;justify-content:center}.ed-featured-xiaomi .ed-xiaomi-cta b{font-size:18px}.ed-featured-xiaomi .ed-xiaomi-badge{left:15px;right:auto;top:16px;font-size:7px;padding:5px 7px}}
.ed-featured-xiaomi .ed-xiaomi-screen{display:block}
@media(max-width:640px){.ed-featured-xiaomi .ed-xiaomi-screen img{object-position:72% center}}

/* R28 production case card: local stills only, no sequence-frame preload. */
.ed-r28-link{display:block}.ed-r28-cover{position:relative;aspect-ratio:16/10;border-radius:23px;overflow:hidden;background:linear-gradient(145deg,#11141b,#363e4c);isolation:isolate}.ed-r28-cover:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 75% 35%,#afbbd120,transparent 60%);z-index:-1}.ed-r28-cover img{position:absolute;width:100%;height:100%;object-fit:contain;inset:0;transition:transform .65s cubic-bezier(.2,.7,.2,1),opacity .5s}.ed-r28-cover .ed-r28-primary{transform:translate(11%,0) scale(1.07)}.ed-r28-cover .ed-r28-alternate{opacity:0;transform:translate(11%,0) scale(1.07)}.ed-r28-cover:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#070b13d9,transparent 45%);pointer-events:none}.ed-r28-stamp{position:absolute;top:22px;left:23px;font:8px/1.7 Arial;letter-spacing:1.6px;color:#b8c3d7;z-index:2}.ed-r28-stamp b{display:block;font:500 23px/1.7 Arial;letter-spacing:-1px;color:#e3eaf6;margin-top:6px}.ed-r28-corner{position:absolute;top:22px;right:23px;font:8px/1.7 Arial;letter-spacing:1px;color:#abb8cf;padding-bottom:5px;border-bottom:1px solid #9fafc24a;z-index:2}.ed-r28-copy{position:absolute;left:24px;bottom:23px;right:70px;color:white;z-index:3}.ed-r28-copy p{font:8px/1.7 Arial;color:#9eafc9;letter-spacing:1px;margin:0 0 7px}.ed-r28-copy h3{font-size:23px;line-height:1.4;letter-spacing:-.5px;font-weight:550;margin:0 0 12px;color:#fff}.ed-r28-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}.ed-r28-tags li{background:#ffffff0a;border:1px solid #ffffff2c;border-radius:99px;color:#d6e1f1;font-size:8px;padding:4px 8px;line-height:1.5}.ed-r28-arrow{position:absolute;right:22px;bottom:25px;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#ffffffed;color:#63799d;font:24px/1 Arial;z-index:3;transition:transform .3s}.ed-r28-below{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:15px 4px 0;font-size:10px;color:#8b9ab1}.ed-r28-below>span:first-child{color:#677d9e}
/* Arrow navigation changes the featured emphasis without duplicating projects. */
.ed-project-grid .ed-project[data-project-published="true"]{grid-column:auto}.ed-project-grid .ed-project.is-featured{grid-column:1/-1;order:-1}.ed-r28-project.is-featured .ed-r28-cover{aspect-ratio:16/9}.ed-project-grid.is-filtered .ed-project{grid-column:1/-1}.ed-work-pager button:not(:disabled){color:#627fb2;border-color:#b8c9e6;cursor:pointer;transition:background .2s,transform .2s}.ed-work-pager button:not(:disabled):hover{background:#edf3fd;transform:translateY(-2px)}
@media(hover:hover) and (pointer:fine){.ed-r28-link:hover .ed-r28-primary{opacity:0;transform:translate(11%,0) scale(1.1)}.ed-r28-link:hover .ed-r28-alternate{opacity:1;transform:translate(11%,0) scale(1.1)}.ed-r28-link:hover .ed-r28-arrow{transform:translate(2px,-3px)}}
@media(max-width:640px){.ed-r28-cover,.ed-r28-project.is-featured .ed-r28-cover{border-radius:18px;aspect-ratio:16/10}.ed-r28-stamp{top:17px;left:18px;font-size:6px}.ed-r28-stamp b{font-size:19px}.ed-r28-corner{right:18px;top:18px;font-size:6px}.ed-r28-copy{left:19px;bottom:19px;right:55px}.ed-r28-copy h3{font-size:19px;margin-bottom:9px}.ed-r28-copy p{font-size:6px}.ed-r28-tags li{font-size:7px;padding:4px 6px}.ed-r28-arrow{width:30px;height:30px;right:18px;bottom:21px;font-size:20px}.ed-r28-below{font-size:9px}.ed-project-grid .ed-project[data-project-published="true"]{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.ed-r28-cover img,.ed-r28-arrow{transition:none}.ed-r28-link:hover .ed-r28-primary,.ed-r28-link:hover .ed-r28-alternate{transform:translate(11%,0) scale(1.07)}}

/* Approved R28-review actual first-chapter cover; no frame preload. */
.ed-r28-cover{background:#10141a}.ed-r28-cover .ed-r28-primary{object-fit:cover;object-position:center top;transform:none;opacity:1}.ed-r28-link:hover .ed-r28-primary{opacity:1;transform:scale(1.025)}.ed-r28-cover:after{background:linear-gradient(0deg,#070b13ed,transparent 38%)}.ed-r28-copy h3{font-size:21px}@media(max-width:640px){.ed-r28-project .ed-r28-cover{aspect-ratio:16/10}.ed-r28-copy h3{font-size:17px}.ed-r28-cover .ed-r28-primary{object-position:center top}}@media(prefers-reduced-motion:reduce){.ed-r28-link:hover .ed-r28-primary{transform:none}}

/* Poster series: real page cover, matching published project interaction. */
.ed-poster-project.is-featured .ed-r28-cover{aspect-ratio:16/9}
@media(max-width:640px){.ed-poster-project.is-featured .ed-r28-cover{aspect-ratio:16/10}}

/* Xiaomi compact state follows the same 16:10 card system as the other projects. */
.ed-xiaomi-below{display:none}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-below{display:flex}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-cover{border-radius:23px;transform:none;box-shadow:none}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-screen{aspect-ratio:16/10}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-badge{display:none}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-cover:after{inset:0;height:auto;background:linear-gradient(0deg,#070b13ed,transparent 38%)}
.ed-featured-xiaomi:not(.is-featured) .ed-project-caption.ed-xiaomi-caption{left:24px;bottom:23px;right:70px}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-caption p{font:8px/1.7 Arial;letter-spacing:1px;color:#9eafc9;margin:0 0 7px}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-caption h3{font-size:21px;line-height:1.4;letter-spacing:-.5px;font-weight:550;margin:0 0 12px}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-tags{gap:6px}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-tags li{background:#ffffff0a;border-color:#ffffff2c;color:#d6e1f1;font-size:8px;padding:4px 8px;line-height:1.5}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-caption>span{display:none}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-cta{right:22px;bottom:25px;top:auto;width:36px;height:36px;padding:0;display:grid;place-items:center;font-size:0;gap:0;box-shadow:none;background:#ffffffed;color:#63799d}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-cta b{font:24px/1 Arial}
@media(max-width:640px){
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-cover{border-radius:18px}
.ed-featured-xiaomi:not(.is-featured) .ed-project-caption.ed-xiaomi-caption{left:19px;bottom:19px;right:55px}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-caption h3{font-size:17px;margin-bottom:9px;max-width:none}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-caption p{font-size:6px}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-tags li{font-size:7px;padding:4px 6px}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-cta{right:18px;bottom:21px;width:30px;height:30px}
.ed-featured-xiaomi:not(.is-featured) .ed-xiaomi-cta b{font-size:20px}
}

/* Remove legacy preview-button lift/glow: Xiaomi uses the same stable link shell. */
.ed-featured-xiaomi .ed-xiaomi-link .ed-xiaomi-cover,.ed-featured-xiaomi .ed-xiaomi-link:hover .ed-xiaomi-cover{transform:none;box-shadow:none}

/* Published 5090 card follows the shared project cover proportions. */
.ed-5090-project.is-featured .ed-r28-cover{aspect-ratio:16/9}
@media(max-width:640px){.ed-5090-project.is-featured .ed-r28-cover{aspect-ratio:16/10}}

/* Unified project entry and stronger work navigation states. */
.ed-featured-xiaomi .ed-xiaomi-below{display:flex}
.ed-filter button{border:1px solid transparent;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}
.ed-filter button[aria-pressed="true"]{background:#3155df;color:#fff;border-color:#3155df;font-weight:650;box-shadow:0 4px 12px #3155df24}
.ed-filter button[aria-pressed="true"] sup{color:#fff;opacity:.85}
.ed-work-pager button:not(:disabled){background:#fff;border-color:#a3b5d7;color:#4869aa;transition:background-color .18s,color .18s,border-color .18s,box-shadow .18s,transform .18s}
@media(hover:hover) and (pointer:fine){
.ed-filter button:not([aria-pressed="true"]):hover{background:#e6edff;border-color:#a6baf0;color:#2346bf}
.ed-filter button[aria-pressed="true"]:hover{background:#2346cc;border-color:#2346cc}
.ed-work-pager button:not(:disabled):hover{background:#3155df;border-color:#3155df;color:#fff;box-shadow:0 4px 13px #3155df33;transform:translateX(-3px)}
.ed-work-pager button:last-child:not(:disabled):hover{transform:translateX(3px)}
}
.ed-filter button:focus-visible,.ed-work-pager button:focus-visible{outline:3px solid #8fa7ff;outline-offset:4px}
.ed-work-pager button:not(:disabled):active{background:#2346bf;color:#fff;transform:scale(.94)}
@media(prefers-reduced-motion:reduce){.ed-filter button,.ed-work-pager button:not(:disabled){transition:none}.ed-work-pager button:not(:disabled):hover,.ed-work-pager button:last-child:not(:disabled):hover,.ed-work-pager button:not(:disabled):active{transform:none}}

/* AirPos portfolio card uses the shared cover system. */
.ed-airpos-project.is-featured .ed-r28-cover{aspect-ratio:16/9}
@media(max-width:640px){.ed-airpos-project.is-featured .ed-r28-cover{aspect-ratio:16/10}}
