/* Interaction inspired by Uiverse.io / namecho; locally written scoped variant. */
.seed-glitch{position:relative;isolation:isolate;overflow:hidden}.seed-glitch::after{content:attr(data-echo);position:absolute;inset:0;display:grid;place-items:center;background:#111;color:#fff;text-shadow:-2px 0 #ff82b5,2px 0 #8ce5d3;clip-path:inset(48% 0 48% 0);opacity:0;pointer-events:none}.seed-glitch:hover::after,.seed-glitch:focus-visible::after{animation:seed-slice .48s steps(2,end) 1}@keyframes seed-slice{0%{opacity:0}15%{opacity:1;clip-path:inset(18% 0 68%);translate:-3px 0}35%{clip-path:inset(63% 0 19%);translate:3px 0}60%{clip-path:inset(38% 0 43%);translate:-2px 0}85%{clip-path:inset(73% 0 13%);translate:2px 0}100%{opacity:0;translate:0 0}}
/* Alternating letter-block slide inspired by Uiverse.io / mrhyddenn. */
.say-hi{display:inline-flex;align-items:center;color:inherit;text-decoration:none;font:700 clamp(32px,4vw,54px)/1 Arial,sans-serif;letter-spacing:.03em;margin:6px 0 34px}.say-hi-letter{position:relative;display:inline-block;overflow:hidden;padding:9px 7px;isolation:isolate}.say-hi-letter::before{content:attr(data-letter);position:absolute;inset:0;display:grid;place-items:center;background:#fff3d8;color:#17673c;translate:0 -101%;transition:translate .4s cubic-bezier(.2,.8,.3,1);z-index:1}.say-hi-letter:nth-child(even)::before{translate:0 101%}.say-hi:hover .say-hi-letter::before,.say-hi:focus-visible .say-hi-letter::before{translate:0 0}.say-hi-space{width:12px}
/* Independent vanilla-JS interpretation of React Bits Tech Text.
   No React Bits component/source is bundled; dashed bounds are not glyph paths. */
.tech-word{display:inline-flex;position:relative;isolation:isolate;vertical-align:baseline}.tech-letter{position:relative;display:inline-block;appearance:none;background:none;border:0;padding:0;margin:0;font:inherit;letter-spacing:inherit;color:inherit;line-height:inherit;cursor:grab;touch-action:none;transition:transform .45s cubic-bezier(.16,1,.3,1);transform:translate(var(--dx,0px),var(--dy,0px));user-select:none}.tech-letter.is-dragging{cursor:grabbing;transition:none;z-index:3}.tech-letter::before{content:"";position:absolute;inset:0 -2px;border:1px dashed currentColor;opacity:0;pointer-events:none}.tech-letter::after{content:attr(data-coordinate);position:absolute;left:0;bottom:100%;font:9px/1.2 monospace;letter-spacing:0;background:#fff3d8;color:#111;padding:3px 4px;opacity:0;pointer-events:none;white-space:nowrap}.tech-letter:hover::before,.tech-letter:focus-visible::before,.tech-letter.is-dragging::before,.tech-letter:hover::after,.tech-letter:focus-visible::after,.tech-letter.is-dragging::after{opacity:.75}.tech-letter:focus-visible{outline:2px solid currentColor;outline-offset:4px}.tech-word::after{content:"";position:absolute;left:-4%;right:-4%;bottom:0;border-bottom:1px dashed currentColor;pointer-events:none;opacity:0}.tech-word.tech-enter::after{animation:tech-guide 2.8s ease both}.tech-enter .tech-letter{animation:tech-reveal .7s calc(var(--letter-index)*.11s) both}.tech-sweep{position:absolute;top:-12%;bottom:-8%;width:1px;background:currentColor;opacity:0;pointer-events:none}.tech-enter .tech-sweep{animation:tech-scan 2.8s ease-in-out both}.section .tech-hint{font-size:11px;letter-spacing:.06em;margin:-25px 0 35px;opacity:.65}@keyframes tech-reveal{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@keyframes tech-guide{0%,100%{opacity:0}20%,75%{opacity:.35}}@keyframes tech-scan{0%{left:0;opacity:0}15%{opacity:.4}85%{opacity:.4}100%{left:100%;opacity:0}}
@media(prefers-reduced-motion:reduce){.seed-glitch::after{animation:none!important}.say-hi-letter::before,.tech-letter{transition:none}.tech-enter .tech-letter,.tech-enter .tech-sweep,.tech-word.tech-enter::after{animation:none}.tech-sweep{display:none}}

.smart-process-note{display:flex;align-items:center;gap:18px;margin:24px 0 30px;max-width:460px}.smart-process-note .work-note-button{width:110px;flex-shrink:0}.smart-process-note p{font-size:12px!important;opacity:.75}.work-note-button{border:0;padding:0;background:none;color:inherit;text-align:left;cursor:pointer;min-width:0}.work-note-button img{display:block;width:100%;height:110px;object-fit:cover;filter:saturate(.8);transition:filter .2s}.work-note-button:hover img{filter:saturate(1)}.work-note-button span{font:11px/1.5 Arial,'PingFang SC',sans-serif;display:block;margin-top:8px}.work-notes{margin:40px 0 50px;border-top:1px solid #1113;padding-top:20px;max-width:830px}.section .work-notes-title{font-size:13px;margin-bottom:18px}.work-notes-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}.work-note-dialog{width:min(1080px,94vw);max-height:92svh;background:#fff9ed;border:0;padding:24px;color:#211e18}.work-note-dialog::backdrop{background:#171512c9}.work-note-dialog header{display:flex;align-items:center;justify-content:space-between;gap:20px}.work-note-dialog h3{font-size:24px;margin:0}.work-note-dialog>img{display:block;max-width:100%;max-height:65vh;width:auto;height:auto;margin:22px auto;object-fit:contain}.work-note-dialog>p{font:14px/1.8 Arial,'PingFang SC',sans-serif}.work-notes-row .work-note-button:nth-child(n+3) img{object-fit:contain;background:#ffffff38}@media(max-width:700px){.work-notes-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 12px}.work-note-button img{height:90px}}@media(prefers-reduced-motion:reduce){.work-note-button img{transition:none}}

.motion-title .motion-glyph{font:inherit!important;line-height:inherit!important;letter-spacing:inherit!important;white-space:pre;transition:transform .6s cubic-bezier(.18,1.55,.3,1)}.motion-title .motion-glyph.is-dragging{transition:none}.motion-title{overflow:visible}.motion-glyph{touch-action:pan-y}@media(prefers-reduced-motion:reduce){.motion-title .motion-glyph{transition:none!important;transform:none!important}}

.work-document-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.work-document-grid .work-note-button img{height:auto;max-height:none;object-fit:contain}.work-document-grid .long-document{width:100%}.work-document-grid .long-document img{max-width:420px;margin:auto}.work-note-dialog>img{max-height:none;max-width:100%;width:auto;min-width:min(500px,80vw)}@media(max-width:700px){.work-document-grid{grid-template-columns:1fr}}

.elastic-line{display:block;white-space:pre}.elastic-letter{display:inline-block;position:relative;cursor:grab;touch-action:none;user-select:none;transform-origin:50% 75%}.elastic-letter:active{cursor:grabbing}.elastic-letter:focus-visible{outline:1px dashed currentColor;outline-offset:4px}.elastic-title{overflow:visible}.elastic-title .elastic-letter{font:inherit;letter-spacing:inherit}

.section .personality-tag{display:inline-block;font:700 12px/1.2 Arial,sans-serif;letter-spacing:.1em;border:1px solid currentColor;border-radius:30px;padding:7px 12px;margin:8px 0 20px}.motion-title,.elastic-title{opacity:1;visibility:inherit}

/* ENFJ chibi illustration, generated from user-provided character reference. */
.personality-sticker{display:flex;align-items:center;gap:14px;margin:12px 0;max-width:100%;}.personality-sticker .personality-tag{margin:0}.personality-sticker img{display:block;width:88px;height:auto;max-width:24vw;pointer-events:none;flex:none;}

/* Text runs remain one layout item; English words drag and wrap as units. */
.motion-title .motion-text{display:inline;min-width:0;font:inherit!important;color:inherit!important;letter-spacing:inherit!important;line-height:inherit!important;white-space:normal}.motion-title .motion-glyph{white-space:nowrap}.music-track h4{gap:16px;align-items:baseline}.music-track h4>.motion-text{flex:1 1 auto;text-align:left}.music-track h4>.track-duration{flex:0 0 auto;white-space:nowrap}

.experience .experience-detail{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 36px}.experience-detail h4{margin:0 0 9px;font-size:22px}.experience-detail>div>span{display:block;line-height:1.65}.experience-detail p{line-height:1.8}@media(max-width:700px){.experience .experience-detail{grid-template-columns:1fr}}

.case-method-notes{margin:24px 0 8px;max-width:620px}.case-method-notes>p{font-size:12px;letter-spacing:.04em;opacity:.7}.case-method-notes .work-document-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}

.rd-excerpt{margin-top:20px;font-size:12px}.rd-excerpt table{border-collapse:collapse;width:100%;font-size:13px}.rd-excerpt th,.rd-excerpt td{text-align:left;padding:9px 6px;border-bottom:1px solid #0002}

.experience-detail ul{padding-left:1.2em;margin:16px 0}.experience-detail li{line-height:1.8;margin:0 0 12px}

.project-review{max-width:760px;margin:28px 0;font-size:14px;line-height:1.8}.project-review .review-label{font-size:11px;opacity:.65}.project-review h4{font-size:19px;margin:7px 0 10px}.review-document-link{color:inherit;text-decoration:none;text-underline-offset:5px}.review-document-link:hover{text-decoration:underline}.review-document-link:focus-visible{outline:2px solid currentColor;outline-offset:5px;text-decoration:underline}

/* Small colored labels for the three smart document headings only. */
#case-smart .project-review h4.review-title-color{display:table;width:fit-content;max-width:100%;box-sizing:border-box;padding:.14em .55em;border-radius:.35em;line-height:1.5;color:#20221f;box-decoration-break:clone;-webkit-box-decoration-break:clone;overflow:visible}
#case-smart .project-review h4.review-title-yellow{background-color:#f7e7a4}
#case-smart .project-review h4.review-title-mint{background-color:#cfe6d6}
#case-smart .project-review h4.review-title-lavender{background-color:#e0d6ef}

/* WORK remains readable during interrupted entrance/compositor states. */
#work > #title-work,#work > .section-lead{opacity:1!important;visibility:visible}
