/* Project cards with visitor-triggered motion. */
.hero{padding-top:42px;padding-bottom:34px}.hero h1{font-size:clamp(3.5rem,6.4vw,5.8rem);line-height:1.02;letter-spacing:-.065em}.hero .intro{max-width:660px}.hero-aside{align-self:center}.education-strip{border-bottom:0}.work-gallery{padding-top:32px}.work-gallery>.section-heading{align-items:flex-end;margin-bottom:26px}.work-gallery .section-heading h2{font-size:clamp(1.8rem,3vw,2.65rem);letter-spacing:-.05em}.work-gallery .section-heading>p{font-size:.9375rem;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.work-card{background:#fff;border:1px solid #e4e7eb;border-radius:24px;padding:10px;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;scroll-margin-top:110px}.play-stage{position:relative;height:400px;overflow:hidden;border-radius:16px;display:block;isolation:isolate}.stage-tag{position:absolute;left:24px;top:22px;font-size:.75rem;letter-spacing:.075em;font-weight:600;z-index:3}.stage-status{position:absolute;right:22px;top:18px;font-size:.75rem;border:1px solid #bed6bf55;color:#d6ead6;border-radius:100px;padding:6px 10px;z-index:3}.work-card-copy{padding:23px 16px 18px}.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card-title-row h3{font-size:1.7rem;font-weight:600;letter-spacing:-.05em;line-height:1.15}.round-link{display:grid;place-items:center;width:38px;height:38px;border:1px solid #dce1e8;border-radius:50%;flex-shrink:0;font-size:1.3rem;transition:background .25s,color .25s,transform .3s}.work-card-copy>p{color:var(--muted);font-size:1rem;line-height:1.6;max-width:510px}.card-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.card-tags span{padding:5px 10px;background:#f2f4f7;border-radius:6px;color:#545b66;font-size:.8125rem;line-height:1.4}
.clarity-stage{background:radial-gradient(ellipse at 50% 90%,#435f3d 0,transparent 66%),#15221c;color:#dbecd9}.clarity-play{position:absolute;inset:50px 0 22px;width:100%;border:0;background:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:inherit;font:inherit;padding:0;perspective:900px}.clarity-play>.dance-target{width:143px;height:auto;max-width:none;border:1px solid #819483;border-radius:17px;transform:rotate(-5deg);box-shadow:0 18px 28px #0008;will-change:transform}.orbit-label{position:absolute;z-index:2;display:flex;align-items:center;gap:9px;border:1px solid #d9edce55;background:#223428f0;border-radius:12px;box-shadow:0 12px 26px #0003;padding:11px 15px;font-size:.875rem;color:#f1f7ef;transition:transform .45s cubic-bezier(.2,.8,.2,1)}.orbit-label>span{display:grid;place-items:center;width:23px;height:23px;border-radius:6px;background:#c7e5bd;color:#243a24;font-size:1rem}.orbit-notes{left:7%;top:65px;transform:rotate(-8deg)}.orbit-tasks{right:6%;top:137px;transform:rotate(7deg)}.orbit-audio{left:8%;bottom:33px;transform:rotate(-5deg)}.play-hint{position:absolute;bottom:13px;right:18px;font-size:.75rem;color:#d5e6d2;pointer-events:none}.touch-hint{display:none}.clarity-play.is-playing .orbit-notes{transform:translate(-8px,-12px) rotate(-15deg)}.clarity-play.is-playing .orbit-tasks{transform:translate(10px,-8px) rotate(13deg)}.clarity-play.is-playing .orbit-audio{transform:translate(-5px,8px) rotate(4deg)}
.fate-stage{background:#000;color:#d0c8e5}.fate-stage>img{position:absolute;width:245px;height:245px;object-fit:contain;top:80px;left:calc(50% - 122.5px);transition:transform .65s cubic-bezier(.2,.9,.2,1)}.match-pill{position:absolute;background:#f1e8ff;color:#43355b;border-radius:100px;font-size:.9375rem;letter-spacing:-.03em;padding:10px 16px;box-shadow:0 8px 25px #0003;transition:transform .5s cubic-bezier(.2,.9,.2,1)}.match-left{top:100px;left:7%;transform:rotate(-9deg)}.match-right{right:6%;bottom:91px;transform:rotate(9deg);background:#f5c7de;color:#632445}.fate-trial-tag{position:absolute;bottom:23px;width:100%;text-align:center;font-size:.875rem;color:#d0c8e5}.code-stage{background:#e1e9fc;color:#334979}.code-window{position:absolute;left:8%;top:95px;width:92%;background:#fff;border:1px solid #c0cfe9;border-radius:12px;overflow:hidden;box-shadow:0 18px 34px #63759a24;transform:rotate(-4deg);transition:transform .5s cubic-bezier(.2,.9,.2,1)}.code-title{padding:12px 16px;display:flex;gap:20px;align-items:center;font-size:.8125rem;border-bottom:1px solid #e4e9f2}.code-title>span:first-child{font-size:.75rem;letter-spacing:3px;color:#8294b8}.code-window img{width:100%;height:auto}.code-footer{position:absolute;bottom:26px;left:26px;font-size:1.3rem;letter-spacing:-.035em;font-weight:500}.hardware-stage{background:#25324c;color:white}.hardware-stage>img{width:100%;height:100%;object-fit:cover;object-position:50% 15%;transition:transform .65s cubic-bezier(.2,.9,.2,1)}.hardware-stage .stage-tag{background:#15213bef;left:16px;top:16px;padding:8px 11px;border-radius:6px}.hardware-caption{position:absolute;bottom:17px;left:17px;right:17px;color:#fff;background:#15213be8;border:1px solid #ffffff33;border-radius:9px;padding:12px 15px;font-size:.875rem}.hardware-evidence img{width:100%;height:auto;border-radius:16px}.hardware-evidence figcaption{color:var(--muted);text-align:left;font-size:.875rem;margin-top:12px}
.screen-surface img{box-shadow:0 12px 25px #1b392612}.clarity-play:focus-visible{outline:3px solid #94b5ff;outline-offset:-5px;border-radius:14px}.nav a,.button{transition:color .2s,background .2s,transform .25s}.case-link>span:last-child,.text-link>span{display:inline-block;transition:transform .25s}.case-link:hover>span:last-child,.text-link:hover>span{transform:translate(3px,-3px)}
@media(hover:hover) and (pointer:fine){.work-card:hover{transform:translateY(-5px);box-shadow:0 15px 36px #17213b0c;border-color:#ced5e0}.work-card:hover .round-link{background:#17213b;color:#fff;border-color:#17213b;transform:rotate(7deg)}.fate-stage:hover>img{transform:rotate(-9deg) scale(1.07)}.fate-stage:hover .match-left{transform:translate(14px,13px) rotate(0)}.fate-stage:hover .match-right{transform:translate(-12px,-13px) rotate(0)}.code-stage:hover .code-window{transform:translate(-5px,-9px) rotate(0)}.hardware-stage:hover>img{transform:scale(1.035)}.button:hover{transform:translateY(-2px)}}
@media(max-width:1000px){.play-stage{height:370px}.stage-tag{left:17px;font-size:.75rem}.stage-status{right:15px}.orbit-label{padding:8px 10px;gap:6px;font-size:.8125rem}.orbit-notes{left:3%;top:58px}.orbit-tasks{right:3%;top:145px}.orbit-audio{left:4%;bottom:28px}.clarity-play>.dance-target{width:132px}.match-left{left:4%;font-size:.875rem}.match-right{right:4%;font-size:.875rem}.card-title-row h3{font-size:1.5rem}.work-card-copy{padding-inline:12px}}
@media(max-width:760px){.project-grid{grid-template-columns:1fr;gap:24px}.play-stage{height:390px}.clarity-play>.dance-target{width:145px}.stage-tag{font-size:.75rem;left:22px}.orbit-notes{left:10%;top:62px}.orbit-tasks{right:9%;top:130px}.orbit-audio{left:12%;bottom:32px}.work-gallery>.section-heading{display:block}.work-gallery .section-heading>p{max-width:none;margin-top:10px}.hero{padding-top:30px}.hero h1{font-size:clamp(3.2rem,10vw,4.8rem)}.work-card-copy{padding:21px 16px 17px}.hardware-stage>img{object-position:50% 15%}.code-window{top:90px}.card-title-row h3{font-size:1.6rem}}
@media(max-width:420px){.play-stage{height:350px}.clarity-play>.dance-target{width:127px}.orbit-label{font-size:.75rem;padding:8px}.orbit-label>span{width:19px;height:19px}.orbit-notes{left:8%;top:46px}.orbit-tasks{right:8%;top:124px}.orbit-audio{left:4%;bottom:26px}.stage-tag{font-size:.75rem;left:16px}.stage-status{font-size:.75rem;right:13px}.fate-stage>img{width:210px;height:210px;left:calc(50% - 105px);top:72px}.match-pill{padding:8px 12px;font-size:.8125rem}.match-left{top:85px}.match-right{bottom:80px}.work-card-copy{padding-inline:10px}.code-footer{font-size:1.15rem}.code-window{top:86px}}
@media(hover:none){.hover-hint{display:none}.touch-hint{display:inline}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important}.work-card,.round-link,.orbit-label,.fate-stage>img,.match-pill,.code-window,.hardware-stage>img,.button,.screen-surface,.case-link>span,.text-link>span{transition:none!important;animation:none!important}.work-card:hover,.work-card:hover .round-link,.fate-stage:hover>img,.fate-stage:hover .match-pill,.code-stage:hover .code-window,.hardware-stage:hover>img,.button:hover{transform:none}.play-hint{display:none}}

.clarity-card{display:block;color:inherit;text-decoration:none}

/* The complete Clarity card is one native link. */
.clarity-card{position:relative;cursor:pointer}.clarity-card *{pointer-events:none}.clarity-card .clarity-play>.dance-target{transform:none;will-change:auto}.clarity-card:hover{transform:none}

/* Keep mouse clicks clean; retain a visible keyboard focus indicator. */
.clarity-card:focus{outline:none}
html[data-input="keyboard"] .clarity-card:focus-visible{outline:2px solid #496b54;outline-offset:5px}
.clarity-card .dance-target{transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
.clarity-card:hover{transform:translateY(-3px);border-color:#aebfaf}
.clarity-card:hover .clarity-play>.dance-target{transform:translateY(-7px) scale(1.035);box-shadow:0 24px 34px #0009}
.clarity-card:hover .orbit-notes{transform:translate(-5px,-4px) rotate(-3deg)}
.clarity-card:hover .orbit-tasks{transform:translate(5px,-3px) rotate(3deg)}
.clarity-card:hover .orbit-audio{transform:translate(-3px,4px) rotate(-2deg)}
}
@media(prefers-reduced-motion:reduce){.clarity-card .dance-target{transition:none}}
