/* Photo tilt / light sweep adapted from Uiverse.io by zeeshan_2112. */
#work{transition:transform .7s cubic-bezier(.76,0,.24,1),background-color .5s ease-in-out;transition-delay:0s}#work:target{transition-delay:.58s,0s}
.contact-row{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid #ffffff65;padding:25px 0}.contact-row span{font-size:11px;letter-spacing:.15em}.contact-row p{font-size:clamp(22px,3.2vw,39px);margin:12px 0 0}.contact-row a{color:inherit;text-decoration:none}.contact-row button{flex-shrink:0}
.craft-scene{position:relative;isolation:isolate;perspective:1000px;aspect-ratio:16/9;background:#080906}.craft-scene>img{width:100%;display:block}.craft-object{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);border:0;padding:0;cursor:pointer;background-color:transparent;background-image:url('personal-creative-collage.jpg');background-size:var(--bsx) var(--bsy);background-position:var(--bpx) var(--bpy);transform-style:preserve-3d;transition:transform .6s cubic-bezier(.23,1,.32,1),filter .6s;z-index:1}.craft-object:hover,.craft-object:focus-visible{transform:rotateX(3deg) rotateY(-5deg) rotateZ(-1deg) scale(1.025);z-index:4;filter:drop-shadow(0 6px 12px #0008)}.craft-object[data-kind="lamp"]:hover,.craft-object[data-kind="lamp"]:focus-visible{filter:drop-shadow(0 0 16px #ffcf7b99) brightness(1.07)}.craft-object::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 40%,#fff2 45%,#fff5 50%,#fff2 55%,transparent 60%);background-size:250% 250%;background-position:100% 100%;transition:background-position .6s cubic-bezier(.23,1,.32,1);mix-blend-mode:overlay}.craft-object:hover::after,.craft-object:focus-visible::after{background-position:0 0}.craft-object:active{transform:scale(.98) rotate(-1deg)}.craft-object span{position:absolute;bottom:5px;left:5px;background:#fff3d8;color:#171712;padding:6px 9px;font:700 11px Arial,sans-serif;opacity:0;transition:opacity .2s}.craft-object:hover span,.craft-object:focus-visible span{opacity:1}.craft-dialog{width:min(900px,94vw);max-height:90svh;border:0;background:#fff9ed;color:#201d17;padding:28px}.craft-dialog::backdrop{background:#161512c9;backdrop-filter:blur(5px)}.craft-dialog header{display:flex;justify-content:space-between;align-items:center;gap:20px}.craft-dialog h3{margin:0;font:36px Georgia,'PingFang SC',serif}.craft-detail-images{display:flex;gap:18px;justify-content:center;align-items:flex-start;margin:24px 0;flex-wrap:wrap}.craft-detail-crop{background-image:url('personal-creative-collage.jpg');background-size:var(--bsx) var(--bsy);background-position:var(--bpx) var(--bpy);width:min(100%,var(--width));aspect-ratio:var(--ratio)}.craft-dialog p{font:16px/1.8 Arial,'PingFang SC',sans-serif;max-width:620px}.flower-layer{position:absolute;left:0;top:0;width:100%;height:0;z-index:5;pointer-events:none;overflow:visible}.little-flower{position:absolute;font:30px/1 Georgia,serif;pointer-events:none;transform:translate(-50%,-50%) rotate(var(--flower-turn,0deg));animation:flower-bloom .3s ease-out both;opacity:.9;filter:drop-shadow(0 1px 2px #0002)}.little-flower:nth-child(3n){color:#ffb6ce}@keyframes flower-bloom{from{opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(var(--flower-turn,0deg))}to{opacity:.9;transform:translate(-50%,-50%) scale(1) rotate(var(--flower-turn,0deg))}}@media(max-width:700px){.contact-row{align-items:flex-start;flex-direction:column;gap:16px}.craft-dialog{padding:20px}.craft-dialog h3{font-size:27px}.craft-object span{display:none}}@media(prefers-reduced-motion:reduce){#work,.craft-object,.craft-object::after{transition:none}.little-flower{animation:none;opacity:.85;transform:translate(-50%,-50%)}}

/* Text-first handmade index. Images exist only while a category is expanded. */
#craft-explorer{display:grid;grid-template-columns:1fr 1fr;gap:0 7%;margin:38px 0 24px}
.craft-word-row{border-top:1px solid #1116;padding:22px 0;min-width:0}.craft-word-row.is-expanded{grid-column:1/-1;display:grid;grid-template-columns:minmax(160px,.65fr) 1.6fr;gap:32px;align-items:start}
.craft-word{display:flex;flex-direction:column;align-items:flex-start;gap:14px;color:inherit;background:none;border:0;padding:8px 5px;text-align:left;cursor:pointer}.craft-word-label{font:600 clamp(44px,6vw,82px)/1.15 Georgia,'STSong','Songti SC',serif;letter-spacing:-.06em;display:block;transition:transform .3s}.craft-word-row:nth-child(even) .craft-word-label{font-style:italic}.craft-word:hover .craft-word-label,.craft-word:focus-visible .craft-word-label{transform:rotate(-3deg) translateY(-3px)}.craft-word-note{font:12px/1.4 Arial,'PingFang SC',sans-serif;letter-spacing:.12em}.craft-word-note i{display:inline-block;font-style:normal;margin-left:18px;transition:transform .3s}.craft-word[aria-expanded="true"] .craft-word-note i{transform:rotate(45deg)}
.craft-tray{display:flex;align-items:flex-start;gap:28px;flex-wrap:wrap;padding:14px 14px 32px;perspective:1000px}.craft-tray[hidden]{display:none}
.craft-tray .craft-object{position:relative;left:auto;top:auto;width:clamp(140px,19vw,235px);height:auto;aspect-ratio:var(--ratio);flex-shrink:0;transform:rotate(var(--lean));box-shadow:0 8px 20px #491e2d26;animation:craft-pop .4s var(--delay) both cubic-bezier(.2,.8,.3,1)}.craft-tray .craft-object:nth-child(even){margin-top:24px}.craft-tray .craft-object span{opacity:1;bottom:-16px;left:9px;font-size:12px;display:block;max-width:calc(100% - 18px);text-align:left}.craft-tray .craft-object:hover,.craft-tray .craft-object:focus-visible{transform:rotate(0) translateY(-5px) scale(1.025)}
@keyframes craft-pop{from{opacity:0;translate:-15px -8px;scale:.9}to{opacity:1;translate:0 0;scale:1}}
@media(max-width:700px){#craft-explorer{gap:0 22px}.craft-word-row.is-expanded{grid-template-columns:1fr;gap:12px}.craft-tray{gap:22px;padding-left:10px}.craft-tray .craft-object{width:min(38vw,200px)}.craft-word-label{font-size:49px}}
@media(prefers-reduced-motion:reduce){.craft-tray .craft-object{animation:none}.craft-word-label,.craft-word-note i{transition:none}.craft-word:hover .craft-word-label,.craft-word:focus-visible .craft-word-label{transform:none}}

.craft-source-figure{margin:0;width:min(100%,340px)}.craft-source-figure img{display:block;width:100%;max-height:65vh;object-fit:contain}.craft-source-figure figcaption{font-size:12px;margin-top:8px}.craft-toggle-piece{display:flex;flex-direction:column;gap:28px;padding-bottom:4px}.craft-detail-link{align-self:flex-start;border:0;border-bottom:1px solid currentColor;background:none;color:inherit;font:12px/1.6 Arial,'PingFang SC',sans-serif;padding:2px 0;cursor:pointer}

.craft-tray .craft-object.is-cutout{box-shadow:none;filter:drop-shadow(0 6px 6px #38172722)}.craft-tray .craft-object.is-cutout::after{display:none}.play-paper-star{position:absolute;left:var(--star-side);right:var(--star-right);width:32px;height:auto;opacity:.65;transform:rotate(var(--star-angle));pointer-events:none;user-select:none;z-index:0}@media(max-width:700px){.play-paper-star{width:15px;left:auto;right:4px;opacity:.5}}

.featured-frame{display:block;width:100%;border:0;padding:0;background:transparent;cursor:zoom-in}.featured-frame:focus-visible{outline:3px solid currentColor;outline-offset:6px}.featured-frame-dialog{width:min(1200px,96vw);max-height:94svh;background:#fff9ed;color:#211e18;border:0;padding:24px}.featured-frame-dialog::backdrop{background:#171512d9}.featured-frame-dialog header,.featured-frame-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:16px}.featured-frame-dialog h3{font:22px Georgia,'PingFang SC',serif;margin:0}.featured-frame-dialog img{display:block;max-width:100%;max-height:72vh;width:auto;height:auto;margin:20px auto;object-fit:contain}.featured-frame-dialog footer p{font:12px/1.6 Arial,sans-serif}.work-note-dialog .apple-carousel-stage{height:65vh}.work-note-dialog .apple-carousel-controls{padding-bottom:0}

.work-document-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 18px;margin-top:24px}.work-document-grid .work-note-button img{object-fit:contain;height:160px;background:#ffffff38}.craft-detail-images>.action{flex-basis:100%}@media(max-width:700px){.work-document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
