{"version":3,"file":"CourseCard.DpXa3eKB.mjs","names":["__esmMin","p","c","init_jsx_runtime","addPropertyControls","init_framer_BWFVvmND","ControlType","CourseCard","props","coverH","coverHeight","cardH","cardHeight","src","image","srcSet","numX","number","catX","category","lvlX","level","tEN","titleEN","tZH","titleZH","cg","cgCss","css","hexA","color","shortDesc","h","hex","a","init_CourseCard"],"sources":["https:/framerusercontent.com/modules/l2Azc7ZheYfzFyKtrhf9/iJWY74hrwmq0LNdy3DtD/CourseCard.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";/**\n * Course Card — CDS Academy program card.\n *\n * The cover is a single DIRECT in-flow CMS <img> with an explicit pixel height\n * (object-fit: cover) — no percentage-height wrapper — so it renders reliably even\n * inside the marquee rail. Course number, category, a thin corner bracket and a soft\n * vignette overlay the image; a dark glass body holds the level, EN/ZH title,\n * description and an \"Explore Program\" cue. Hover lifts the card with an orange glow.\n * Routing handled by the native link frame wrapping it.\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function CourseCard(props){const{number=\"01\",titleEN=\"ENTERTAINMENT DESIGN PROGRAM\",titleZH=\"娛樂設計課程\",shortDesc=\"\",category=\"Program\",level=\"All Levels\",image={src:\"https://framerusercontent.com/images/fEBrN0WfSeecEF83KdEArYszXgc.jpg\"},color=\"#FF7A1A\",coverHeight=158,cardHeight=410}=props;const coverH=(parseFloat(coverHeight)||158)+\"px\";const cardH=(parseFloat(cardHeight)||410)+\"px\";const DEFAULT_COVER=\"https://framerusercontent.com/images/fEBrN0WfSeecEF83KdEArYszXgc.jpg\";const resolvedSrc=typeof image===\"string\"?image:image?.src||image?.url||image?.value?.url||image?.value?.src||\"\";const src=resolvedSrc||DEFAULT_COVER;const srcSet=typeof image===\"string\"?undefined:image?.srcSet||image?.value?.srcSet;// Design-canvas fallbacks: a CMS-bound code component receives EMPTY props in the Framer\n// canvas (CMS data resolves only at runtime), which would render a black/empty card. These\n// || fallbacks make the canvas show a complete placeholder; at runtime the real CMS values win.\nconst numX=number||\"01\";const catX=category||\"Program\";const lvlX=level||\"All Levels\";const tEN=titleEN||\"ACADEMY PROGRAM\";const tZH=titleZH||\"成名設計課程\";const cg=!!props.crimson;const cgCss=cg?`.cc-cg{background:rgba(75,18,28,.76);border:1px solid #E00018;border-radius:0;box-shadow:none}.cc-cg .cc-rule,.cc-cg .cc-lvl,.cc-cg .cc-cat,.cc-cg .cc-c{display:none}.cc-cg .cc-num{font-size:13px;opacity:.75}.cc-cg .cc-tzh{margin:0;font-size:22px;font-weight:600;letter-spacing:0;line-height:1.35;color:var(--token-944ac22a-1461-4a84-b367-fc7a01ccef0b,#FF7A1A)}.cc-cg .cc-ten{margin-top:4px;font-size:11px;letter-spacing:.1em;color:rgba(255,255,255,.55)}.cc-cg:hover .cc-ten{color:rgba(255,255,255,.75);text-shadow:none}.cc-cg .cc-desc{font-size:14px;line-height:1.6;color:rgba(255,255,255,.82)}.cc-cg .cc-foot{font-size:13px;letter-spacing:.04em;color:#fff}.cc-cg .cc-arrow{color:#E00018}@media(max-width:809.98px){.cc-cg .cc-tzh{font-size:20px}}`:\"\";const css=`\n    .cc{position:relative;width:100%;height:${cardH};min-height:${cardH};box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;border-radius:0;\n      background:linear-gradient(160deg,#15171b 0%,#0d0f13 55%,#090a0d 100%);\n      border:1px solid rgba(255,255,255,0.07);\n      box-shadow:inset 0 1px 0 rgba(255,255,255,0.05), 0 0 0 0 ${hexA(color,0)};\n      transition:transform .45s cubic-bezier(.19,1,.22,1), box-shadow .4s ease, border-color .3s ease}\n    .cc:hover{transform:translateY(-6px);border-color:${hexA(color,.75)};\n      box-shadow:0 18px 40px -14px ${hexA(color,.4)}, 0 0 24px -6px ${hexA(color,.5)}, inset 0 0 0 1px ${hexA(color,.2)}}\n    .cc-img{position:relative;width:100%;height:${coverH};min-height:${coverH};flex:0 0 ${coverH};object-fit:cover;display:block;\n      transition:filter .45s ease;filter:saturate(.94) brightness(.86) contrast(1.02)}\n    .cc:hover .cc-img{filter:saturate(1.03) brightness(.98) contrast(1.03)}\n    .cc-cvig{position:absolute;top:0;left:0;right:0;height:${coverH};pointer-events:none;\n      background:linear-gradient(180deg, rgba(6,8,12,0.10) 0%, rgba(6,8,12,0.03) 55%, rgba(9,10,13,0.80) 100%)}\n    .cc-num{position:absolute;top:12px;left:14px;font-family:'Share Tech Mono',monospace;font-size:20px;letter-spacing:1px;color:#fff;text-shadow:0 0 10px rgba(0,0,0,.8), 0 0 12px ${hexA(color,.4)}}\n    .cc-cat{position:absolute;top:14px;right:14px;font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:1.4px;color:${hexA(color,.95)};\n      border:1px solid ${hexA(color,.4)};padding:3px 7px;border-radius:0;background:rgba(8,9,12,0.5);backdrop-filter:blur(4px)}\n    .cc-c{position:absolute;width:16px;height:16px;opacity:.5;transition:all .35s ease}\n    .cc-c.tl{top:9px;left:9px;border-top:1.5px solid ${color};border-left:1.5px solid ${color}}\n    .cc-c.br{bottom:9px;right:9px;border-bottom:1.5px solid ${color};border-right:1.5px solid ${color}}\n    .cc:hover .cc-c{opacity:1;width:22px;height:22px;filter:drop-shadow(0 0 4px ${color})}\n    .cc-body{position:relative;flex:1;display:flex;flex-direction:column;padding:16px 18px 18px;min-height:0}\n    .cc-rule{width:26px;height:2px;background:${color};margin-bottom:11px;box-shadow:0 0 8px ${hexA(color,.5)}}\n    .cc-lvl{font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:1.5px;color:#8b8e94;margin-bottom:7px}\n    .cc-ten{font-family:'Share Tech Mono',monospace;font-size:14.5px;letter-spacing:1px;line-height:1.3;color:#E6E7E9;transition:color .3s}\n    .cc:hover .cc-ten{color:#fff;text-shadow:0 0 9px ${hexA(color,.45)}}\n    .cc-tzh{margin-top:4px;font-family:'Noto Sans TC',sans-serif;font-size:12px;letter-spacing:1.5px;color:${hexA(color,.9)}}\n    .cc-desc{margin-top:10px;font-family:'Noto Sans TC',sans-serif;font-size:11.5px;line-height:1.75;color:#9a9da3;\n      display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}\n    .cc-foot{margin-top:auto;padding-top:13px;display:flex;align-items:center;gap:8px;font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:1.5px;color:${color}}\n    .cc-arrow{transition:transform .35s ease}\n    .cc:hover .cc-arrow{transform:translateX(4px)}\n    .cc-foot .lbl-def{display:inline}.cc-foot .lbl-hov{display:none}\n    .cc:hover .cc-foot .lbl-def{display:none}.cc:hover .cc-foot .lbl-hov{display:inline}\n    `;return /*#__PURE__*/_jsxs(\"div\",{className:cg?\"cc cc-cg\":\"cc\",children:[/*#__PURE__*/_jsx(\"style\",{children:css+cgCss}),/*#__PURE__*/_jsx(\"img\",{className:\"cc-img\",src:src,srcSet:srcSet,alt:image?.alt||titleEN,loading:\"lazy\",decoding:\"async\"}),/*#__PURE__*/_jsx(\"div\",{className:\"cc-cvig\"}),/*#__PURE__*/_jsx(\"span\",{className:\"cc-c tl\"}),/*#__PURE__*/_jsx(\"div\",{className:\"cc-num\",children:numX}),/*#__PURE__*/_jsx(\"div\",{className:\"cc-cat\",children:catX}),/*#__PURE__*/_jsxs(\"div\",{className:\"cc-body\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"cc-rule\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"cc-lvl\",children:[\"◇ \",lvlX]}),cg?/*#__PURE__*/_jsx(\"div\",{className:\"cc-tzh\",children:tZH}):null,/*#__PURE__*/_jsx(\"div\",{className:\"cc-ten\",children:tEN}),cg?null:/*#__PURE__*/_jsx(\"div\",{className:\"cc-tzh\",children:tZH}),shortDesc?/*#__PURE__*/_jsx(\"div\",{className:\"cc-desc\",children:shortDesc}):null,/*#__PURE__*/_jsxs(\"div\",{className:\"cc-foot\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"lbl-def\",children:cg?\"了解課程 / EXPLORE PROGRAM\":\"EXPLORE PROGRAM\"}),/*#__PURE__*/_jsx(\"span\",{className:\"lbl-hov\",children:cg?\"了解課程 / VIEW PROGRAM\":\"VIEW PROGRAM\"}),/*#__PURE__*/_jsx(\"span\",{className:\"cc-arrow\",children:\"→\"})]}),/*#__PURE__*/_jsx(\"span\",{className:\"cc-c br\"})]})]});}function hexA(hex,a){let h=hex.replace(\"#\",\"\");if(h.length===3)h=h.split(\"\").map(c=>c+c).join(\"\");const r=parseInt(h.slice(0,2),16)||255;const g=parseInt(h.slice(2,4),16)||122;const b=parseInt(h.slice(4,6),16)||26;return`rgba(${r},${g},${b},${a})`;}addPropertyControls(CourseCard,{number:{type:ControlType.String,title:\"Number\",defaultValue:\"01\"},titleEN:{type:ControlType.String,title:\"Title EN\",defaultValue:\"ENTERTAINMENT DESIGN PROGRAM\"},titleZH:{type:ControlType.String,title:\"Title ZH\",defaultValue:\"娛樂設計課程\"},shortDesc:{type:ControlType.String,title:\"Short Desc\",defaultValue:\"\",displayTextArea:true},category:{type:ControlType.String,title:\"Category\",defaultValue:\"Program\"},level:{type:ControlType.String,title:\"Level\",defaultValue:\"All Levels\"},image:{type:ControlType.ResponsiveImage,title:\"Cover Image\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FF7A1A\"},crimson:{type:ControlType.Boolean,title:\"Crimson\",defaultValue:false},coverHeight:{type:ControlType.Number,title:\"Cover H\",min:80,max:260,step:1,unit:\"px\",defaultValue:158},cardHeight:{type:ControlType.Number,title:\"Card H\",min:200,max:600,step:1,unit:\"px\",defaultValue:410}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CourseCard\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CourseCard.map"],"mappings":"A,mKAYG,SAAwBO,EAAW,EAAM,CAAC,GAAK,CAAC,SAAO,KAAK,UAAQ,+BAA+B,UAAQ,SAAS,YAAU,GAAG,WAAS,UAAU,QAAM,aAAa,QAAM,CAAC,IAAI,sEAAsE,EAAE,QAAM,UAAU,cAAY,IAAI,aAAW,KAAKC,EAAYC,GAAQ,WAAWC,CAAW,GAAG,KAAK,KAAWC,GAAO,WAAWC,CAAU,GAAG,KAAK,KAAuNC,GAArG,OAAOC,GAAQ,SAASA,EAAMA,GAAO,KAAKA,GAAO,KAAKA,GAAO,OAAO,KAAKA,GAAO,OAAO,KAAK,KAA0B,uEAAoBC,EAAO,OAAOD,GAAQ,SAAS,IAAA,GAAUA,GAAO,QAAQA,GAAO,OAAO,OAG1sBE,EAAKC,GAAQ,KAAWC,EAAKC,GAAU,UAAgBC,EAAKC,GAAO,aAAmBC,EAAIC,GAAS,kBAAwBC,EAAIC,GAAS,SAAeC,EAAG,CAAC,CAAClB,EAAM,QAAcmB,EAAMD,EAAG,8uBAA8uB,GAASE,EAAI;8CAC54BjB,EAAM,cAAcA,EAAM;;;iEAGPkB,EAAKC,EAAM,CAAC,EAAE;;wDAEvBD,EAAKC,EAAM,GAAG,EAAE;qCACnCD,EAAKC,EAAM,EAAE,EAAE,kBAAkBD,EAAKC,EAAM,EAAE,EAAE,oBAAoBD,EAAKC,EAAM,EAAE,EAAE;kDACtErB,EAAO,cAAcA,EAAO,YAAYA,EAAO;;;6DAGpCA,EAAO;;sLAEkHoB,EAAKC,EAAM,EAAE,EAAE;qIAChED,EAAKC,EAAM,GAAG,EAAE;yBAC5HD,EAAKC,EAAM,EAAE,EAAE;;uDAEeA,EAAM,2BAA2BA,EAAM;8DAChCA,EAAM,4BAA4BA,EAAM;kFACpBA,EAAM;;gDAExCA,EAAM,yCAAyCD,EAAKC,EAAM,EAAE,EAAE;;;uDAGvDD,EAAKC,EAAM,GAAG,EAAE;6GACsCD,EAAKC,EAAM,EAAE,EAAE;;;0KAG8CA,EAAM;;;;;MAK1K,MAAoB,gBAAM,MAAM,CAAC,UAAUJ,EAAG,WAAW,KAAK,SAAS,CAAc,gBAAK,QAAQ,CAAC,SAASE,EAAID,CAAK,CAAC,EAAe,gBAAK,MAAM,CAAC,UAAU,SAAa,MAAW,SAAO,IAAIb,GAAO,KAAKS,EAAQ,QAAQ,OAAO,SAAS,OAAO,CAAC,EAAe,gBAAK,MAAM,CAAC,UAAU,SAAS,CAAC,EAAe,gBAAK,OAAO,CAAC,UAAU,SAAS,CAAC,EAAe,gBAAK,MAAM,CAAC,UAAU,SAAS,SAASP,CAAI,CAAC,EAAe,gBAAK,MAAM,CAAC,UAAU,SAAS,SAASE,CAAI,CAAC,EAAe,gBAAM,MAAM,CAAC,UAAU,UAAU,SAAS,CAAc,gBAAK,MAAM,CAAC,UAAU,SAAS,CAAC,EAAe,gBAAM,MAAM,CAAC,UAAU,SAAS,SAAS,CAAC,KAAKE,CAAI,CAAC,CAAC,EAAEM,EAAgB,gBAAK,MAAM,CAAC,UAAU,SAAS,SAASF,CAAG,CAAC,EAAE,KAAkB,gBAAK,MAAM,CAAC,UAAU,SAAS,SAASF,CAAG,CAAC,EAAEI,EAAG,KAAkB,gBAAK,MAAM,CAAC,UAAU,SAAS,SAASF,CAAG,CAAC,EAAEO,EAAuB,gBAAK,MAAM,CAAC,UAAU,UAAU,SAASA,CAAS,CAAC,EAAE,KAAkB,gBAAM,MAAM,CAAC,UAAU,UAAU,SAAS,CAAc,gBAAK,OAAO,CAAC,UAAU,UAAU,SAASL,EAAG,yBAAyB,iBAAiB,CAAC,EAAe,gBAAK,OAAO,CAAC,UAAU,UAAU,SAASA,EAAG,sBAAsB,cAAc,CAAC,EAAe,gBAAK,OAAO,CAAC,UAAU,WAAW,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAe,gBAAK,OAAO,CAAC,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,SAASG,EAAK,EAAI,EAAE,CAAC,IAAIG,EAAEC,EAAI,QAAQ,IAAI,EAAE,EAAyK,OAApKD,EAAE,SAAS,IAAE,EAAEA,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,GAAG9B,EAAEA,CAAC,CAAC,CAAC,KAAK,EAAE,GAA4H,QAAlH,SAAS8B,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,IAAiG,GAArF,SAASA,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,IAA+D,GAAnD,SAASA,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,GAA6B,GAAGE,EAAE,EAAG,C,sCAAC9B,EAAoBG,EAAW,CAAC,OAAO,CAAC,KAAKD,EAAY,OAAO,MAAM,SAAS,aAAa,IAAI,EAAE,QAAQ,CAAC,KAAKA,EAAY,OAAO,MAAM,WAAW,aAAa,8BAA8B,EAAE,QAAQ,CAAC,KAAKA,EAAY,OAAO,MAAM,WAAW,aAAa,QAAQ,EAAE,UAAU,CAAC,KAAKA,EAAY,OAAO,MAAM,aAAa,aAAa,GAAG,gBAAgB,EAAI,EAAE,SAAS,CAAC,KAAKA,EAAY,OAAO,MAAM,WAAW,aAAa,SAAS,EAAE,MAAM,CAAC,KAAKA,EAAY,OAAO,MAAM,QAAQ,aAAa,YAAY,EAAE,MAAM,CAAC,KAAKA,EAAY,gBAAgB,MAAM,aAAa,EAAE,MAAM,CAAC,KAAKA,EAAY,MAAM,MAAM,QAAQ,aAAa,SAAS,EAAE,QAAQ,CAAC,KAAKA,EAAY,QAAQ,MAAM,UAAU,aAAa,EAAK,EAAE,YAAY,CAAC,KAAKA,EAAY,OAAO,MAAM,UAAU,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,aAAa,GAAG,EAAE,WAAW,CAAC,KAAKA,EAAY,OAAO,MAAM,SAAS,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,aAAa,GAAG,CAAC,CAAC,C"}