.folder-stack{position:relative;isolation:isolate;margin:42px 0 72px;height:510px}.stack-file{--lift:0px;--sheet:#fff;--ink:#002fa7;position:absolute;inset:0;transform:translateY(var(--lift));transition:transform .75s cubic-bezier(.22,.61,.36,1);pointer-events:none}.stack-tab{position:absolute;top:0;left:calc(var(--tab-position)*32%);width:34%;height:70px;border:0;padding:0;background:none;text-align:left;color:var(--ink);cursor:pointer;pointer-events:auto;font-family:'DM Sans',sans-serif}.folder-tab{display:flex;align-items:center;gap:16px;height:100%;padding:18px 24px;background:var(--sheet);border-radius:22px 22px 0 0;font-size:23px;letter-spacing:-.035em;transition:background-color .7s,color .7s}.folder-tab>span:first-child{font:11px 'DM Mono',monospace;letter-spacing:0}.folder-toggle{margin-left:auto;font-size:20px}.stack-panel{position:absolute;top:69px;left:0;right:0;min-height:385px;background:var(--sheet);border-radius:0 0 18px 18px;display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:30px;padding:28px;transition:background-color .7s;box-shadow:0 12px 32px #071e3309;pointer-events:none}.stack-panel>*{opacity:0;transform:translateY(14px);transition:opacity .35s ease,transform .65s ease;visibility:hidden}.stack-file.is-active .stack-panel{pointer-events:auto}.stack-file.is-active .stack-panel>*{opacity:1;transform:none;visibility:visible;transition:opacity .55s .1s ease,transform .7s .1s ease}.stack-panel .work-cover{background:transparent!important;border:0;aspect-ratio:4/3;max-height:330px}.stack-panel .work-cover>img{padding:8px}.stack-panel .work-caption{padding:20px 10px}.stack-panel .work-caption h2{font-size:34px!important}.stack-panel .work-caption p{font-size:15px}.stack-file.is-active .folder-toggle{font-size:0}.stack-file.is-active .folder-toggle:after{content:'−';font-size:20px}.stack-tab:focus-visible{outline:2px solid #002fa7;outline-offset:5px}.stack-panel:before,.stack-panel:after{display:none}
@media(max-width:650px){.folder-stack{height:620px;margin-top:28px}.stack-tab{height:62px}.folder-tab{padding:14px 10px;font-size:15px;gap:6px;border-radius:15px 15px 0 0}.folder-tab>span:first-child{font-size:9px}.folder-toggle{font-size:16px}.stack-panel{top:61px;grid-template-columns:1fr;gap:0;padding:18px;min-height:450px}.stack-panel .work-cover{max-height:290px}.stack-panel .work-caption{padding:12px 6px}.stack-panel .work-caption h2{font-size:26px!important}.stack-panel .work-caption p{font-size:13px}}
@media(prefers-reduced-motion:reduce){.stack-file,.folder-tab,.stack-panel,.stack-panel>*{transition:none!important}}
/* Full folder silhouettes: tabs rise out of overlapping colored sheets. */
.folder-stack{height:550px;padding-top:0}
.stack-tab{height:66px;width:31%;left:calc(2% + var(--tab-position)*33%);z-index:1}
.folder-tab{border-radius:22px 22px 0 0;position:relative;padding:16px 20px}
.folder-tab:before,.folder-tab:after{content:'';position:absolute;bottom:0;width:22px;height:22px;pointer-events:none}
.folder-tab:before{left:-22px;background:radial-gradient(circle at 0 0,transparent 22px,var(--sheet) 22.5px)}
.folder-tab:after{right:-22px;background:radial-gradient(circle at 100% 0,transparent 22px,var(--sheet) 22.5px)}
.stack-panel{top:65px;border-radius:18px;min-height:395px;box-shadow:0 -2px 9px #071e330b,0 12px 25px #071e3310}
.stack-file:not(.is-active) .stack-panel{box-shadow:0 -1px 5px #071e3310}
.stack-file.is-active .stack-panel{box-shadow:0 -1px 0 #071e3308,0 14px 28px #071e3310}
@media(max-width:650px){.folder-stack{height:650px}.stack-tab{height:62px;width:31%;left:calc(2% + var(--tab-position)*33%)}.folder-tab{padding:14px 8px;font-size:14px;gap:5px}.folder-tab>span:first-child{font-size:8px}.stack-panel{top:61px;min-height:450px}.folder-tab:before,.folder-tab:after{width:12px;height:12px}.folder-tab:before{left:-12px;background:radial-gradient(circle at 0 0,transparent 12px,var(--sheet) 12.5px)}.folder-tab:after{right:-12px;background:radial-gradient(circle at 100% 0,transparent 12px,var(--sheet) 12.5px)}}
/* Angular folder tabs with sloped shoulders. */
.stack-tab{overflow:visible}
.folder-tab{border-radius:0;background:transparent;padding-left:28px;padding-right:28px;isolation:isolate}
.folder-tab:before{inset:0 -15px 0 -15px;width:auto;height:auto;z-index:-1;background:var(--sheet);clip-path:polygon(22px 0,calc(100% - 22px) 0,100% 100%,0 100%);transition:background-color .7s}
.folder-tab:after{display:none}
.stack-panel{border-radius:0}
@media(max-width:650px){.folder-tab{border-radius:0;padding-left:10px;padding-right:10px}.folder-tab:before{inset:0 -8px;width:auto;height:auto;background:var(--sheet);clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 100%,0 100%)}.stack-panel{border-radius:0}}
/* Keep folder shoulders shallow and the exposed sheets close together. */
.folder-stack{height:490px;margin-top:32px}
.stack-tab{height:50px;width:29%;left:calc(2% + var(--tab-position)*33%)}
.folder-tab{padding:12px 22px;font-size:20px}
.folder-tab:before{inset:0 -10px;clip-path:polygon(16px 0,calc(100% - 16px) 0,100% 100%,0 100%)}
.stack-panel{top:49px;min-height:385px;padding:24px;box-shadow:0 8px 18px #071e3306}
.folder-toggle{font-size:17px}.stack-file.is-active .folder-toggle:after{font-size:17px}
@media(max-width:650px){.folder-stack{height:590px}.stack-tab{height:46px;width:30%;left:calc(1% + var(--tab-position)*34%)}.folder-tab{padding:10px 8px;font-size:13px;gap:5px}.folder-tab:before{inset:0 -5px;clip-path:polygon(9px 0,calc(100% - 9px) 0,100% 100%,0 100%)}.stack-panel{top:45px;min-height:450px;padding:16px}.folder-toggle{font-size:14px}}
@media(max-width:650px){
.folder-stack{height:auto;min-height:0;margin:24px 0 48px;padding-top:76px}
.stack-file{bottom:auto;height:100%}
.stack-file.is-active{position:relative;inset:auto;transform:none;padding-top:0}
.stack-tab{top:0;width:31%;left:calc(1% + var(--tab-position)*33%);height:46px}
.stack-file.is-active .stack-tab{top:-46px}
.folder-tab{font-size:clamp(11px,3.2vw,15px);padding:10px 5px;gap:0;justify-content:center;white-space:nowrap;letter-spacing:-.025em}
.folder-tab>span:first-child,.folder-toggle{display:none}
.stack-file.is-active .folder-toggle:after{display:none}
.stack-panel{position:relative;top:45px;min-height:0;grid-template-columns:1fr;gap:0;padding:18px 14px;border-radius:0}
.stack-file:not(.is-active) .stack-panel{height:calc(100% - 45px);overflow:hidden}
.stack-file.is-active .stack-panel{top:0}
.stack-panel .work-cover{width:100%;aspect-ratio:4/3;max-height:240px;min-height:0}
.stack-panel .work-cover>img{width:100%;height:100%;padding:4px}
.stack-panel .work-caption{padding:20px 4px 8px;gap:8px}
.stack-panel .work-caption h2{font-size:25px!important}
.stack-panel .work-caption p{font-size:13px;max-width:none;line-height:1.5}
.stack-panel .work-action{font-size:10px;padding:6px 8px;bottom:0;right:0}
}
/* Join the sloped tab directly to its sheet without side overhangs. */
.stack-tab{overflow:visible}
.folder-tab{position:relative;background:transparent;border:0;border-radius:0;isolation:isolate}
.folder-tab:before{content:'';position:absolute;inset:0 0 -2px;width:auto;height:auto;background:var(--sheet);clip-path:polygon(18px 0,calc(100% - 18px) 0,100% 100%,0 100%);z-index:-1}
.folder-tab:after{display:none}
.stack-panel{border:0;border-radius:0;box-shadow:none!important}
@media(max-width:650px){.folder-tab:before{inset:0 0 -2px;clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 100%,0 100%)}}
/* Reveal the sheet by sliding it open, with no opacity flash. */
.stack-panel>*{opacity:1;transform:none;visibility:visible;transition:none}
.stack-file.is-active .stack-panel>*{opacity:1;transform:none;visibility:visible;transition:none}
.stack-file:not(.is-active) .stack-panel>*{visibility:hidden}
.stack-panel{overflow:hidden}
